This guide uses Docker Compose to run Beszel hub and agent.
For Docker installation, see Docker.
mkdir -p /opt/beszel/{hub,data}
cd /opt/beszel
Create docker-compose.yml:
services:
beszel-hub:
image: henrygd/beszel:0.18.2
container_name: beszel-hub
ports:
- "8090:8090"
volumes:
- ./data:/beszel_data
restart: unless-stopped
networks:
- beszel
# Optional: Agent for monitoring this host
beszel-agent:
image: henrygd/beszel-agent:0.18.2
container_name: beszel-agent
privileged: true
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/log:/var/log:ro
environment:
- HUB_URL=ws://beszel-hub:8090
- SYSTEM_NAME=docker-host
depends_on:
- beszel-hub
restart: unless-stopped
networks:
- beszel
networks:
beszel:
driver: bridge
docker compose up -d
Check container status:
docker compose ps
View logs:
docker compose logs -f beszel-hub
Access web UI at http://SERVER_IP:8090
docker compose logs -f beszel-hub
docker compose restart
docker compose down
docker compose pull
docker compose up -d
./data volume preserves hub data./data directoryFor remote hosts, deploy only the agent:
services:
beszel-agent:
image: henrygd/beszel-agent:0.18.2
container_name: beszel-agent
privileged: true
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- /:/rootfs:ro
- /var/run:/var/run:ro
- /sys:/sys:ro
- /var/log:/var/log:ro
environment:
- HUB_URL=wss://your-hub-domain:8090
- SYSTEM_NAME=remote-server
restart: unless-stopped
Running containers in production? We help with:
Need help? office@linux-server-admin.com or Contact Us