1
0
Fork 0
mirror of https://github.com/retspen/webvirtcloud synced 2026-11-08 11:16:47 +00:00
webvirtcloud/docker-compose.yml
catborise 482f5bc16d fix(backup): TLS client certificates persist in Docker and are backed up
libvirt reads a TLS compute's client certificate from the panel user's
~/.pki/libvirt. In Docker that was /var/www/.pki inside the container,
so `docker compose up -d --build` dropped it and every TLS compute
stopped connecting; no backup held it on either install type, although
"Moving to a new machine" says the backup carries what the computes
accept, and the README never said where the certificates go.

Docker keeps /var/www/.pki in a webvirtcloud-pki volume, owned by
www-data and private like ~/.ssh; the backup copies ~/.pki into pki/;
the moving steps put it back; and "Adding a Compute Node" says where the
files go.
2026-11-06 09:12:34 +03:00

53 lines
2 KiB
YAML

services:
webvirtcloud:
build:
context: .
dockerfile: Dockerfile
image: webvirtcloud:latest
container_name: webvirtcloud
restart: unless-stopped
# above my_init's 80 s, which is above the worker's 60 s drain
stop_grace_period: 95s
# every request is a line of gunicorn's access log: kept to 5 files of 10 MB, as the panel's own log
logging:
driver: json-file
options:
max-size: 10m
max-file: "5"
ports:
- "80:80"
environment:
# Optional: custom Django secret key. If unset, automatically generated at first launch.
# - SECRET_KEY=your-custom-secret-key-here
# Optional: comma-separated trusted CSRF origins (e.g. http://wvc.example.com,https://wvc.example.com)
# - CSRF_TRUSTED_ORIGINS=http://localhost,http://127.0.0.1
# Optional: PostgreSQL instead of the bundled sqlite (also WEBVIRTCLOUD_DB_PORT/_NAME/_USER)
# - WEBVIRTCLOUD_DB_HOST=db.example.com
# - WEBVIRTCLOUD_DB_PASSWORD=change-me
# Optional: SMTP for e-mail OTP (also EMAIL_PORT, EMAIL_USE_TLS=0/1)
# - EMAIL_HOST=smtp.example.com
# - EMAIL_HOST_USER=webvirtcloud@example.com
# - EMAIL_HOST_PASSWORD=change-me
# Host names/IPs the panel is reached by (comma-separated; "*" accepts any).
# Without it only localhost works. Set it in docker-compose.override.yml.
- ALLOWED_HOSTS=localhost
- TZ=UTC
volumes:
# Persistent SQLite database and runtime data
- webvirtcloud-data:/srv/webvirtcloud/data
# Persistent SSH keys for compute node authentication
- webvirtcloud-ssh:/var/www/.ssh
# Persistent TLS client certificates for TLS computes (.pki/libvirt)
- webvirtcloud-pki:/var/www/.pki
# Daily backups of both (manage.py backup)
- webvirtcloud-backups:/srv/webvirtcloud/backups
volumes:
webvirtcloud-data:
driver: local
webvirtcloud-ssh:
driver: local
webvirtcloud-pki:
driver: local
webvirtcloud-backups:
driver: local