OTP releases evaluate config at build time, not boot time.
DATABASE_URL must be read at runtime — the kohen sets it in
K8s secrets, not at compile time.
- Created config/runtime.exs with prod-only runtime config
- DATABASE_URL, L1_MOUNT_POINT, MANNA_PROVISION_FILE, HTTP_PORT
all readable from environment at boot
- prod.exs cleaned: removed System.get_env("DATABASE_URL") call
(was compile-time, now in runtime.exs)
- Added http_port: 4000 to prod defaults
Without this fix, the Docker image would fail to start — the
release would not find DATABASE_URL at boot.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
19 lines
555 B
Elixir
19 lines
555 B
Elixir
import Config
|
|
|
|
config :logger, level: :info
|
|
|
|
# Production defaults — Construction spec §4.4
|
|
# Env-var overrides are in runtime.exs (evaluated at boot, not compile)
|
|
config :vav_pipeline,
|
|
l1_mount_point: "/mnt/torah",
|
|
manna_provision_file: "/var/lib/shorashim/manna/today.json",
|
|
cycle_boundary_check_interval_ms: 60_000,
|
|
shema_context_cache_ttl_ms: 0,
|
|
http_port: 4000
|
|
|
|
# L3 — Production PostgreSQL
|
|
# DATABASE_URL is set at runtime via runtime.exs
|
|
# These are compile-time defaults only
|
|
config :vav_pipeline, VavPipeline.Repo,
|
|
pool_size: 20
|