services: web: image: ghcr.io/replicatedhq/ttlsh-web:latest build: context: web dockerfile: Dockerfile platforms: - "linux/amd64" container_name: ttlsh-web restart: always pull_policy: always ports: - "3000:3000" networks: - ttlsh-network registry: image: ghcr.io/replicatedhq/ttlsh-registry:latest build: context: registry dockerfile: Dockerfile platforms: - "linux/amd64" container_name: ttlsh-registry restart: always pull_policy: always env_file: ".env" environment: - PORT=5000 ports: - "5000:5000" - "5001:5001" networks: - ttlsh-network hooks: image: ghcr.io/replicatedhq/ttlsh-hooks:latest build: context: hooks dockerfile: Dockerfile.hooks platforms: - "linux/amd64" container_name: ttlsh-hooks restart: always pull_policy: always env_file: ".env" environment: - LOG_LEVEL=${LOG_LEVEL:-info} - NODE_ENV=${NODE_ENV:-production} - PORT=8000 ports: - "8000:8000" networks: - ttlsh-network reaper: image: ghcr.io/replicatedhq/ttlsh-reaper:latest build: context: hooks dockerfile: Dockerfile.reap platforms: - "linux/amd64" container_name: ttlsh-reaper restart: always pull_policy: always env_file: ".env" environment: - LOG_LEVEL=${LOG_LEVEL:-info} - NODE_ENV=${NODE_ENV:-production} networks: - ttlsh-network redis: image: redis:7-alpine container_name: ttlsh-redis restart: always pull_policy: always env_file: ".env" ports: - "6379:6379" networks: - ttlsh-network volumes: - ./redis/data:/data command: redis-server --requirepass ${REDIS_PASSWORD} networks: ttlsh-network: driver: bridge