Arcane is an open‑source, modern web‑based Docker management interface designed to make managing Docker containers and Docker Compose stacks easy, intuitive, and powerful for developers, system admins, and home‑lab enthusiasts. It’s similar in purpose to tools like Portainer or Dockge but with a fresh UI, strong Compose support, and active community development.
Arcane provides a browser interface where you can view and manage your Docker resources—containers, images, volumes, networks, and projects—all in one place.
🧱 Docker Compose FirstGreat support for docker-compose.yml files and Compose stacks, making it ideal for users who run multi‑container applications.
📊 Real‑Time Stats & LogsYou can inspect container logs and resource usage (CPU, memory) directly from the dashboard.
🔐 Authentication & Multi‑EnvironmentSupports modern authentication options like OIDC and can manage multiple Docker hosts through an agent pairing system.
🔁 Self‑Upgrade & CLIIncludes CLI commands (like arcane upgrade) for automating upgrades and maintenance.
🧩 Remote ManagementWith a headless agent image (ghcr.io/getarcaneapp/arcane-headless), you can connect remote environments to a central Arcane instance.
sudo apt update && sudo apt upgrade -ycurl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
sudo apt install docker-compose-pluginsudo usermod -aG docker $USERsudo systemctl enable dockersudo rebootdocker run hello-worldGo to Arcane's website and create an account. Then setup your docker directories.
mkdir ~/docker mkdir ~/docker/arcane
In ~/docker/arcane create docker-compose.yml
services:
arcane:
image: ghcr.io/getarcaneapp/arcane:latest
container_name: arcane
restart: unless-stopped
ports:
- 3552:3552
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- arcane-data:/app/data
environment:
- APP_URL=http://192.168.xx.xx:3552 # The IP address of this host
- PUID=1000
- PGID=1000
- ENCRYPTION_KEY= # run "openssl rand -hex 32" and use the output here
- JWT_SECRET= # run "openssl rand -hex 32" and use the output here
- LOG_LEVEL=info
- LOG_JSON=false
- OIDC_ENABLED=false
- DATABASE_URL=file:data/arcane.db?_pragma=journal_mode(WAL)&_pragma=busy_timeout(2500)&_txlock=immediate
- ARCANE_ADMIN_EMAIL=<your email address>
- ARCANE_ADMIN_PASSWORD=<whatever you want>
- DOCKER_PRUNE_MODE=all
volumes:
arcane-data:
driver: local
From within ~/docker/arcane run:
docker compose up -d
To add a client device, on that device in the docker directory, add a directory for "arcane" and create this docker-compose.yml file:
services:
arcane-agent:
image: ghcr.io/getarcaneapp/arcane-headless:latest
container_name: arcane-agent
restart: unless-stopped
environment:
- AGENT_MODE=true
- AGENT_TOKEN=<from the arcane GUI>
ports:
- "3553:3553"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- arcane-data:/app/data
volumes:
arcane-data:
To get the AGENT_TOKEN browse to http://192.168.xx.xx:3552, click on Environments, and then Add Environment. Give it a name. For Agent Address use the hosts IP Addesss and add ":3553" at the end. Click on Generate Agent Configuration and use the API Key it gives you as your AGENT_TOKEN in your docker compose file. Arcane will give you a compose file; it should match what I have here. Use whichever one you want.
docker compose up -d. In the Arcane gui, when you click on Environments you should now see your server and the new agent listed. You can click on the three dots next to the entry for your agent and select Use Environment.
To view the logs, you can run docker logs arcane on the client or server.
Go to http://192.168.xx.xx:3552 and log in with the email address and password you set above.
If you find my content useful, please consider supporting this page: