dockxo
FeaturesPricingBlogChangelogGet started Sign in

Deploy Docker apps to your own servers.

One dashboard for the servers you already rent: GitHub deploys, domains with TLS, databases, backups and monitors. Free while in beta.

One-click templates and the pieces underneath

PostgreSQLMariaDBMySQLRedisMongoDBRabbitMQMinIOMeilisearchNginxUptime KumaClickHouseWireGuard VPNAny Docker imageGitHub reposTraefik routingLet's EncryptCloudflare DNSNVIDIA GPUsClaude via MCPPostgreSQLMariaDBMySQLRedisMongoDBRabbitMQMinIOMeilisearchNginxUptime KumaClickHouseWireGuard VPNAny Docker imageGitHub reposTraefik routingLet's EncryptCloudflare DNSNVIDIA GPUsClaude via MCP

Three steps from a bare server to a URL with TLS.

No Kubernetes, no YAML, no SSH keys. The panel keeps the configuration; an agent on each server does the work.

  1. Connect

    Paste one command on your server

    Docker is installed if missing. The agent starts, opens an outbound WebSocket to the panel and brings up a Traefik proxy. Nothing listens on the server.

    #curl -fsSL https://panel.dockxo.com/install/… | sh
  2. Deploy

    Point at a repo, an image or a template

    Pick a GitHub branch with push-to-deploy, any Docker image, an inline Dockerfile, or a one-click Postgres, Redis or MariaDB. Env is encrypted and injected.

    →northwind/shop-api main, rolling, auto-deploy
  3. Route

    Add a domain, get a certificate

    Free subdomain instantly, your own domain with Let's Encrypt in seconds. Cloudflare records can be created for you and follow the service if it moves.

    ✓https://api.northwind.dev TLS, HTTP to HTTPS

Your servers dial out. The panel never dials in.

Each server runs a small agent that connects to the panel over an outbound WebSocket and controls Docker locally. It works behind NAT, needs no open port and no SSH access. Mark a server private and its IP never appears in DNS.

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

Rolling deploys with a real port check

The new container starts next to the old one, has to answer on its port, then routes switch and the old one is removed. A failed container is cleaned up, not left lingering. Every build streams live and can be cancelled.

  • GitHub with push-to-deploy webhooks, monorepo build paths, Dockerfile path
  • Docker layer cache survives between deploys; rebuild without cache on demand
  • Deploy history with commit message, sha and duration
  • Write env as a .env file into the build for Laravel, dotenv and friends
Deploying api #128rolling
$ git clone --depth 1 -b main github.com/northwind/shop-api
#5 [3/6] COPY package*.json ./
#6 [4/6] RUN npm ci --omit=dev CACHED
#8 exporting image sha256:9b1c…e3
built in 14.2s
starting api-a41f2c on shop network
waiting for :3000 … 1.8s
port check passed
routes updated on hetzner-fsn-1
removed api-77e0b1, zero downtime

Managed MariaDB with replicas and a router

A database kind with its own wizard, users and grants, dump import and tunables. Add read-only replicas on other servers, promote one with a click, and put a MaxScale router in front for read/write split and automatic failover.

  • Health checked every minute; Telegram or email alert when replication stops or lag grows
  • Managed Redis, MongoDB and Meilisearch too, with copy from another instance
  • A stable DNS name per database that follows the server it runs on
shop / db primary
apps → router:3306→ db, primary, fsn-1 db-replica, lag 0.2s, nbg-1 db-replica-2, lag 0.4s, hel-1
statusrunning, 214 of 500 connections replication2 replicas, GTID 0-1-8812 routermaxscale, rw-split, failover auto last backup04:00, 1.9 GB, r2://northwind-backups alertstelegram #ops, [email protected]

Ask Claude. Get paged on your phone. Sign in without a password.

dockxo 1.0 is out, and the 1.x releases bring the panel to where you are: in your AI assistant, on your home screen, behind a passkey.

Free while in beta. All of it.

$0a month, during the beta

No plan tiers, no server cap, no card. When paid plans arrive we will say so 30 days ahead, and beta accounts keep their projects.

  • Unlimited servers
  • Unlimited projects and services
  • Unlimited domains with TLS
  • Free subdomains per server
  • Managed MariaDB, Redis, MongoDB, Meilisearch
  • Load balancers and cache proxies
  • Backups to your own bucket
  • Monitors with Telegram and email alerts
  • Logs, terminal, file manager
  • Full API and restore CLI
  • Two-factor auth and security notices
  • Email support from the makers

Questions people ask before adding their first server.

Is it really free?
Yes. While dockxo is in beta every feature is available with no plan limits and no card. When paid plans arrive we will announce them at least 30 days ahead, and beta accounts keep their projects. See the beta terms.
Where do my apps run?
On your own servers. dockxo is the control panel; a small agent on each server does the work. Your containers, volumes and backups never leave machines and buckets you control.
What does the agent need?
A fresh Ubuntu 22.04+ or Debian 12+ server and root for the install command. It installs Docker if missing, runs as a container with docker.sock, and only makes an outbound WebSocket connection to the panel. No inbound port, no SSH.
Can I use my own domain and Cloudflare?
Yes. Add any number of domains per service; certificates come from Let's Encrypt on the server. With a Cloudflare token the panel creates and updates A records for you, and records follow a service when it moves.
Does it lock me in?
No. Everything is a plain Docker container, a plain Traefik configuration and a plain volume on your server. Backups are tarballs and SQL dumps in your own bucket, next to a sealed file with the project's configuration.
Can I script it?
Everything the panel does goes through the same HTTP API with personal tokens, each read only, read + deploy or full access: deploy (and wait for the result), set env keys, add domains, move services, follow jobs, read logs.
Can Claude or another AI assistant use it?
Yes. dockxo is an MCP server: add https://panel.dockxo.com/mcp as a connector in Claude (or Claude Code, Cursor, VS Code), approve read only, read + deploy or full access, and ask in plain words. It never deletes anything and secrets stay masked. How it works.
Is there a mobile app?
dockxo installs as an app on iPhone, Android and desktop straight from the browser, with push notifications for monitors and service alerts. App and push notifications.
How does it compare to Virtuozzo Application Platform (Jelastic)?
Virtuozzo is a PaaS you license per cluster (from $192 a month for 64 GB of RAM, plus an installation fee and several infrastructure nodes) or rent by the cloudlet from a hosting provider. dockxo runs on the plain VPSes you already have and is free during the beta. Read the full comparison.

Your servers deserve a better dashboard.

Create an account, paste one command on a server, and deploy something in the next five minutes.