Skip to main content

Prepare a Server on Azure

This guide gets a virtual machine ready for Bring Your Own Server, with its firewall, fixed IP 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 run in Cloud Shell (Bash), the terminal icon at the top of the Azure portal, so there is nothing to install. Keep the same tab open: each block reuses the values from step 1.

1. Choose your values​

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

UseSizevCPURAMDisk
One production and one stagingStandard_D2s_v528 GB128 GB
Production with staging and development branchesStandard_D4s_v5416 GB256 GB

Avoid sizes with a p after the number, such as D2ps_v5: they are ARM, and the installer refuses to run on them. Avoid the B-series for production: it slows down under sustained load.

Open Resource groups → Create, name the group skysize-odoo, and choose your location. Use the same group and location in every step.

2. Create the network security group​

The server needs these inbound rules, and no others:

ServicePortSourceWhy
SSH22AnyYour access to the server, with an SSH key only
HTTP80AnyCertificates and redirects
HTTPS443AnyYour Odoo sites

Skysize itself needs no inbound port. Once you know the address you connect from, you can limit the SSH rule to it. Leave PostgreSQL (5432) closed unless you use read-only database access. Outbound traffic is allowed by default, and the server needs it.

There is nothing to create yet: you set these rules while creating the VM in the next step.

3. Create the VM with a fixed IP​

Use Ubuntu 24.04 for x86, a static public IP so your DNS records keep working, and a managed identity for backups. Note the IP: your DNS records will point to it.

Open Virtual machines → Create → Azure virtual machine, and set:

TabSettingValue
BasicsResource groupskysize-odoo
BasicsVirtual machine nameskysize-odoo
BasicsImageUbuntu Server 24.04 LTS, x64
BasicsSizeThe size from step 1
BasicsAuthentication typeSSH public key, username azureuser
BasicsPublic inbound portsAllow selected ports: SSH (22), HTTP (80), HTTPS (443)
DisksOS diskPremium SSD, with the size from step 1
NetworkingPublic IPKeep the new one it proposes, which is static
ManagementEnable system assigned managed identityOn

Click Review + create, then Create, and download the SSH key when asked.

4. Create the backup storage​

Skysize makes no backups until a project has a backup target. This creates a private storage account and lets the server's managed identity use it, with no secret to store. Note the storage account's name.

Storage account

  1. Open Storage accounts → Create.
  2. Choose the group skysize-odoo, and a name that is unique across Azure: lowercase letters and digits only.
  3. Set Redundancy to LRS.
  4. On the Advanced tab, turn off Allow enabling anonymous access on individual containers.
  5. Click Review + create, then Create.

Container and access

  1. In the storage account, open Containers, and add one named backups.
  2. Open Access Control (IAM) → Add → Add role assignment.
  3. Choose Storage Blob Data Contributor, then under Members choose Managed identity and select your VM.
  4. Click Review + assign.
  5. Repeat with Storage Blob Delegator.

5. Connect to the server​

This is where you paste the Skysize install command.

From a terminal on your computer, with the key you downloaded:

ssh -i skysize-odoo_key.pem azureuser@YOUR_PUBLIC_IP

6. Set the backup target​

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

FieldValue
TypeAzure Blob Storage
Storage accountYour storage account's name
Containerbackups
PrefixThe project name
AuthenticationManaged identity

Click Test to check it from your server. New roles can take a few minutes to apply, so try again if the first test fails.

Sending email from Odoo​

Azure blocks outgoing port 25 on most subscription types. Use an authenticated SMTP relay on port 587. 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.