Docker Compose
Docker Compose
Use Docker Compose to manage ZIRI with a single command.
docker-compose.yml
Create a docker-compose.yml file:
docker-compose.yml
services:
proxy:
image: ziri/proxy:latest
ports:
- "3100:3100"
volumes:
- ziri-data:/data
environment:
- CONFIG_DIR=/data
- PORT=3100
- HOST=0.0.0.0
- NODE_ENV=production
restart: unless-stopped
volumes:
ziri-data:Starting
Start ZIRI:
docker compose up -dThe -d flag runs in detached mode (background).
Stopping
Stop ZIRI:
docker compose downThis stops and removes the container but keeps the volume.
Viewing Logs
View logs:
docker compose logsFollow logs:
docker compose logs -fUpdating
To update to a new version:
docker compose pull
docker compose up -dVolume Management
List Volumes
docker volume lsInspect Volume
docker volume inspect ziri-dataBackup Volume
docker run --rm -v ziri-data:/data -v $(pwd):/backup \
alpine tar czf /backup/ziri-backup.tar.gz /dataRestore Volume
docker run --rm -v ziri-data:/data -v $(pwd):/backup \
alpine tar xzf /backup/ziri-backup.tar.gz -C /Remove Volume
Warning: This deletes all data.
docker compose down -vEnvironment Variables
Set environment variables in docker-compose.yml:
docker-compose.yml
environment:
- CONFIG_DIR=/data
- PORT=3100
- HOST=0.0.0.0
- ZIRI_ROOT_KEY=${ROOT_KEY}
- ZIRI_ENCRYPTION_KEY=${ENCRYPTION_KEY}
- NODE_ENV=productionOr use an .env file:
.env
# .env
ROOT_KEY=your-root-key
ENCRYPTION_KEY=your-encryption-keyDocker Compose automatically loads .env files.
Restart Policy
The restart: unless-stopped policy means:
- Container restarts automatically if it crashes
- Container restarts on Docker daemon restart
- Container doesn’t restart if you stop it manually
Health Checks
Add a health check:
docker-compose.yml
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3100/health"]
interval: 30s
timeout: 10s
retries: 3Next Steps
- Production Deployment - Production setup
- Configuration - Configure ZIRI