fix(deploy): remove private source checkout from customer installer
This commit is contained in:
1 parent
d33ec5c47d
commit
e06a43c76f
68 files changed
+2374
-71
No files matched your search
+126
@@ -0,0 +1,126 @@
|
||||
name: overcooked-e
|
||||
|
||||
x-logging: &logging
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 10m
|
||||
max-file: "5"
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:17-alpine
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_DB: product_e
|
||||
POSTGRES_USER: product_e
|
||||
POSTGRES_PASSWORD: ${PRODUCT_E_POSTGRES_PASSWORD:?required}
|
||||
POSTGRES_INITDB_ARGS: --data-checksums
|
||||
volumes:
|
||||
- e-postgres:/var/lib/postgresql/data
|
||||
- e-backup-staging:/backup
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U product_e -d product_e"]
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 20
|
||||
networks: [backend]
|
||||
security_opt: [no-new-privileges:true]
|
||||
logging: *logging
|
||||
mem_limit: 2g
|
||||
|
||||
valkey:
|
||||
image: valkey/valkey:8-alpine
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
VALKEY_PASSWORD: ${PRODUCT_E_VALKEY_PASSWORD:?required}
|
||||
command: ["sh", "-ec", "exec valkey-server --appendonly yes --save 60 1 --requirepass \"$${VALKEY_PASSWORD}\""]
|
||||
volumes:
|
||||
- e-valkey:/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "valkey-cli -a \"$${VALKEY_PASSWORD}\" --no-auth-warning ping | grep -q PONG"]
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 20
|
||||
networks: [backend]
|
||||
security_opt: [no-new-privileges:true]
|
||||
logging: *logging
|
||||
mem_limit: 1g
|
||||
|
||||
e-server:
|
||||
image: ${PRODUCT_E_IMAGE:?required}
|
||||
restart: unless-stopped
|
||||
init: true
|
||||
depends_on:
|
||||
postgres: {condition: service_healthy}
|
||||
valkey: {condition: service_healthy}
|
||||
ports:
|
||||
- ${PRODUCT_E_HTTP_PORT_MAPPING:-0.0.0.0:8096:8096}
|
||||
read_only: true
|
||||
tmpfs:
|
||||
- /tmp:size=64m,mode=1777
|
||||
volumes:
|
||||
- e-data:/data
|
||||
- e-plugin-data:/data/plugins
|
||||
- ${OVERCOOKED_ROOT:-/opt/overcooked}/config/e-server.production.yaml:/etc/overcooked-e/config.yaml:ro
|
||||
environment:
|
||||
PRODUCT_E_CONFIG: /etc/overcooked-e/config.yaml
|
||||
PRODUCT_E_ENVIRONMENT: production
|
||||
PRODUCT_E_INSTANCE_ID: ${PRODUCT_E_INSTANCE_ID:-production-e-1}
|
||||
PRODUCT_E_DATABASE_URL: ${PRODUCT_E_DATABASE_URL:?required}
|
||||
PRODUCT_E_VALKEY_ADDRESS: valkey:6379
|
||||
PRODUCT_E_VALKEY_PASSWORD: ${PRODUCT_E_VALKEY_PASSWORD:?required}
|
||||
PRODUCT_E_CONTROL_PLANE_URL: ${PRODUCT_E_CONTROL_PLANE_URL:?required}
|
||||
PRODUCT_E_CONTROL_PLANE_KEY_ID: ${PRODUCT_E_CONTROL_PLANE_KEY_ID:?required}
|
||||
PRODUCT_E_CONTROL_PLANE_SHARED_SECRET: ${PRODUCT_E_CONTROL_PLANE_SHARED_SECRET:?required}
|
||||
PRODUCT_E_LICENSE_ENABLED: ${PRODUCT_E_LICENSE_ENABLED:-true}
|
||||
PRODUCT_E_AUTH_URL: ${PRODUCT_E_AUTH_URL:?required}
|
||||
PRODUCT_E_AUTH_ALLOW_INSECURE_HTTP: ${PRODUCT_E_AUTH_ALLOW_INSECURE_HTTP:-false}
|
||||
PRODUCT_E_AUTH_ACTIVATION_CODE: ${PRODUCT_E_AUTH_ACTIVATION_CODE:-}
|
||||
PRODUCT_E_AUTH_PUBLIC_KEYS: ${PRODUCT_E_AUTH_PUBLIC_KEYS:?required}
|
||||
PRODUCT_E_PLAYBACK_TICKET_SECRET: ${PRODUCT_E_PLAYBACK_TICKET_SECRET:?required}
|
||||
PRODUCT_E_PLAYBACK_TICKET_KEY_ID: ${PRODUCT_E_PLAYBACK_TICKET_KEY_ID:?required}
|
||||
PRODUCT_E_PLAYBACK_TICKET_PREVIOUS_PUBLIC_KEYS: ${PRODUCT_E_PLAYBACK_TICKET_PREVIOUS_PUBLIC_KEYS:-{}}
|
||||
PRODUCT_E_PLAYBACK_LEASE_KEY: ${PRODUCT_E_PLAYBACK_LEASE_KEY:?required}
|
||||
PRODUCT_E_STORAGE_CREDENTIAL_KEY: ${PRODUCT_E_STORAGE_CREDENTIAL_KEY:?required}
|
||||
PRODUCT_E_STORAGE_CREDENTIAL_KEY_ID: ${PRODUCT_E_STORAGE_CREDENTIAL_KEY_ID:?required}
|
||||
PRODUCT_E_STORAGE_CREDENTIAL_PREVIOUS_KEYS: ${PRODUCT_E_STORAGE_CREDENTIAL_PREVIOUS_KEYS:-{}}
|
||||
PRODUCT_E_PLUGIN_ENABLED: "true"
|
||||
PRODUCT_E_PLUGIN_UNSIGNED_POLICY: require-signature
|
||||
PRODUCT_E_PLUGIN_TRUSTED_PUBLISHERS: ${PRODUCT_E_PLUGIN_TRUSTED_PUBLISHERS:-{}}
|
||||
PRODUCT_E_PLUGIN_SECRET_KEY_ID: ${PRODUCT_E_PLUGIN_SECRET_KEY_ID:?required}
|
||||
PRODUCT_E_PLUGIN_SECRET_KEY: ${PRODUCT_E_PLUGIN_SECRET_KEY:?required}
|
||||
PRODUCT_E_PLUGIN_PREVIOUS_SECRET_KEYS: ${PRODUCT_E_PLUGIN_PREVIOUS_SECRET_KEYS:-{}}
|
||||
PRODUCT_E_TMDB_TOKEN: ${PRODUCT_E_TMDB_TOKEN:-}
|
||||
PRODUCT_E_BANGUMI_TOKEN: ${PRODUCT_E_BANGUMI_TOKEN:-}
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:8096/health/live || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
start_period: 20s
|
||||
retries: 6
|
||||
stop_grace_period: 45s
|
||||
networks:
|
||||
backend:
|
||||
control-plane:
|
||||
aliases: [product-e]
|
||||
egress:
|
||||
security_opt: [no-new-privileges:true]
|
||||
cap_drop: [ALL]
|
||||
logging: *logging
|
||||
mem_limit: 4g
|
||||
|
||||
networks:
|
||||
backend:
|
||||
internal: true
|
||||
control-plane:
|
||||
external: true
|
||||
name: overcooked-control
|
||||
egress:
|
||||
|
||||
volumes:
|
||||
e-postgres:
|
||||
e-valkey:
|
||||
e-data:
|
||||
e-plugin-data:
|
||||
e-backup-staging:
|
||||
|
||||
+176
@@ -0,0 +1,176 @@
|
||||
name: overcooked-s
|
||||
|
||||
x-logging: &logging
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 10m
|
||||
max-file: "5"
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:17-alpine
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
POSTGRES_DB: product_s
|
||||
POSTGRES_USER: product_s
|
||||
POSTGRES_PASSWORD: ${S_POSTGRES_PASSWORD:?required}
|
||||
POSTGRES_INITDB_ARGS: --data-checksums
|
||||
volumes:
|
||||
- s-postgres:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready -U product_s -d product_s"]
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 20
|
||||
networks: [backend]
|
||||
security_opt: [no-new-privileges:true]
|
||||
logging: *logging
|
||||
mem_limit: 512m
|
||||
|
||||
valkey:
|
||||
image: valkey/valkey:8-alpine
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
S_VALKEY_PASSWORD: ${S_VALKEY_PASSWORD:?required}
|
||||
command: ["sh", "-ec", "exec valkey-server --appendonly yes --maxmemory-policy noeviction --requirepass \"$${S_VALKEY_PASSWORD}\""]
|
||||
volumes:
|
||||
- s-valkey:/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "valkey-cli -a \"$${S_VALKEY_PASSWORD}\" --no-auth-warning ping | grep -q PONG"]
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 20
|
||||
networks: [backend]
|
||||
security_opt: [no-new-privileges:true]
|
||||
logging: *logging
|
||||
mem_limit: 128m
|
||||
|
||||
s-migrate:
|
||||
image: postgres:17-alpine
|
||||
depends_on:
|
||||
postgres: {condition: service_healthy}
|
||||
environment:
|
||||
PGHOST: postgres
|
||||
PGUSER: product_s
|
||||
PGDATABASE: product_s
|
||||
PGPASSWORD: ${S_POSTGRES_PASSWORD:?required}
|
||||
volumes:
|
||||
- ${OVERCOOKED_ROOT:-/opt/overcooked}/migrations:/migrations:ro
|
||||
- ${OVERCOOKED_ROOT:-/opt/overcooked}/s-migrate.sh:/migrate.sh:ro
|
||||
command: ["sh", "/migrate.sh"]
|
||||
networks: [backend]
|
||||
security_opt: [no-new-privileges:true]
|
||||
restart: "no"
|
||||
logging: *logging
|
||||
mem_limit: 128m
|
||||
|
||||
s-control:
|
||||
image: ${S_CONTROL_IMAGE:?required}
|
||||
restart: unless-stopped
|
||||
init: true
|
||||
depends_on:
|
||||
s-migrate: {condition: service_completed_successfully}
|
||||
valkey: {condition: service_healthy}
|
||||
ports:
|
||||
- ${S_API_PORT_MAPPING:-0.0.0.0:18080:8080}
|
||||
read_only: true
|
||||
tmpfs:
|
||||
- /tmp:size=32m,mode=1777
|
||||
environment:
|
||||
S_HTTP_ADDR: :8080
|
||||
S_DATABASE_URL: postgres://product_s:${S_POSTGRES_PASSWORD}@postgres:5432/product_s?sslmode=disable
|
||||
S_VALKEY_URL: redis://:${S_VALKEY_PASSWORD}@valkey:6379/0
|
||||
S_INTERNAL_KEY_ID: ${S_INTERNAL_KEY_ID:?required}
|
||||
S_INTERNAL_SHARED_SECRET: ${S_INTERNAL_SHARED_SECRET:?required}
|
||||
S_ACCESS_TOKEN_SECRET: ${S_ACCESS_TOKEN_SECRET:?required}
|
||||
S_SETUP_TOKEN: ${S_SETUP_TOKEN:?required}
|
||||
S_ACCESS_TOKEN_TTL: ${S_ACCESS_TOKEN_TTL:-15m}
|
||||
S_EMBY_ACCESS_TOKEN_TTL: ${S_EMBY_ACCESS_TOKEN_TTL:-720h}
|
||||
S_REFRESH_TOKEN_TTL: ${S_REFRESH_TOKEN_TTL:-720h}
|
||||
S_PLAYBACK_SESSION_TTL: ${S_PLAYBACK_SESSION_TTL:-90s}
|
||||
S_E_BASE_URL: ${S_E_BASE_URL:?required}
|
||||
S_E_PUBLIC_URL: ${S_E_PUBLIC_URL:-}
|
||||
S_E_KEY_ID: ${S_E_KEY_ID:?required}
|
||||
S_E_INTERNAL_SECRET: ${S_E_INTERNAL_SECRET:?required}
|
||||
S_E_ALLOW_INSECURE_HTTP: ${S_E_ALLOW_INSECURE_HTTP:-false}
|
||||
S_AUTH_BASE_URL: ${S_AUTH_BASE_URL:?required}
|
||||
S_AUTH_ALLOW_INSECURE_HTTP: ${S_AUTH_ALLOW_INSECURE_HTTP:-false}
|
||||
S_AUTH_PUBLIC_KEYS: ${S_AUTH_PUBLIC_KEYS:?required}
|
||||
S_AUTH_HEARTBEAT_INTERVAL: ${S_AUTH_HEARTBEAT_INTERVAL:-5m}
|
||||
S_INSTANCE_ID: ${S_INSTANCE_ID:-s-production-1}
|
||||
S_PLATFORM: ${S_PLATFORM:-linux-amd64}
|
||||
S_VERSION: ${S_VERSION:-customer}
|
||||
S_BACKUP_DIRECTORY: /var/lib/overcooked-s/backups
|
||||
S_UPDATE_DIRECTORY: /var/lib/overcooked-s/updates
|
||||
S_TURNSTILE_SITE_KEY: ${S_TURNSTILE_SITE_KEY:?required}
|
||||
S_TURNSTILE_SECRET_KEY: ${S_TURNSTILE_SECRET_KEY:?required}
|
||||
S_TURNSTILE_HOSTNAME: ${S_TURNSTILE_HOSTNAME:-}
|
||||
S_TELEGRAM_MTPROTO_URL: ${S_TELEGRAM_MTPROTO_URL:-http://telegram-disabled.invalid:8098}
|
||||
S_PORTAL_LOCATION: ${S_PORTAL_LOCATION:-Private Node}
|
||||
S_PORTAL_SERVER_URL: ${S_PORTAL_SERVER_URL:-}
|
||||
S_PORTAL_WEB_CLIENT_URL: ${S_PORTAL_WEB_CLIENT_URL:-}
|
||||
S_PORTAL_ANNOUNCEMENT: ${S_PORTAL_ANNOUNCEMENT:-}
|
||||
S_STORAGE_WEBHOOK_SECRET: ${S_STORAGE_WEBHOOK_SECRET:-}
|
||||
S_NODE_IMAGE_ARCHIVE: /var/lib/overcooked-s/node-images/media-node.tar.gz
|
||||
S_NODE_IMAGE_NAME: ${S_NODE_IMAGE_NAME:-overcooked-media-node:latest}
|
||||
S_NODE_CONTROLLER_HOST: ${S_NODE_CONTROLLER_HOST:-}
|
||||
volumes:
|
||||
- s-backups:/var/lib/overcooked-s/backups
|
||||
- s-updates:/var/lib/overcooked-s/updates
|
||||
- ${OVERCOOKED_ROOT:-/opt/overcooked}/node-images:/var/lib/overcooked-s/node-images:ro
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:8080/health/live || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
start_period: 15s
|
||||
retries: 6
|
||||
networks:
|
||||
backend:
|
||||
control-plane:
|
||||
aliases: [product-s]
|
||||
security_opt: [no-new-privileges:true]
|
||||
cap_drop: [ALL]
|
||||
logging: *logging
|
||||
mem_limit: 384m
|
||||
|
||||
webui:
|
||||
image: ${S_WEBUI_IMAGE:?required}
|
||||
restart: unless-stopped
|
||||
init: true
|
||||
depends_on:
|
||||
s-control: {condition: service_healthy}
|
||||
ports:
|
||||
- ${S_WEB_PORT_MAPPING:-0.0.0.0:18083:3000}
|
||||
read_only: true
|
||||
tmpfs:
|
||||
- /tmp:size=64m,mode=1777
|
||||
- /app/.next/cache:size=64m,mode=0755,uid=1000,gid=1000
|
||||
networks:
|
||||
backend:
|
||||
frontend:
|
||||
control-plane:
|
||||
aliases: [product-s-web]
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:3000/ || exit 1"]
|
||||
interval: 10s
|
||||
timeout: 3s
|
||||
start_period: 20s
|
||||
retries: 6
|
||||
security_opt: [no-new-privileges:true]
|
||||
cap_drop: [ALL]
|
||||
logging: *logging
|
||||
mem_limit: 384m
|
||||
|
||||
networks:
|
||||
backend:
|
||||
internal: true
|
||||
frontend:
|
||||
control-plane:
|
||||
external: true
|
||||
name: overcooked-control
|
||||
|
||||
volumes:
|
||||
s-postgres:
|
||||
s-valkey:
|
||||
s-backups:
|
||||
s-updates:
|
||||
Reference in new issue
Block a user