dockxo beta
FeaturesPricingBlogChangelogGet started Sign in
Get started

Five minutes to a running app with TLS.

You need an account and a server with Ubuntu 22.04+ or Debian 12+ and root access. Everything else is installed for you.

1. Create an account

Go to panel.dockxo.com, choose Sign up, enter a name, email and password. There is no card and no plan to pick. Turn on two-factor authentication under Settings if you like.

2. Connect a server

Open Servers → Add server, give it a name and copy the install command. Paste it on the server as root:

curl -fsSL https://panel.dockxo.com/install/<token> | sh

The script installs Docker if it is missing and starts two containers: dockxo-agent, which opens an outbound WebSocket to the panel, and dockxo-traefik, the proxy on ports 80 and 443. The token in the URL expires after 15 minutes until first use. Within a few seconds the server shows online with live CPU, memory, disk and network.

The panel needs no SSH access and your server needs no inbound port other than 80 and 443 for your own traffic. A server behind NAT works too. Mark the server private in its settings if it should never get a DNS record (a load-balancer member, a database replica).

3. Create a project and a service

A project is a private Docker network; services inside it reach each other by name (db:3306, redis:6379). Create one, then add a service:

  • GitHub — connect GitHub, pick a repository and branch, set the Dockerfile path if it is not at the root, and turn on auto-deploy. A push to the branch redeploys.
  • Docker image — any public image or a private registry with credentials.
  • Dockerfile — write it in the panel.
  • Template — Postgres, MariaDB, MySQL, Redis, Mongo, RabbitMQ, MinIO, Meilisearch, Nginx or Uptime Kuma with a data volume and generated credentials.
  • Managed database — a MariaDB you can give replicas and a router later.

Set the container port, paste your env (it is encrypted before it is stored), choose rolling for a web app, and deploy. The build log streams live.

4. Add a domain

On the service's Domains tab, take a free subdomain (<label>.<server>.…) in one click, or add your own domain. For your own domain, point an A record at the server's IP — or add a Cloudflare token under Settings → DNS and let the panel create the record. Let's Encrypt issues the certificate on the server; HTTP redirects to HTTPS; websockets work.

Next

  • Add a backup plan to your own S3-compatible bucket.
  • Add a monitor and connect Telegram or an email address for alerts.
  • Deploy the same service on a second server and put a load balancer in front.
  • Give your database a replica on another server.
  • Create an API token and deploy from CI.

How it fits together

browser you dockxo panel Fastify + React MariaDB · jobs · webhooks panel.dockxo.com HTTPS server A dockxo-agent → docker.sock → traefik :80 :443 api · web · db · redis server B dockxo-agent → docker.sock → traefik :80 :443 db-replica · worker · lb server C (private) dockxo-agent → docker.sock → traefik :8099 no public DNS · load-balancer member outbound WebSocket no inbound ports · no SSH

Stuck?

Write to [email protected]. During the beta the people answering are the people building it.