diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..12cae6c --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,51 @@ +version: '3.8' + +services: + playchoo-auth: + build: . + env_file: + - .env.prod + environment: + NODE_ENV: ${NODE_ENV:-production} + APP_PORT: ${APP_PORT:-3700} + APPLICATION_NAME: ${APPLICATION_NAME:-Playchoo Auth} + CORS_ALLOWED_ORIGIN: ${CORS_ALLOWED_ORIGIN} + SWISSOID_CLIENT_ID: ${SWISSOID_CLIENT_ID} + SWISSOID_CLIENT_SECRET: ${SWISSOID_CLIENT_SECRET} + SWISSOID_ISSUER: ${SWISSOID_ISSUER} + SWISSOID_JWKS_URI: ${SWISSOID_JWKS_URI} + SWISSOID_TOKEN_ENDPOINT: ${SWISSOID_TOKEN_ENDPOINT} + SWISSOID_AUTHORIZE_ENDPOINT: ${SWISSOID_AUTHORIZE_ENDPOINT} + REDIS_URL: ${REDIS_URL} + SESSION_COOKIE_NAME: ${SESSION_COOKIE_NAME:-playchoo_session} + REFRESH_COOKIE_NAME: ${REFRESH_COOKIE_NAME:-playchoo_refresh} + SESSION_SECRET: ${SESSION_SECRET} + STATE_SIGNING_SECRET: ${STATE_SIGNING_SECRET} + SESSION_TTL: ${SESSION_TTL:-7200} + REFRESH_TTL: ${REFRESH_TTL:-604800} + OIDC_REDIRECT_BASE_URL: ${OIDC_REDIRECT_BASE_URL} + RP_FRONTEND_URL: ${RP_FRONTEND_URL} + RP_COOKIE_DOMAIN: ${RP_COOKIE_DOMAIN} + POST_LOGIN_PATH: ${POST_LOGIN_PATH:-/dashboard} + ALLOW_CONTINUE_PARAM: ${ALLOW_CONTINUE_PARAM:-true} + LOGGER_LOG: ${LOGGER_LOG:-1} + LOGGER_DEBUG: ${LOGGER_DEBUG:-0} + labels: + - "traefik.enable=true" + - "traefik.http.routers.${REVERSE_DOMAIN}.rule=Host(`${APPLICATION_DOMAIN_NAME}`)" + - "traefik.http.routers.${REVERSE_DOMAIN}.entrypoints=websecure" + - "traefik.http.routers.${REVERSE_DOMAIN}.tls.certresolver=myresolver" + - "traefik.http.services.${REVERSE_DOMAIN}.loadbalancer.server.port=${APP_PORT:-3700}" + - "traefik.docker.network=shared_network" + networks: + - shared_network + - playchoo_redis_network + restart: unless-stopped + +networks: + shared_network: + name: shared_network + external: true + playchoo_redis_network: + name: playchoo_redis_network + external: true