Self-host Cloudgate on your own server

Cloudgate installs on one Ubuntu server with a single command. It is free to run under the Elastic License 2.0, with one Organization and one build at a time per Server, and an Enterprise license for the rest.

Should you self-host or use the hosted console?

Both run the same Cloudgate and deploy to the same places. The question is whether you want to look after Cloudgate itself.

Self-host if

  • You have to keep the deployment platform inside your own network or provider.
  • You are comfortable running an Ubuntu server: updates, backups and a firewall.
  • One Organization is enough, or you plan to buy an Enterprise license.
  • You want to read or change how Cloudgate works.

Use the hosted console if

  • You want to sign up and deploy today, with nothing of ours to install or upgrade.
  • You want to buy a server from us instead of finding one yourself.
  • You want SSO and SCIM on a monthly plan, without a license agreement.
  • You built an app with an AI tool and just want it online.

What does the server need?

One bare machine. The installer was proved on exactly this size, and it is enough to run Cloudgate and deploy small apps onto the same box.

Check that no cloud firewall in front of the server blocks ports 3000 and 4000. A blocked port looks exactly like a broken install.

Operating system
Ubuntu 24.04, freshly installed
Processor
x86-64 (amd64)
Size
2 vCPU, 4 GB memory, 40 GB disk
Access
root over SSH
Open ports
22, 80, 443, 3000 and 4000, inbound
DNS
None to start. Apps get a free sslip.io address that points at your server’s IP.
  • 22SSH
  • 80http
  • 443https
  • 3000Console
  • 4000API

What does the installer set up?

One script, deploy/install.sh, installs Cloudgate natively on the host. There is no container image of Cloudgate itself: it deploys containers, it does not ship as one.

Cloudgate under systemd
The console and the API run as two Node services that restart on their own. Node comes from nodejs.org, checksum-verified.
PostgreSQL on the box
Cloudgate's own database, with a generated role and password kept in a root-only file.
Docker and a Swarm of one
The server becomes a one-node Docker Swarm, so it can run what you deploy straight away.
Traefik
Routes each app's address and gets Let's Encrypt certificates once you add a domain.
Build and cloud tools
Nixpacks for builds, and OpenTofu with pinned providers for deploying to AWS and Google Cloud.
A firewall
ufw with SSH, 80, 443, 3000 and 4000 allowed. Ports Docker publishes later go around it, so treat a database's external port as public.

Who owns the instance?

The first person to sign up. Open http://<your server's IP>:3000/sign-up when the installer finishes; your account owns the instance and sign-up closes behind you. Everyone after that joins by invitation.

How do you install it?

One command on the server, then one sign-up in your browser. The command is safe to run again, and running it again is how you upgrade.

  1. Prepare the server

    A fresh Ubuntu 24.04 machine with the ports above open, reached as root over SSH.

  2. Run the install command

    It clones Cloudgate into /opt/cloudgate, finds the server's public IP address and installs everything. It stops early on anything but Ubuntu 24.04 on x86-64.

    curl -fsSL https://cloudgate.octabyte.io/install.sh | sudo sh

    Using a hostname, or a different address? Name it with CLOUDGATE_PUBLIC_HOST; it is built into the console.

    curl -fsSL https://cloudgate.octabyte.io/install.sh | sudo CLOUDGATE_PUBLIC_HOST=cloud.example.com sh
  3. Claim the instance

    Open http://<your server's IP>:3000/sign-up and create the first account. Then add the server under Servers and deploy your first app, or start from one of the app templates.

How do upgrades and backups work?

On your own server, both are your job. They are short, and the secrets file is the part not to lose.

Upgrading

Run the install command again. It fast-forwards /opt/cloudgate, reuses the address the last install was given, migrates the database, rebuilds, restarts both services, and reads your existing secrets back instead of making new ones.

root@your-server
curl -fsSL https://cloudgate.octabyte.io/install.sh | sudo sh

Backing up Cloudgate itself

Cloudgate backs up the databases and volumes you deploy. Back up Cloudgate on its own: the cloudgate PostgreSQL database, the files /etc/default/cloudgate-*, and the folder /etc/cloudgate. Keep them off the server.

Without the encryption secret in /etc/default/cloudgate-secrets, stored keys and passwords in the database cannot be read again. Back up both together.

Out of the box the console and API answer on plain http at ports 3000 and 4000. Before you give the server a public address, decide whether that is acceptable, or reach the console over an SSH tunnel or a private network.

What does the Elastic License 2.0 let you do?

Almost everything a team running its own deployments needs, for free. Cloudgate is source-available, not open source.

You can

  • Use Cloudgate inside your company, for any apps you run
  • Run it on as many of your own servers as you like
  • Read the source and change it for your own use

You can't

  • Offer Cloudgate to others as a hosted or managed service
  • Remove, disable or get around its license checks
  • Remove its license and copyright notices

The Elastic License 2.0 in plain English, with worked cases

What does an Enterprise license add?

The free version deploys everything Cloudgate can deploy. A license unlocks the features larger teams ask for, and they stay on as long as the license is valid.

Free

$0 under the Elastic License 2.0

Apps, databases, Compose stacks, AI models
Yes
Servers, AWS and Google Cloud
Yes, not counted
Agents and the MCP endpoint
Yes
Organizations
One
Builds and cloud runs
One at a time per Server
SSO, SCIM and custom roles
No
Forward auth in front of apps
No
White-labelling
No

Enterprise license

Agreed with you 30-day trial key on request

Apps, databases, Compose stacks, AI models
Yes
Servers, AWS and Google Cloud
Yes, not counted
Agents and the MCP endpoint
Yes
Organizations
More than one
Builds and cloud runs
In parallel
SSO, SCIM and custom roles
Yes
Forward auth in front of apps
Yes
White-labelling
Yes
Ask about a license

Prices are agreed with each customer, and a 30-day trial key is available. Write to support@octabyte.io. If a license ends, your settings are kept and the licensed features stop; nothing is deleted. See every plan side by side on the Cloudgate pricing page, or what the platform does on the features page.

Questions people ask

Is self-hosted Cloudgate really free?

Yes. The Elastic License 2.0 lets you use, self-host and modify Cloudgate without paying. The free version holds one Organization and runs one build at a time per Server. You pay only for the servers you run it on.

Is Cloudgate open source?

No. It is source-available under the Elastic License 2.0, and the source is public on GitHub. You can read, run and change it, but you may not offer it to others as a hosted service, and you may not remove or get around its license checks.

Do I need a domain name to install it?

No. The installer works with your server’s IP address, and deployed apps are reachable at a free sslip.io address straight away. Add your own domain later for https.

Can I deploy to the same server Cloudgate runs on?

Yes. Cloudgate can deploy onto the machine it runs on, and you can add more Ubuntu servers over SSH, or connect AWS and Google Cloud accounts.

How do I upgrade a self-hosted instance?

Run the same install command again. It fast-forwards /opt/cloudgate to the latest version, reuses the address the last install was given, migrates the database, rebuilds and restarts Cloudgate, and keeps your secrets.

What does an Enterprise license cost?

We agree the price and billing period with each customer, and a 30-day trial key is available on request. Write to support@octabyte.io.

Rather not run it yourself?

The hosted console is the same Cloudgate, kept up to date by us. Start a 30-day free trial and deploy to a server you bring or one you buy from us.