61 lines
1.8 KiB
YAML
61 lines
1.8 KiB
YAML
# Production configuration.
|
|
#
|
|
# Loaded when LOCO_ENV=production (set in the Dockerfile). This file is
|
|
# committed and contains NO secrets — the JWT secret and admin credentials
|
|
# come from environment variables (see .env.production.example / DEPLOY.md).
|
|
|
|
logger:
|
|
enable: true
|
|
pretty_backtrace: false
|
|
level: info
|
|
format: compact
|
|
|
|
server:
|
|
port: 5150
|
|
# Bind on all interfaces so the Caddy container can reach the app over the
|
|
# shared Docker network. Do NOT use `localhost` here — it would be
|
|
# unreachable from outside this container.
|
|
binding: 0.0.0.0
|
|
# Public URL of the site (used by mailers for absolute links).
|
|
host: https://tenisrajec.sk
|
|
middlewares:
|
|
static:
|
|
enable: true
|
|
must_exist: true
|
|
precompressed: false
|
|
folder:
|
|
uri: "/static"
|
|
path: "assets/static"
|
|
fallback: "assets/static/404.html"
|
|
|
|
# In-process async workers — no Redis required.
|
|
workers:
|
|
mode: BackgroundAsync
|
|
|
|
# The site has no SMTP server and admin login is password-based, so no mail is
|
|
# ever sent. `stub` guarantees a stray mail call can never block on a network.
|
|
mailer:
|
|
stub: true
|
|
|
|
database:
|
|
# SQLite file on the mounted Docker volume (see docker-compose.prod.yml),
|
|
# so the data survives rebuilds and restarts.
|
|
uri: {{ get_env(name="DATABASE_URL", default="sqlite://data/production.sqlite?mode=rwc") }}
|
|
enable_logging: false
|
|
connect_timeout: 500
|
|
idle_timeout: 500
|
|
min_connections: 1
|
|
max_connections: 1
|
|
# Create the DB and run migrations automatically on first boot.
|
|
auto_migrate: true
|
|
# Never wipe data in production.
|
|
dangerously_truncate: false
|
|
dangerously_recreate: false
|
|
|
|
auth:
|
|
jwt:
|
|
# REQUIRED. Generate once with `openssl rand -hex 32` and set JWT_SECRET in
|
|
# .env.production. The app will not start without it.
|
|
secret: {{ get_env(name="JWT_SECRET") }}
|
|
expiration: 604800 # 7 days
|