Production
Production
Deploy ZIRI using Docker Compose.
Basic Setup
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
restart: unless-stopped
volumes:
ziri-data:Start:
docker compose up -dExposing to Users
Once ZIRI is running, share the URL:
- Local:
http://your-server-ip:3100 - With domain:
https://ziri.yourdomain.com(via reverse proxy)
Environment Variables
environment:
- CONFIG_DIR=/data
- PORT=3100
- HOST=0.0.0.0
- ZIRI_ROOT_KEY=${ROOT_KEY}
- ZIRI_ENCRYPTION_KEY=${ENCRYPTION_KEY}Use a .env file for secrets:
.env
# .env
ROOT_KEY=your-root-key
ENCRYPTION_KEY=your-encryption-keyData Persistence
Data lives in the Docker volume ziri-data:
- Configuration
- Database
- User data
- Policies
- Audit logs
The volume persists across restarts and updates.
Backup
docker run --rm -v ziri-data:/data -v $(pwd):/backup \
alpine tar czf /backup/ziri-backup.tar.gz /dataRestore:
docker run --rm -v ziri-data:/data -v $(pwd):/backup \
alpine tar xzf /backup/ziri-backup.tar.gz -C /Updates
docker compose pull
docker compose up -dMonitoring
curl http://localhost:3100/health
docker compose logs -f