Beta Nodvard Dock
The Portainer alternative for your homelab
Nodvard Dock manages containers and Compose stacks on your servers. You bring your stacks over from Portainer with a button, and the volumes with your data stay where they are. You host Dock yourself, and it costs nothing for personal use.
Good to know: the web interface of Nodvard Deck and Nodvard Dock is German only for now. An English interface is planned. This website and the guides are in English.
Why now
In September 2026, Portainer announced that Portainer 3.0 ships without a Community Edition. CE stays on version 2.x and keeps getting security updates and bug fixes there, with only some 3.0 features backported (Portainer blog). If that has you looking for something new, you can take your stacks along to Nodvard Dock.

Move over with a button
In the Stacks tab, every stack created by Portainer has a button to move it over. Dock grabs the Compose file and variables from Portainer’s storage, puts them in a folder of their own and starts the stack there again under the same name. The volumes with your data stay.
When something doesn’t fit, for example because the stored file lists other images than the running containers, Dock leaves the stack alone and tells you why.
What Dock does
- Containers of all servers on one page: status, start, stop, restart, delete stopped containers, console and details.
- Logs with a time range, search and download.
- Stacks: edit them as text or in a form. Before saving, Docker Compose checks the file on the server, and recent versions stay in the history. You create new stacks in a folder on each server, also from templates for Uptime Kuma, Vaultwarden, Nginx Proxy Manager and Gitea.
- Updates with a way back (rollback): the old image stays as a backup. If the new container does not start, it goes back on its own, except for databases. Whole stacks also get a “back to the previous version” button after an update.
- Stacks from Git: pull a state from a Git repository, see first what changes, and go back with “back to the state before”. New in 0.13: if you like, Dock checks the repository for a new state on a schedule and sends you a message. Applying it still takes a click.
- Volume backups: before an update, Dock backs up the volumes if you like and checks that there is enough space. You restore them in the Stacks tab.
- Private registries such as ghcr.io go into the settings, and the password or token is stored in the vault.
- Networks (new in 0.13): create networks, internal only if you like, and connect or disconnect containers. The confirmation warns you if a container would be left without a network.
- Pull an image (new in 0.13): download an image by name and tag, private ones with the login under Registries. If it fails, you see why.
- Your own templates (new in 0.13): save a Compose file as a template for new stacks. Environment values never go along, and Dock refuses fixed passwords or tokens when saving, as far as it can spot them.
- Images, volumes and networks: list and clean them up, and sort containers by state, name, CPU or RAM.
- On your phone (new in 0.13): stacks, images, volumes and networks show up as cards instead of cut-off tables.
- Approval and log: before Dock changes anything, it asks. As the owner, you decide which actions may go through without asking, and the log shows everything afterwards.
Several servers, no agent
Dock talks to your Docker servers over SSH. You don’t have to install an agent there. Don’t want to give the account full Docker rights? Use the “operate only” mode. With it, Dock may only call one fixed helper script via sudo, and that script checks every call itself.
Dock, Portainer CE and Dockge compared
All three manage containers with Compose. What differs is mostly how more servers are added and where the Compose files live.
| Nodvard Dock | Portainer CE | Dockge | |
|---|---|---|---|
| Further servers | over SSH, no agent | Portainer Agent or Edge Agent on each server | Dockge agent on each further server |
| Compose files | in a folder on the server (default /opt/stacks) | in Portainer’s data storage | in a folder on the server (default /opt/stacks) |
| Swarm and Kubernetes | no | yes | no |
| Moving from Portainer | one button per stack | not applicable | move the file into the folder by hand |
| License | PolyForm Noncommercial (source-available, free for personal use) | zlib | MIT |
As of October 2026, based on the documentation of Portainer and Dockge. If you need Swarm or Kubernetes, Portainer is the better fit.
What Dock does not do
Dock is meant for Docker and Docker Compose on individual servers. It can’t do Swarm or Kubernetes. And Dock is still in beta, so let us know if something’s off. Discord is the quickest way: discord.gg/gTTs7qMabt.
Installed with three commands
You need a machine with Docker and Docker Compose, for example a Raspberry Pi 4 or 5 with a 64-bit system or an x86-64 machine.
mkdir ~/nodvard-dock && cd ~/nodvard-dock
curl -fsSL -o compose.yml https://raw.githubusercontent.com/nodvard/dock/main/compose.yml
docker compose up -d
What is in compose.yml?
One container, one port, one volume for the data. No Docker socket, no special privileges. The complete file is on GitHub.
name: nodvard-dock
services:
nodvard-dock:
image: ghcr.io/nodvard/dock:latest
restart: unless-stopped
ports:
- "${NODVARD_DOCK_PORT:-8080}:8080"
volumes:
- nodvard_dock_data:/app/data
# Optional: a folder for backups, for example on a NAS
# - ./sicherungen:/backups
healthcheck: …
volumes:
nodvard_dock_data:
name: nodvard-dock-data
Then open http://<your-server>:8080. docker compose logs nodvard-dock shows the setup code. If the port is taken, put a file .env next to compose.yml with NODVARD_DOCK_PORT=8081.
Updating: in the same folder, run docker compose pull && docker compose up -d. Your data is kept. Everything else is in the nodvard/dock repository.
Dock or Deck?
Nodvard Dock is just the container manager, as its own small image. Nodvard Deck has the same Docker part and adds Proxmox, backups, Shield, apps and notifications on top. The code is the same, there’s just more or less of it inside. More in the FAQ.
Portainer is a trademark of its owner. Nodvard is not affiliated with it.