Skip to content
DockBoard
LOCAL OR MULTI-SERVER

Your whole Docker infrastructure, driven from one screen.

Applications, databases, private networking, domains, SSL, backups and mail server. DockBoard deploys from Git or a Docker image, on one VPS or across your fleet, with no config file to write.

Install DockBoard on your own VPS in one command

2 modes
local · multi-server
5 engines
managed databases
Auto SSL
Caddy + Let's Encrypt
1 network
per project, private
DEPLOYSNext.jsNestJSDjangoLaravelDockerfileComposePostgreSQLMySQLMongoDBRedisClickHouse
01 — MODES

One VPS, or an entire fleet.

LOCAL MODE

Everything on this VPS

The simplest setup: the API creates the project network and attaches your apps to it. The Servers page stays hidden.

  • No agent to install
  • Docker network handled by the API
  • Switch to Multi at any time
MULTI-SERVER MODE

Regions, isolation, load

One SSH one-liner: the agent installs itself, the server turns ONLINE, and you pick its target for each project.

  • A project lives on one server
  • Network and compose override written by the agent
  • Move a project between VPS
vps-fra-01ONLINE
Gravelines · 8 vCPU · 16 Go
vps-waw-02ONLINE
Varsovie · 4 vCPU · 8 Go
Add a server
curl … | sh
02 — PIPELINE

From repo to domain, in four steps.

Every deployment follows the same path, whether the target is this VPS or a remote server driven by the agent.

  1. 01

    Source

    Git repo and branch, or a pre-built Docker image. Framework detected.

  2. 02

    Build

    Build context resolved, monorepos included. Image built and tagged.

  3. 03

    Network

    Container attached to the project network, env vars and databases injected.

  4. 04

    Exposure

    Caddy regenerated, domain attached, certificate issued and renewed.

03 — MICROSERVICES

Your services talk by name.

Every project owns a Docker network. Apps resolve through internal DNS: one public domain, everything else stays private.

PUBLIC · CADDY + SSL
frontend
athexis.xyz
Next.js · :3000
INTERNAL
api
dockboard-api:4000
NestJS
INTERNAL
db
dockboard-db-db:5432
PostgreSQL
SERVICE MESH TAB — COPY AS-IS
API_URL=http://dockboard-api:4000
DATABASE_URL=postgres://…@dockboard-db-db:5432/db

Attach a domain to the frontend only. api and db stay internal, with no public port and no firewall rule.

dockboard_proj_7f21
04 — DOMAINS & DNS

The right records, and their real state.

Keep your nameservers. DockBoard reconciles what is expected with what is published, and issues the certificate as soon as DNS points correctly.

athexis.xyzSSL ACTIVELast check: 2 min ago
DNS records expected for athexis.xyz, and the state observed for each.
HOSTTYPEVALUESTATE
@A51.83.42.17OK
apiCNAMEathexis.xyzOK
mailA51.83.42.17OK
@MX 10mail.athexis.xyzPENDING
@TXTv=spf1 mx ~allOK

Up to 24h of propagation is normal. The Verify button re-runs the check on demand.

05 — CAPABILITIES

What the platform handles for you.

APPS

Git or image, one port

Framework, branch, listening port. Start, stop, redeploy, delete: the stack follows.

DATABASES

Provisioned, never exposed

PostgreSQL, MySQL, MongoDB, Redis, ClickHouse. Generated credentials, connection string ready.

VOLUMES

What must survive, survives

Named volumes re-attached on every redeploy and picked up by the backup system.

MAIL

One server per domain

Postfix and Dovecot in containers. MX, SPF, DKIM, DMARC, PTR: the page tells you what's missing.

LOGS

Live logs and state

Build and runtime output per app, container state and deployment history.

TEAM

Per-project access

Members and roles at project level: network and permissions follow the project.

06 — MONOREPO

Build context, inferred correctly.

A pnpm, turbo, yarn or lerna workspace with a Dockerfile in a subfolder builds from the repository root. Root lockfile and sibling packages are in the context.

apps/licensing-api/Dockerfile
COPY pnpm-lock.yaml pnpm-workspace.yaml ./
COPY packages/portal-kit/package.json ./packages/

# resolved by DockBoard:
docker build -f apps/licensing-api/Dockerfile .
Dockerfile path
empty = <subfolder>/Dockerfile
Build context
empty = repo root for a workspace

A sub-app containing a prisma/schema.prisma gets its database provisioned at deploy time, and a fresh DATABASE_URL overrides the pre-filled localhost.

07 — VOLUMES & MIGRATION

Move a project from VPS to VPS.

One button on the server card. Source volumes stay intact on the old server, in every case.

  1. 01
    Apps and databases torn down on the source, volumes kept.
  2. 02
    The project's server switches to the target.
  3. 03
    Asynchronous transfer of Docker volumes.
  4. 04
    Redeployment once the data has landed.
  5. 05
    Caddy regenerated: domains follow.
PERSISTENT VOLUMES
uploads
/app/uploads
pgdata
/var/lib/postgresql

Named volumes only: any host path is rejected for safety.

BACKUPS
  • Automatic discovery of platform volumes
  • Daily or hourly schedule depending on plan
  • Restore onto a different server
  • Optional S3-compatible offsite retention
08 — ROLES

Four roles, explicit permissions.

Permissions granted by each project role.
ROLEDEPLOYMEMBERSMIGRATEDELETE
OWNERallowedallowedallowedallowed
ADMINallowedallowedallowednot allowed
DEVELOPERallowednot allowednot allowednot allowed
VIEWERnot allowednot allowednot allowednot allowed
09 — PRICING

Free to start, per server after that.

Billing follows your servers, not your deployments. Change plan or stop whenever you want, no commitment.

−20% yearly
OPTIONAL ADD-ONS
Mail server+€5/domain
Postfix and Dovecot, DNS health, managed DKIM.
Offsite backup+€0.02/GB
Replication to your S3-compatible bucket.
Reverse DNS / PTRincluded
Guided setup with your VPS provider.
24/7 on-call+€99/mo
Phone escalation, 1-hour response target.
Prices exclude VAT. The VPS stays with your provider: you only pay for the platform.· Prices shown for reference — you are always billed in EUR.
10 — FAQ

Questions that come up.

SSL is stuck on PENDING.

DNS not propagated yet, an A record pointing at the wrong IP, or ports 80/443 closed on the VPS. Re-run Verify in the Records tab.

The app is RUNNING but the URL doesn't answer.

Domain not attached, reverse proxy out of sync (Sync button), or a container port different from what Caddy expects.

Can two projects talk internally?

No: the network is scoped to the project. Use the public HTTPS URL, or group the services in a single project.

Can I split one project across several VPS?

Not today: a project lives on one Docker host. Split it into two projects and expose services over HTTPS through Caddy.

What happens to an app if I switch back to Local?

It keeps running on the remote server, simply hidden from the dashboard until you switch back.

Do I need my own compose file?

No, but if your app ships one it wins: the platform injects nothing into it and respects your volumes.

Your VPS is ready. The rest is one command.

Create a project, add an app, attach a domain. DockBoard handles the network, databases, SSL and backups.

DockBoard — Your whole Docker infrastructure, one screen