Create new sandbox

Create new sandbox

POST Parameters

NameTypeDescription
action
Required
StringThe ID of the action.
type
Required
StringThe type of the action. Must be set to SANDBOX_CREATE_NEW.
sandbox_name RequiredStringDefines the name of the created sandbox.
sandbox_distribution RequiredStringDefines the OS distro of the sandbox. Can be one of ubuntu/focal or debian/buster.
sandbox_playbooksSandboxPlaybook[]Defines the list of playbooks to install during the sandbox creation.
tagsString[]The list of tags applied to the sandbox.
ram_limit RequiredIntDefines the amount of RAM available to the sandbox. Can be one of 2 or 4.
cpu_limit RequiredIntDefines the number of vCPUs of the sandbox. Can be one of 1 or 2.
disk_size_limit RequiredIntDefines the sandbox disk size. Expressed in GB. Can be one of 5 or 10.
mappings RequiredMapping[]Defines the port-subdomain mappings that allow to access exposed resources on the sandbox.
application_portIntDefines the port used in the mapping.
subdomainStringDefines the subdomain used in the mapping.
basic_authBooleanIf set to true, it allows you to use basic authorization in mappings
mappings_usernameStringDefines the basic auth username required to access the exposed resources.
mappings_passwordStringDefines the basic auth password required to access the exposed resources.

Playbook parameters for Create new sandbox

NameTypeDescription
type
Required
StringThe type of the installed playbook. Can be one of DOCKER, APACHE, NGINX, WORDPRESS, NODE, RUBY, MARIA, MYSQL, POSTGRES, MONGO, or REDIS
dbStringThe initial database name. Available when type is set to MARIAWORDPRESS, POSTGRES, or MYSQL.
userStringDefines the username used in the desired service. Available when type is set to MARIAWORDPRESS, POSTGRES, or MYSQL.
passwordStringDefines the password used in the desired service. Available when type is set to MARIAWORDPRESS, POSTGRES, or MYSQL
install_phpStringInstalls PHP if set to true. Available when type is set to APACHE, or NGINX.
php_versionString[]The PHP version of the installed playbook. Available when type is set to APACHE or NGINX.
php_modulesString[]The PHP modules of the installed playbook. Available when type is set to APACHE or NGINX.
modulesStringThe Apache modules of the installed playbook. Available when type is set to APACHE.
versionStringThe version of the installed playbook. Available when type is set to NODERUBY, MONGO, or MYSQL.

Sample Request (with playbooks)

POST https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2/actions

JSON

{
    "name": "Create new sandbox",
    "type": "SANDBOX_CREATE_NEW",
    "trigger_time": "ON_EVERY_EXECUTION",
    "last_execution_status": "SUCCESSFUL",
    "disabled": false,
    "sandbox_name": "new sandbox with playbooks",
    "ignore_errors": false,
    "run_next_parallel": false,
    "sandbox_distribution": "ubuntu/focal",
    "sandbox_playbooks": [
        {
            "type": "APACHE",
            "install_php": true,
            "php_version": "8.0",
            "php_modules": [
                "gd",
                "mysql",
                "opcache",
                "curl",
                "xml",
                "mbstring",
                "imagick",
                "zip"
            ],
            "modules": [
                "expires",
                "headers",
                "rewrite"
            ]
        },
        {
            "type": "DOCKER"
        },
        {
            "type": "MONGO",
            "version": "5.0"
        },
        {
            "type": "NODE",
            "version": "12"
        },
        {
            "type": "POSTGRES",
            "db": "test",
            "user": "test",
            "password": "test"
        },
        {
            "type": "REDIS"
        },
        {
            "type": "RUBY",
            "version": "2.7"
        },
        {
            "type": "MYSQL",
            "version": "8.0",
            "db": "wp",
            "user": "wp",
            "password": "wp"
        },
        {
            "type": "WORDPRESS",
            "db": "wp",
            "user": "wp",
            "password": "wp",
            "phrase": "wp"
        }
    ],
    "ram_limit": 2,
    "cpu_limit": 1,
    "disk_size_limit": 5,
    "mappings": [
{
            "application_port": 80,
            "subdomain": "subdomain",
            "basic_auth": true
        }
    ],
  "mappings_username": "root",
  "mappings_password": "password"
}

Duplicate existing sandbox

POST Parameters

NameTypeDescription
action
Required
StringThe ID of the action.
type
Required
StringThe type of the action. Must be set to SANDBOX_CREATE_FROM_SANDBOX.
sandbox_name RequiredStringDefines the name of the created sandbox.
sandbox_id RequiredStringDefines the ID of the existing sandbox used to create new sandbox.
tagsString[]The list of tags applied to sandbox.
ram_limit RequiredIntDefines the amount of RAM available to the sandbox. Can be one of 2 or 4.
cpu_limit RequiredIntDefines the number of vCPUs of the sandbox. Can be one of 1 or 2.
disk_size_limit RequiredIntDefines the sandbox disk size. Expressed in GB. Can be one of 5 or 10.
mappings RequiredMapping[]Defines the port-subdomain mappings that allow to access exposed resources on the sandbox.
application_portIntDefines the port used in the mapping.
subdomainStringDefines the subdomain used in the mapping.
basic_authBooleanIf set to true, it allows you to use basic authorization in mappings
mappings_usernameStringDefines the basic auth username required to access the exposed resources.
mappings_passwordStringDefines the basic auth password required to access the exposed resources.

Sample Request

POST https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2/actions

JSON

