---
title: "Create a new server"
method: POST
path: "/servers"
tags: ["Server Info"]
---

# Create a new server

`POST /servers`

## Request

- Base URL: `https://api.cloudpepper.io`
- URL: `https://api.cloudpepper.io/servers`
- Auth: HTTP bearer

Creates a new server for hosting Odoo instances. This endpoint provisions a cloud server or sets up a custom SSH server with the necessary infrastructure to run Odoo applications. The server will be prepared with all required system dependencies, security configurations, and monitoring tools.

**Key Parameters:**
- `type`: The cloud provider to use (e.g., 'cloudpepper', 'digitalocean', 'vultr', 'aws', 'linode', 'custom')
- `region`: Datacenter location identifier (varies by provider, not required for custom servers)
- `plan`/`size`/`instanceType`: Server resources specification (name varies by provider, not required for custom servers)
- `config.odoo_version`: Version of Odoo to install (e.g., '16.0', '17.0')
- `ssh`: SSH configuration object (required only for custom servers)

**Custom SSH Server Requirements:**
- Must be a clean Linux installation (amd64 architecture)
- Supported operating systems:
  - Debian 13 Trixie (for Odoo 19.0)
  - Debian 12 Bookworm (for Odoo 16.0, 17.0, 18.0)
  - Debian 11 Bullseye (for Odoo 13.0, 14.0, 15.0)
  - Debian 10 Buster (for Odoo 11.0, 12.0)
  - Ubuntu 26.04 LTS (planned for Odoo 20.0)
  - Ubuntu 24.04 LTS (for Odoo 18.0, 19.0)
  - Ubuntu 22.04 LTS (for Odoo 14.0, 15.0, 16.0, 17.0)
  - Ubuntu 20.04 LTS (for Odoo 12.0, 13.0)
- User must have sudo privileges
- SSH access must be available
- User cannot be 'odoo' (reserved for Odoo installation)

**NOTE:** Server provisioning runs asynchronously. After receiving a 200 response, the server will continue setting up in the background. The process typically takes 5-10 minutes to complete for cloud providers, or 10-15 minutes for custom SSH servers. You can check the server status using the server management endpoints.

## Query parameters

- `venv` 'true' | 'false'

## Request body

- union
  - object
    - `type` 'cloudpepper', required: The cloud provider type
    - `region` string, required: Datacenter location identifier
    - `plan` string, required: Server plan identifier specifying CPU, RAM, and disk resources
    - `config` object, required
      - `odoo_version` string, required: Version of Odoo to install on the server
  - object
    - `type` 'digitalocean', required: The cloud provider type
    - `region` string, required: Datacenter location identifier
    - `size` string, required: Droplet size identifier specifying CPU, RAM, and disk resources
    - `config` object, required
      - `odoo_version` string, required: Version of Odoo to install on the server
  - object
    - `type` 'vultr', required: The cloud provider type
    - `region` string, required: Datacenter location identifier
    - `plan` string, required: Server plan identifier specifying CPU, RAM, and disk resources
    - `config` object, required
      - `odoo_version` string, required: Version of Odoo to install on the server
  - object
    - `type` 'linode', required: The cloud provider type
    - `region` string, required: Datacenter location identifier
    - `instanceType` string, required: Linode instance type identifier specifying CPU, RAM, and disk resources
    - `config` object, required
      - `odoo_version` string, required: Version of Odoo to install on the server
  - object
    - `type` 'aws', required: The cloud provider type
    - `region` string, required: AWS region identifier
    - `instanceType` string, required: AWS EC2 instance type identifier
    - `volumeSize` integer: Storage size in GB
    - `enableSwap` boolean: Whether to enable swap space
    - `createElasticIp` boolean: Whether to create and assign an Elastic IP
    - `vpcId` string, nullable: Optional VPC ID to launch the instance in
    - `config` object, required
      - `odoo_version` string, required: Version of Odoo to install on the server
  - object
    - `type` 'custom', required: Server type for custom SSH servers
    - `ssh` object, required: SSH connection configuration for the custom server
      - `host` string, required: IP address or hostname of the SSH server
      - `port` integer: SSH port number
      - `user` string, required: SSH username (cannot be 'odoo' as it's reserved)
      - `auth_type` 'password' | 'key', required: Authentication method for SSH connection
      - `password` string: SSH password (required when auth_type is 'password')
      - `private_key` string: SSH private key content (required when auth_type is 'key')
    - `config` object, required
      - `odoo_version` '11.0' | '12.0' | '13.0' | '14.0' | '15.0' | '16.0' | '17.0' | '18.0' | '19.0' | '20.0', required: Version of Odoo to install on the server. Must be compatible with the server's operating system.

## Response `200`

Server creation initiated successfully

- object
  - `id` string, uuid: Unique identifier for the newly created server

## Other responses

- `400`: Invalid request data or payment processing issue
- `403`: Insufficient permissions to create servers

---

[API](https://skmtc.dev/cloudpepper/apis/cloudpepper-api-docs.md) · [All operations](https://skmtc.dev/cloudpepper/apis/cloudpepper-api-docs/llms.txt) · [OpenAPI document](https://skmtc.dev/cloudpepper/apis/cloudpepper-api-docs/revisions/b6a59274cedc?raw)
