Docker & Self-Hosting
Running Zenso on your local infrastructure takes less than two minutes using Docker Compose.
Standard docker-compose.yml
Section titled “Standard docker-compose.yml”Create a directory for Zenso and save the following configuration file:
services: postgres: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_DB: zenso POSTGRES_USER: zenso POSTGRES_PASSWORD: ${DB_PASSWORD:-changeme_secure_password} volumes: - postgres_data:/var/lib/postgresql/data
zenso-api: image: ghcr.io/zensoink/zenso-api:latest restart: unless-stopped ports: - "3000:3000" environment: PORT: 3000 DATABASE_URL: postgresql://zenso:${DB_PASSWORD:-changeme_secure_password}@postgres:5432/zenso FRONTEND_URL: http://${HOST_IP:-localhost}:8080 ZENSO_ALLOW_PRIVATE_NETWORKS: "true" depends_on: - postgres
zenso-panel: image: ghcr.io/zensoink/zenso-panel:latest restart: unless-stopped ports: - "8080:80" depends_on: - zenso-api
volumes: postgres_data:Launching the Stack
Section titled “Launching the Stack”Run the container stack in detached mode:
docker compose up -dVerify that all containers are healthy by checking docker compose ps.
Data Persistence & Backups
Section titled “Data Persistence & Backups”All user settings, screens, layouts, and widget configurations are securely stored inside the named Docker volume postgres_data. Regular volume backups guarantee simple migration between servers.