The interface was translated in en/it/es/fr via @nuxtjs/i18n. Drop the module, the locale files, and the language switcher: the UI is now static Italian text, with translation for foreign visitors left to the Google Translate browser extension instead of the app.
82 lines
2.0 KiB
YAML
82 lines
2.0 KiB
YAML
services:
|
|
database:
|
|
image: postgres:17-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: ${POSTGRES_DB}
|
|
POSTGRES_USER: ${POSTGRES_USER}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
volumes:
|
|
- postgres-data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
cms:
|
|
build: ./cms
|
|
restart: unless-stopped
|
|
depends_on:
|
|
database:
|
|
condition: service_healthy
|
|
environment:
|
|
NODE_ENV: production
|
|
HOST: 0.0.0.0
|
|
PORT: 1337
|
|
DATABASE_CLIENT: postgres
|
|
DATABASE_HOST: database
|
|
DATABASE_PORT: 5432
|
|
DATABASE_NAME: ${POSTGRES_DB}
|
|
DATABASE_USERNAME: ${POSTGRES_USER}
|
|
DATABASE_PASSWORD: ${POSTGRES_PASSWORD}
|
|
APP_KEYS: ${APP_KEYS}
|
|
API_TOKEN_SALT: ${API_TOKEN_SALT}
|
|
ADMIN_JWT_SECRET: ${ADMIN_JWT_SECRET}
|
|
TRANSFER_TOKEN_SALT: ${TRANSFER_TOKEN_SALT}
|
|
JWT_SECRET: ${JWT_SECRET}
|
|
ENCRYPTION_KEY: ${ENCRYPTION_KEY}
|
|
volumes:
|
|
- cms-uploads:/app/public/uploads
|
|
|
|
frontend:
|
|
build: ./frontend
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- cms
|
|
environment:
|
|
NODE_ENV: production
|
|
HOST: 0.0.0.0
|
|
PORT: 3000
|
|
NUXT_STRAPI_URL: ${STRAPI_URL}
|
|
NUXT_PUBLIC_SITE_URL: ${PUBLIC_SITE_URL}
|
|
NUXT_PUBLIC_STRAPI_URL: ${PUBLIC_STRAPI_URL}
|
|
|
|
caddy:
|
|
image: caddy:2-alpine
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- frontend
|
|
- cms
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
# Host uses systemd-resolved (127.0.0.53), unreachable from inside the
|
|
# container network namespace; ACME lookups need a real resolver.
|
|
dns:
|
|
- 1.1.1.1
|
|
- 8.8.8.8
|
|
environment:
|
|
PUBLIC_DOMAIN: ${PUBLIC_DOMAIN}
|
|
ACME_EMAIL: ${ACME_EMAIL}
|
|
volumes:
|
|
- ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
|
|
- caddy-data:/data
|
|
- caddy-config:/config
|
|
|
|
volumes:
|
|
postgres-data:
|
|
cms-uploads:
|
|
caddy-data:
|
|
caddy-config:
|