{
  "name": "Create new sandbox from existing",
  "type": "SANDBOX_CREATE_FROM_SANDBOX",
  "trigger_time": "ON_EVERY_EXECUTION",
  "tags": [
    "tag_1",
    "tag_2"
  ],
  "sandbox_name": "sandbox-buddy",
  "sandbox_id": "BJ7YnoUVtfGdo",
  "ram_limit": 2,
  "cpu_limit": 1,
  "disk_size_limit": 5,
  "mappings": [
        {
            "application_port": 80,
            "subdomain": "subdomain",
            "basic_auth": true
        }
    ],
  "mappings_username": "root",
  "mappings_password": "password"
}

Sample Response

HTTP

Status: 201 Created
X-Rate-Limit-Limit: 1
X-Rate-Limit-Remaining: 999

JSON

{
  "url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2/actions/2",
  "html_url": "https://app.buddy.works/buddy/company-website/pipelines/action/2/edit",
  "id": 2,
  "name": "Create new sandbox from existing",
  "type": "SANDBOX_CREATE_FROM_SANDBOX",
  "trigger_time": "ON_EVERY_EXECUTION",
  "last_execution_status": "INITIAL",
  "tags": [
    "tag_1",
    "tag_2"
  ],
  "sandbox_name": "sandbox-buddy",
  "sandbox_id": "BJ7YnoUVtfGdo",
  "ram_limit": 2,
  "cpu_limit": 1,
  "disk_size_limit": 5,
  "mappings": [
        {
            "application_port": 80,
            "subdomain": "subdomain",
            "basic_auth": true
        }
    ],
  "mappings_username": "root",
  "mappings_password": "password",
  "pipeline": {
    "url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2",
    "html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/2",
    "id": 2,
    "name": "Live mirror",
    "refs": [
      "refs/heads/master"
    ],
    "last_execution_status": "SUCCESSFUL",
    "last_execution_revision": "506a3963507943d6908154f4bc9646e829128a08"
  }
}

Create from snapshot

POST Parameters

NameTypeDescription
action
Required
StringThe ID of the action.
type
Required
StringThe type of the action. Must be set to SANDBOX_CREATE_FROM_SNAPSHOT.
sandbox_name RequiredStringDefines the name of the created sandbox.
snapshot_id RequiredStringDefines the ID of the snapshot used to create a sandbox.
tagsString[]The list list of tags applied to sandbox.
ram_limit RequiredIntDefines the amount of RAM available to the sandbox. Can be one of 2 or 4.
cpu_limit RequiredIntDefines the number of vCPUs of the sandbox. Can be one of 1 or 2.
disk_size_limit RequiredIntDefines the sandbox disk size. Expressed in GB. Can be one of 5 or 10.
mappings RequiredMapping[]Defines the port-subdomain mappings that allow to access exposed resources on the sandbox.
application_portIntDefines the port used in the mapping.
subdomainStringDefines the subdomain used in the mapping.
basic_authBooleanIf set to true, it allows you to use basic authorization in mappings
mappings_usernameStringDefines the basic auth username required to access the exposed resources.
mappings_passwordStringDefines the basic auth password required to access the exposed resources.

Sample Request

POST https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2/actions

JSON

{
  "name": "Create new sandbox from snapshot",
  "type": "SANDBOX_CREATE_FROM_SNAPSHOT",
  "trigger_time": "ON_EVERY_EXECUTION",
  "tags": [
    "tag_1",
    "tag_2"
  ],
  "sandbox_name": "sandbox-buddy",
  "snapshot_id": "sn-SsWzv1Y1xBrYX",
  "ram_limit": 2,
  "cpu_limit": 1,
  "disk_size_limit": 5,
  "mappings": [
        {
            "application_port": 80,
            "subdomain": "subdomain",
            "basic_auth": true
        }
    ],
  "mappings_username": "root",
  "mappings_password": "password"
}

Sample Response

HTTP

Status: 201 Created
X-Rate-Limit-Limit: 1
X-Rate-Limit-Remaining: 999

JSON

{
  "url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2/actions/2",
  "html_url": "https://app.buddy.works/buddy/company-website/pipelines/action/2/edit",
  "id": 2,
  "name": "Create new sandbox from snapshot",
  "type": "SANDBOX_CREATE_FROM_SNAPSHOT",
  "trigger_time": "ON_EVERY_EXECUTION",
  "last_execution_status": "INITIAL",
  "tags": [
    "tag_1",
    "tag_2"
  ],
  "sandbox_name": "sandbox-buddy",
  "snapshot_id": "sn-SsWzv1Y1xBrYX",
  "ram_limit": 2,
  "cpu_limit": 1,
  "disk_size_limit": 5,
  "mappings": [
        {
            "application_port": 80,
            "subdomain": "subdomain",
            "basic_auth": true
        }
    ],
  "mappings_username": "root",
  "mappings_password": "secure!HgGGWOOdDRGVCt9A2E8iLQ==.lMfNW8nAd+N40qq0vd6z2w==",
  "pipeline": {
    "url": "https://api.buddy.works/workspaces/buddy/projects/company-website/pipelines/2",
    "html_url": "https://app.buddy.works/buddy/company-website/pipelines/pipeline/2",
    "id": 2,
    "name": "Live mirror",
    "refs": [
      "refs/heads/master"
    ],
    "last_execution_status": "SUCCESSFUL",
    "last_execution_revision": "506a3963507943d6908154f4bc9646e829128a08"
  }
}

Get Started

Sign up for free and deploy your project in less than 10 minutes.