docs(runbook): the .env template no longer implies edits that compose overrides
The template said `EXPORT_PATH=/exports # NOT pinned by compose`, which has been false for as long as the pin has existed — and it sits three lines under MEDIA_PATH, which is correctly described as pinned, so the contrast reads as deliberate. An operator moving exports to a separate volume (the remedy §13 now recommends for a full disk) would edit `.env`, see nothing change, and have no reason to suspect the compose file. All four pinned vars are now listed together with what the pin means: change it there, not here. DATABASE_MAX_CONNECTIONS carries the extra note that its value is boot-fatal when unparseable, which is why it is pinned at all.
This commit is contained in:
@@ -189,14 +189,22 @@ DATABASE_URL=postgres://eventsnap:<SAME PASSWORD>@db:5432/eventsnap
|
|||||||
ADMIN_PASSWORD_HASH='<docker run --rm caddy:2-alpine caddy hash-password --plaintext "pw">'
|
ADMIN_PASSWORD_HASH='<docker run --rm caddy:2-alpine caddy hash-password --plaintext "pw">'
|
||||||
|
|
||||||
# ── Paths — must match the volume mounts ──────────────────────────────────
|
# ── Paths — must match the volume mounts ──────────────────────────────────
|
||||||
MEDIA_PATH=/media # pinned by compose anyway, but keep consistent
|
# All four of these are PINNED in docker-compose.yml under `app.environment`, which overrides
|
||||||
EXPORT_PATH=/exports # NOT pinned by compose — see the trap in §7.3
|
# `env_file`. Keep them consistent here for readability, but understand that editing them in
|
||||||
|
# `.env` changes nothing — the pin is what the container gets. Change the pin.
|
||||||
|
MEDIA_PATH=/media
|
||||||
|
EXPORT_PATH=/exports
|
||||||
|
APP_PORT=3000
|
||||||
|
|
||||||
# ── Sizing (see the two corrections below) ────────────────────────────────
|
# ── Sizing (see the two corrections below) ────────────────────────────────
|
||||||
# 15, matching .env.example, the `db` sizing comment in docker-compose.yml and the code
|
# 15, matching .env.example, the `db` sizing comment in docker-compose.yml and the code
|
||||||
# default. An earlier draft of this runbook said 30: that does not fit the 1G memory limit
|
# default. An earlier draft of this runbook said 30: that does not fit the 1G memory limit
|
||||||
# compose allots `db`, and 30 simultaneous queries cannot run on 2 vCPU anyway — they queue
|
# compose allots `db`, and 30 simultaneous queries cannot run on 2 vCPU anyway — they queue
|
||||||
# on the CPU instead of on the pool. Raise it only alongside more cores AND a bigger limit.
|
# on the CPU instead of on the pool. Raise it only alongside more cores AND a bigger limit.
|
||||||
|
#
|
||||||
|
# ALSO PINNED IN COMPOSE (see above), and pinned for a sharper reason than the paths: an
|
||||||
|
# unparseable value here is boot-FATAL rather than falling back to the default, so a stray
|
||||||
|
# quote or a trailing inline comment in `.env` would crash-loop the app behind a live Caddy.
|
||||||
DATABASE_MAX_CONNECTIONS=15
|
DATABASE_MAX_CONNECTIONS=15
|
||||||
COMPRESSION_WORKER_CONCURRENCY=2
|
COMPRESSION_WORKER_CONCURRENCY=2
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user