104 lines
4.8 KiB
YAML
104 lines
4.8 KiB
YAML
name: sexy
|
|
|
|
services:
|
|
directus:
|
|
build:
|
|
context: ./
|
|
container_name: ${COMPOSE_PROJECT_NAME}_api
|
|
restart: unless-stopped
|
|
networks:
|
|
- kompose_network
|
|
volumes:
|
|
- ./uploads:/directus/uploads
|
|
- ${DIRECTUS_BUNDLE}:/directus/extensions/sexy.pivoine.art
|
|
environment:
|
|
SECRET: ${DIRECTUS_SECRET}
|
|
DB_CLIENT: pg
|
|
DB_HOST: ${DB_HOST}
|
|
DB_PORT: ${DB_PORT}
|
|
DB_DATABASE: ${DB_NAME}
|
|
DB_USER: ${DB_USER}
|
|
DB_PASSWORD: ${DB_PASSWORD}
|
|
CACHE_ENABLED: ${CACHE_ENABLED}
|
|
CACHE_AUTO_PURGE: ${CACHE_AUTO_PURGE}
|
|
CACHE_STORE: redis
|
|
REDIS: redis://redis:6379
|
|
ADMIN_EMAIL: ${ADMIN_EMAIL}
|
|
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
|
|
WEBSOCKETS_ENABLED: ${WEBSOCKETS_ENABLED}
|
|
PUBLIC_URL: ${PUBLIC_URL}
|
|
CORS_ENABLED: ${CORS_ENABLED}
|
|
CORS_ORIGIN: ${CORS_ORIGIN}
|
|
SESSION_COOKIE_SECURE: ${SESSION_COOKIE_SECURE}
|
|
SESSION_COOKIE_SAME_SITE: ${SESSION_COOKIE_SAME_SITE}
|
|
SESSION_COOKIE_DOMAIN: ${SESSION_COOKIE_DOMAIN}
|
|
EXTENSIONS_PATH: ${EXTENSIONS_PATH}
|
|
EXTENSIONS_AUTO_RELOAD: ${EXTENSIONS_AUTO_RELOAD}
|
|
CONTENT_SECURITY_POLICY_DIRECTIVES__FRAME_SRC: ${CONTENT_SECURITY_POLICY_DIRECTIVES__FRAME_SRC}
|
|
EMAIL_TRANSPORT: ${EMAIL_TRANSPORT}
|
|
EMAIL_FROM: ${EMAIL_FROM}
|
|
EMAIL_SMTP_HOST: ${EMAIL_SMTP_HOST}
|
|
EMAIL_SMTP_PORT: ${EMAIL_SMTP_PORT}
|
|
EMAIL_SMTP_USER: ${EMAIL_SMTP_USER}
|
|
EMAIL_SMTP_PASSWORD: ${EMAIL_SMTP_PASSWORD}
|
|
USER_REGISTER_URL_ALLOW_LIST: ${USER_REGISTER_URL_ALLOW_LIST}
|
|
PASSWORD_RESET_URL_ALLOW_LIST: ${PASSWORD_RESET_URL_ALLOW_LIST}
|
|
# healthcheck:
|
|
# test: ["CMD", "wget", "--spider", "-q", "http://localhost:8055/server/health"]
|
|
# interval: 30s
|
|
# timeout: 5s
|
|
# retries: 3
|
|
# start_period: 60s
|
|
labels:
|
|
- 'traefik.enable=true'
|
|
- 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-api-redirect-web-secure.redirectscheme.scheme=https'
|
|
- 'traefik.http.routers.$COMPOSE_PROJECT_NAME-api-web.middlewares=$COMPOSE_PROJECT_NAME-api-redirect-web-secure'
|
|
- 'traefik.http.routers.$COMPOSE_PROJECT_NAME-api-web.rule=Host(`$TRAEFIK_HOST`) && PathPrefix(`/api`)'
|
|
- 'traefik.http.routers.$COMPOSE_PROJECT_NAME-api-web.entrypoints=web'
|
|
- 'traefik.http.routers.$COMPOSE_PROJECT_NAME-api-web-secure.rule=Host(`$TRAEFIK_HOST`) && PathPrefix(`/api`)'
|
|
- 'traefik.http.routers.$COMPOSE_PROJECT_NAME-api-web-secure.tls.certresolver=resolver'
|
|
- 'traefik.http.routers.$COMPOSE_PROJECT_NAME-api-web-secure.entrypoints=web-secure'
|
|
- 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-api-web-secure-compress.compress=true'
|
|
- 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-api-strip.stripprefix.prefixes=/api'
|
|
- 'traefik.http.routers.$COMPOSE_PROJECT_NAME-api-web-secure.middlewares=$COMPOSE_PROJECT_NAME-api-strip,$COMPOSE_PROJECT_NAME-api-web-secure-compress'
|
|
- 'traefik.http.services.$COMPOSE_PROJECT_NAME-api-web-secure.loadbalancer.server.port=8055'
|
|
- 'traefik.docker.network=${NETWORK_NAME:-kompose}'
|
|
|
|
frontend:
|
|
image: ${FRONTEND_IMAGE}
|
|
container_name: ${COMPOSE_PROJECT_NAME}_frontend
|
|
restart: unless-stopped
|
|
user: node
|
|
working_dir: /home/node/app/packages/frontend
|
|
networks:
|
|
- kompose_network
|
|
environment:
|
|
NODE_ENV: production
|
|
volumes:
|
|
- /var/www/sexy.pivoine.art:/home/node/app
|
|
command: ["node", "build/index.js"]
|
|
# healthcheck:
|
|
# test: ["CMD-SHELL", "wget --spider -q http://localhost:${FRONTEND_PORT}/ || exit 1"]
|
|
# interval: 30s
|
|
# timeout: 5s
|
|
# retries: 3
|
|
# start_period: 30s
|
|
labels:
|
|
- 'traefik.enable=true'
|
|
- 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-frontend-redirect-web-secure.redirectscheme.scheme=https'
|
|
- 'traefik.http.routers.$COMPOSE_PROJECT_NAME-frontend-web.middlewares=$COMPOSE_PROJECT_NAME-frontend-redirect-web-secure'
|
|
- 'traefik.http.routers.$COMPOSE_PROJECT_NAME-frontend-web.rule=Host(`$TRAEFIK_HOST`)'
|
|
- 'traefik.http.routers.$COMPOSE_PROJECT_NAME-frontend-web.entrypoints=web'
|
|
- 'traefik.http.routers.$COMPOSE_PROJECT_NAME-frontend-web-secure.rule=Host(`$TRAEFIK_HOST`)'
|
|
- 'traefik.http.routers.$COMPOSE_PROJECT_NAME-frontend-web-secure.tls.certresolver=resolver'
|
|
- 'traefik.http.routers.$COMPOSE_PROJECT_NAME-frontend-web-secure.entrypoints=web-secure'
|
|
- 'traefik.http.middlewares.$COMPOSE_PROJECT_NAME-frontend-web-secure-compress.compress=true'
|
|
- 'traefik.http.routers.$COMPOSE_PROJECT_NAME-frontend-web-secure.middlewares=$COMPOSE_PROJECT_NAME-frontend-web-secure-compress'
|
|
- 'traefik.http.services.$COMPOSE_PROJECT_NAME-frontend-web-secure.loadbalancer.server.port=${FRONTEND_PORT}'
|
|
- 'traefik.docker.network=${NETWORK_NAME:-kompose}'
|
|
|
|
networks:
|
|
kompose_network:
|
|
name: ${NETWORK_NAME:-kompose}
|
|
external: true
|