Skip to main content

Prepare a Server on DigitalOcean

This guide gets a Droplet ready for Bring Your Own Server, with its firewall and backup storage. Skysize installs everything else on the server.

Each step has two tabs: click through the Console, or paste from Command line. Your choice applies to the whole page.

Commands use DigitalOcean's doctl command-line tool on your own computer. To set it up, run doctl auth init and paste an API token. You also need an SSH key at ~/.ssh/id_ed25519.pub.

1. Choose your values​

Pick the region closest to your users, and the size for your use.

UseSIZEvCPURAMDisk
One production and one stagings-4vcpu-8gb48 GB160 GB
Production with staging and development branchess-8vcpu-16gb816 GB320 GB

These are Basic plans, with shared CPUs. Dedicated General Purpose plans give steadier performance, but check the disk first with doctl compute size list --format Slug,VCPUs,Memory,Disk: some are below the 50 GB Skysize needs.

Open the DigitalOcean control panel. Use the same region in every step.

2. Create the Droplet​

Use Ubuntu 24.04 for x86. The public IPv4 stays the same for as long as the Droplet exists. Note it: your DNS records will point to it.

Click Create → Droplets, and set:

SettingValue
RegionYours
ImageUbuntu 24.04 (LTS) x64
SizeThe plan from step 1
AuthenticationSSH key: add yours
Hostnameskysize-odoo

Then click Create Droplet.

3. Create the firewall​

DirectionTypePortSources or destinationsWhy
InboundSSH22Your IP addressYour access to the server
InboundHTTP80All IPv4, All IPv6Certificates and redirects
InboundHTTPS443All IPv4, All IPv6Your Odoo sites
OutboundAll TCP, UDP, ICMPAllAll IPv4, All IPv6The firewall blocks whatever no rule allows, and the server needs outbound traffic

Skysize itself needs no inbound port. Leave PostgreSQL (5432) closed unless you use read-only database access. If your own IP changes, update the port 22 rule in the control panel.

  1. Open Networking → Firewalls → Create Firewall, and name it skysize-odoo.
  2. Add the three inbound rules above, with your own IP address as the source for SSH.
  3. Keep the default outbound rules.
  4. Under Apply to Droplets, select your Droplet, and click Create Firewall.

4. Connect to the server​

ssh root@YOUR_DROPLET_IP

This is where you paste the Skysize install command.

5. Create the backup storage​

Skysize makes no backups until a project has a backup target. In the control panel, open Spaces Object Storage:

  1. Create a bucket with file listing restricted, ideally in another region than your Droplet.
  2. Create an access key for it. Copy the secret straight away: it is only shown once.

6. Set the backup target​

Once your project exists, open its Settings → Backup Target, click Add Target, and fill in:

FieldValue
TypeS3-compatible (Wasabi, R2, MinIO...)
BucketYour bucket's name
Endpointhttps://nyc3.digitaloceanspaces.com, with your bucket's region
Regionus-east-1, as DigitalOcean's documentation says to use for S3 tools
PrefixThe project name
Access key ID and Secret access keyThe key from step 5

Click Test to check it from your server.

Sending email from Odoo​

DigitalOcean blocks outgoing ports 25, 465 and 587, so ordinary SMTP does not work from a Droplet. Use an email provider that offers another port, such as 2525. See Configure Outgoing Email.

Connect the server to Skysize​

Your server is ready. Follow Set Up Your Own Server, starting at the step that registers the server. In short: register it in the dashboard, connect to it over SSH, and paste the install command. The status changes to Online within a minute of the installer finishing.

Once your first project runs, add your domain.

If something goes wrong​

The dashboard says ports 80 and 443 are not reachable. Check the firewall rules above, and that the public IP in the server's settings is the one you noted. Then click Check again.

The server stays Offline. The server connects out to Skysize, so no inbound rule fixes this. Run these on the server:

sudo systemctl status skysize-agent
sudo journalctl -u skysize-agent -n 50
nc -zv cp.skysize.io 50051

If the installer did not finish, or the join token was already used, use Regenerate join token on the server's page and run the install command again.

Still stuck? Open Support in the dashboard and include the output of those commands.