Production traffic enters through Caddy, which terminates TLS for the public domain and the CMS subdomain and sets HSTS and the other security headers. PostgreSQL, Strapi and Nuxt publish no ports of their own. docker-compose.dev.yml publishes the ports on localhost and drops Caddy for local testing. It is a separate file rather than an override.yml so it can only be applied when passed explicitly, never by accident in production.
29 lines
835 B
Bash
29 lines
835 B
Bash
# Copy to .env and replace every placeholder. Never commit .env.
|
|
|
|
# --- Domains (Caddy) ---
|
|
PUBLIC_DOMAIN=blog.localhost
|
|
CMS_DOMAIN=cms.blog.localhost
|
|
ACME_EMAIL=admin@example.com
|
|
|
|
# --- Database ---
|
|
POSTGRES_DB=blog
|
|
POSTGRES_USER=blog
|
|
POSTGRES_PASSWORD=change-me
|
|
|
|
# --- Strapi ---
|
|
# Generate each secret with: openssl rand -base64 32
|
|
APP_KEYS=change-me-1,change-me-2
|
|
API_TOKEN_SALT=change-me
|
|
ADMIN_JWT_SECRET=change-me
|
|
TRANSFER_TOKEN_SALT=change-me
|
|
JWT_SECRET=change-me
|
|
ENCRYPTION_KEY=change-me
|
|
|
|
# --- Frontend ---
|
|
# Server-side only: internal Docker address of Strapi.
|
|
STRAPI_URL=http://cms:1337
|
|
# Public base URL of the website, used for canonical URLs and Open Graph.
|
|
PUBLIC_SITE_URL=https://blog.localhost
|
|
# Public base URL of Strapi, used to build absolute media URLs in the browser.
|
|
PUBLIC_STRAPI_URL=https://cms.blog.localhost
|