Migrate from plain Docker Compose
If you’re running stacks with bare docker compose up commands today, switching to dockmesh takes about 5 minutes — and your compose files stay exactly the same.
The big idea
Section titled “The big idea”dockmesh treats the filesystem as the source of truth. Your existing directory of Compose projects is the dockmesh stack library. You don’t convert anything, you don’t move files around, you just point dockmesh at them.
Step 1 — Install dockmesh
Section titled “Step 1 — Install dockmesh”On the host running your compose stacks:
curl -fsSL https://get.dockmesh.dev | bashThis installs the binary to /usr/local/bin/dockmesh, sets up a systemd service, and starts it on port 8080.
Step 2 — Point dockmesh at your compose directory
Section titled “Step 2 — Point dockmesh at your compose directory”By default dockmesh stores stacks under ./stacks/. If you already have compose projects somewhere else — say /srv/docker/ — configure dockmesh to use that path.
Edit /etc/systemd/system/dockmesh.service:
[Service]Environment="DOCKMESH_STACKS_ROOT=/srv/docker"Then:
systemctl daemon-reloadsystemctl restart dockmeshdockmesh expects the structure <root>/<host>/<stack-name>/compose.yaml. If your layout is simpler (e.g. /srv/docker/<stack-name>/compose.yaml without a host directory), create a local symlink:
mkdir -p /srv/docker/localcd /srv/docker/localfor dir in ../*/; do [ "$dir" != "./" ] && [ "$dir" != "../local/" ] && ln -s "$dir" .donedockmesh now sees all your stacks under the local host.
Step 3 — Import running containers
Section titled “Step 3 — Import running containers”Open http://your-server:8080. The dashboard shows every container on the host — including stacks you started before dockmesh was installed. dockmesh discovers running containers via the Docker labels Compose sets (com.docker.compose.project).
Already-running stacks show up automatically. You don’t need to restart anything.
Step 4 — Optional: Import docker run containers
Section titled “Step 4 — Optional: Import docker run containers”Any containers started with plain docker run (not Compose) can be converted to stacks:
- Stacks → New stack → Import from docker run
- Paste your command
- dockmesh generates the compose.yaml
Once converted, you manage them like any other stack.
Step 5 — You’re done
Section titled “Step 5 — You’re done”From now on:
docker compose upon the command line still works- dockmesh sees the same containers
- You can deploy, stop, and edit via either interface
If you want to go full-UI, stop using docker compose CLI and let dockmesh handle it. If you want hybrid, do whatever feels natural — both approaches coexist.
What you gain
Section titled “What you gain”Same compose files, but now:
- Web UI for logs, stats, exec
- Multi-host — add remote Docker hosts with one command
- RBAC + SSO — if multiple people need access
- Backups — scheduled volume backups to NAS/SFTP/S3
- Alerts — get paged on container failures
What you don’t lose
Section titled “What you don’t lose”docker-compose.ymlfiles stay where they are- You can still run
docker composecommands manually - dockmesh doesn’t require any vendor lock-in files or databases for your stack configs
- Uninstalling dockmesh removes nothing — your stacks keep running
See also
Section titled “See also”- Installation — install options (systemd, Docker, manual)
- Quick Start — deploy your first dockmesh-managed stack
- Configuration — all environment variables