Fix deploy runbook against a real, already-crowded target host
Addresses a review of deploy/cloud_agent_deploy.md against Cloud-VM-1 (a shared Hetzner VPS already running ~10 other services, including the Forgejo instance this repo is hosted on): - Blocking: git.cygnus.systems' git-SSH listens on port 2222, not 22 - fixed the SSH config example and clone fallback, with a note not to assume 22 if it changes again. - High: container port now binds via configurable DAYBOOK_BIND_ADDR (defaults to all interfaces, set to 127.0.0.1 when a reverse proxy fronts it) instead of always publishing to 0.0.0.0; reverse-proxy+TLS is now the only path presented for internet-facing hosts, not a coequal option with direct exposure. - High: replaced the Caddy-only hardening example with an Apache vhost + certbot path (matching how this specific host already terminates TLS for everything else on it), plus a check-before-assuming-80/443-are-free step. - High: added mem_limit/mem_reservation to docker-compose.yml so this doesn't risk OOM-killing other services on a memory-tight box. - Medium: added configurable DAYBOOK_HOST_DATA_DIR so persistent data can land on a separate/larger volume instead of a space-constrained main disk. - Medium/Low: checklist now prompts checking the target's own service-inventory/monitoring/changelog conventions, and .env guidance notes it should stay low-stakes since a deploy agent reads/writes it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
d84753c839
commit
441d000d33
3 changed files with 92 additions and 20 deletions
|
|
@ -4,3 +4,13 @@ DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1,your-vm-ip,your-domain.example
|
|||
DAYBOOK_DATA_DIR=/data
|
||||
DATABASE_PATH=/data/db.sqlite3
|
||||
ARTIFACTS_ROOT=/data/artifacts_store
|
||||
|
||||
# Optional, read by deploy/docker-compose.yml directly (not by the app):
|
||||
# DAYBOOK_BIND_ADDR=127.0.0.1
|
||||
# Uncomment and set to 127.0.0.1 when a reverse proxy on the same host will
|
||||
# front this service — this stops the container port from being reachable
|
||||
# directly from the network. Leave unset (binds all interfaces) only for
|
||||
# private/VPN-only deployments with no proxy in front.
|
||||
# DAYBOOK_HOST_DATA_DIR=/mnt/some-larger-volume/daybook-data
|
||||
# Uncomment and point at a path on a separate/larger volume if the host's
|
||||
# main disk is space-constrained. Defaults to ./data next to this file.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue