mirror of
https://github.com/snoups/remnashop.git
synced 2026-04-04 15:31:16 +00:00
- update postgres and valkey healthchecks to include default values and password support - switch valkey startup command to shell script for conditional authentication - change production database port mapping from 6767 to 5001 - resolve circular imports in user events by localizing keyboard imports - refactor LocaleList to robustly validate both native lists and csv strings
146 lines
3.2 KiB
YAML
146 lines
3.2 KiB
YAML
x-build: &build
|
|
image: ghcr.io/snoups/remnashop:latest
|
|
|
|
volumes:
|
|
- ./logs:/opt/remnashop/logs
|
|
- ./assets:/opt/remnashop/assets
|
|
|
|
x-common: &common
|
|
ulimits:
|
|
nofile:
|
|
soft: 1048576
|
|
hard: 1048576
|
|
|
|
restart: unless-stopped
|
|
|
|
networks:
|
|
- remnawave-network
|
|
|
|
x-logging: &logging
|
|
logging:
|
|
driver: json-file
|
|
options:
|
|
max-size: 100m
|
|
max-file: 5
|
|
|
|
x-env: &env
|
|
env_file: .env
|
|
|
|
|
|
services:
|
|
remnashop-db:
|
|
image: postgres:17
|
|
container_name: "remnashop-db"
|
|
hostname: remnashop-db
|
|
<<: [*common, *logging, *env]
|
|
|
|
environment:
|
|
- POSTGRES_USER=${DATABASE_USER:-remnashop}
|
|
- POSTGRES_PASSWORD=${DATABASE_PASSWORD}
|
|
- POSTGRES_DB=${DATABASE_NAME:-remnashop}
|
|
- TZ=UTC
|
|
|
|
ports:
|
|
- 127.0.0.1:5001:${DATABASE_PORT:-5432}
|
|
|
|
volumes:
|
|
- remnashop-db-data:/var/lib/postgresql/data
|
|
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U $${DATABASE_USER:-remnashop} -d $${DATABASE_NAME:-remnashop}"]
|
|
interval: 3s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
|
|
remnashop-redis:
|
|
image: valkey/valkey:9-alpine
|
|
container_name: "remnashop-redis"
|
|
hostname: remnashop-redis
|
|
<<: [*common, *logging, *env]
|
|
|
|
command: >
|
|
sh -c '
|
|
ARGS="--save \"\" --appendonly no --maxmemory-policy noeviction --loglevel warning";
|
|
if [ -n "$${REDIS_PASSWORD}" ]; then
|
|
exec valkey-server $${ARGS} --requirepass "$${REDIS_PASSWORD}";
|
|
else
|
|
exec valkey-server $${ARGS};
|
|
fi'
|
|
|
|
volumes:
|
|
- remnashop-redis-data:/data
|
|
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "valkey-cli $${REDIS_PASSWORD:+-a \"$REDIS_PASSWORD\"} ping | grep PONG"]
|
|
interval: 3s
|
|
timeout: 10s
|
|
retries: 3
|
|
|
|
|
|
remnashop:
|
|
container_name: "remnashop"
|
|
hostname: remnashop
|
|
<<: [*build, *common, *logging, *env]
|
|
|
|
environment:
|
|
RESET_ASSETS: "${RESET_ASSETS:-false}"
|
|
|
|
ports:
|
|
- 127.0.0.1:5000:${APP_PORT:-5000}
|
|
|
|
depends_on:
|
|
remnashop-db:
|
|
condition: service_healthy
|
|
remnashop-redis:
|
|
condition: service_healthy
|
|
|
|
|
|
remnashop-taskiq-worker:
|
|
container_name: "remnashop-taskiq-worker"
|
|
hostname: remnashop-taskiq-worker
|
|
<<: [*build, *common, *logging, *env]
|
|
|
|
command: >
|
|
taskiq worker src.infrastructure.taskiq.worker:worker
|
|
--ack-type when_received --tasks-pattern src/infrastructure/taskiq/tasks/*.py -fsd
|
|
|
|
depends_on:
|
|
remnashop-redis:
|
|
condition: service_healthy
|
|
remnashop-db:
|
|
condition: service_healthy
|
|
|
|
|
|
remnashop-taskiq-scheduler:
|
|
container_name: "remnashop-taskiq-scheduler"
|
|
hostname: remnashop-taskiq-scheduler
|
|
<<: [*build, *common, *logging, *env]
|
|
|
|
command: >
|
|
taskiq scheduler src.infrastructure.taskiq.scheduler:scheduler
|
|
--tasks-pattern src/infrastructure/taskiq/tasks/*.py -fsd
|
|
|
|
depends_on:
|
|
remnashop-redis:
|
|
condition: service_healthy
|
|
remnashop-db:
|
|
condition: service_healthy
|
|
|
|
|
|
networks:
|
|
remnawave-network:
|
|
name: remnawave-network
|
|
driver: bridge
|
|
external: false
|
|
|
|
volumes:
|
|
remnashop-db-data:
|
|
name: remnashop-db-data
|
|
driver: local
|
|
external: false
|
|
|
|
remnashop-redis-data:
|
|
name: remnashop-redis-data
|
|
driver: local
|
|
external: false |