version: '3.8' services: backend: build: context: . dockerfile: Dockerfile.backend container_name: nakama-backend restart: unless-stopped ports: - "3000:3000" environment: - NODE_ENV=production - PORT=3000 - MONGODB_URI=${MONGODB_URI:-mongodb://103.80.87.247:27017/nakama} - JWT_SECRET=${JWT_SECRET} - JWT_ACCESS_SECRET=${JWT_ACCESS_SECRET} - JWT_REFRESH_SECRET=${JWT_REFRESH_SECRET} - TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN} - MODERATION_BOT_TOKEN=${MODERATION_BOT_TOKEN} - MODERATION_OWNER_USERNAMES=${MODERATION_OWNER_USERNAMES:-glpshchn00} - MODERATION_CHANNEL_USERNAME=${MODERATION_CHANNEL_USERNAME:-@reichenbfurry} - GELBOORU_API_KEY=${GELBOORU_API_KEY} - GELBOORU_USER_ID=${GELBOORU_USER_ID} - FRONTEND_URL=${FRONTEND_URL:-http://localhost:5173} - CORS_ORIGIN=${CORS_ORIGIN:-*} - REDIS_URL=${REDIS_URL} volumes: # Медиа хранится на удаленном сервере, монтируем через NFS или SSH - /mnt/nakama-media:/app/backend/uploads networks: - nakama-network depends_on: - mongodb healthcheck: test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1))"] interval: 30s timeout: 10s retries: 3 start_period: 40s frontend: build: context: . dockerfile: Dockerfile.frontend args: VITE_API_URL: ${VITE_API_URL:-http://localhost:3000/api} container_name: nakama-frontend restart: unless-stopped ports: - "5173:80" networks: - nakama-network depends_on: - backend moderation: build: context: . dockerfile: Dockerfile.moderation args: VITE_API_URL: ${VITE_API_URL:-http://localhost:3000/api} container_name: nakama-moderation restart: unless-stopped ports: - "5174:80" networks: - nakama-network depends_on: - backend mongodb: image: mongo:7 container_name: nakama-mongodb restart: unless-stopped ports: - "27017:27017" environment: - MONGO_INITDB_DATABASE=nakama volumes: # База данных на удаленном сервере - /mnt/nakama-db:/data/db networks: - nakama-network command: mongod --bind_ip_all backup: image: mongo:7 container_name: nakama-backup restart: "no" environment: - MONGODB_URI=${MONGODB_URI:-mongodb://103.80.87.247:27017/nakama} volumes: - /mnt/nakama-backups:/backups - ./backend/scripts/backup.js:/backup.js networks: - nakama-network depends_on: - mongodb entrypoint: /bin/bash command: -c "echo 'Backup container ready. Run manual backups or set up cron.'" networks: nakama-network: driver: bridge volumes: nakama-db: driver: local nakama-media: driver: local nakama-backups: driver: local