Repository navigation
Expand file tree
/
Copy pathdocker-compose.yml
More file actions
77 lines (72 loc) · 2.78 KB
/
Copy pathdocker-compose.yml
File metadata and controls
77 lines (72 loc) · 2.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
version: '3.8'
services:
mongodb:
image: mongo:6.0
container_name: quest-mongodb
environment:
MONGO_INITDB_ROOT_USERNAME: ${MONGO_INITDB_ROOT_USERNAME}
MONGO_INITDB_ROOT_PASSWORD: ${MONGO_INITDB_ROOT_PASSWORD}
ports:
- "27017:27017"
volumes:
- mongodb_data:/data/db
networks:
- quest-network
backend:
build:
context: ./backend
dockerfile: Dockerfile
container_name: quest-backend
environment:
NODE_ENV: production
PORT: 5000
# Профиль (этап 6): all — разработка (всё), station — ноутбук в зале
# (только offline-модули). Для станции задать MODE=station в .env.
MODE: ${MODE:-all}
MONGODB_URI: mongodb://${MONGO_INITDB_ROOT_USERNAME}:${MONGO_INITDB_ROOT_PASSWORD}@mongodb:27017/quest?authSource=admin
JWT_SECRET: ${JWT_SECRET}
# Станция: путь к публичному ключу облака (/app/secrets/jwt.pub), чтобы
# принимать облачные RS256-токены. Пусто = только локальные HS256.
JWT_PUBLIC_KEY_FILE: ${JWT_PUBLIC_KEY_FILE:-}
BCRYPT_ROUNDS: 10
# «Угадай мелодию» (оффлайн-LAN): база, которую QR отдаёт телефонам.
# Укажите LAN-IP компьютера-хоста, напр. http://192.168.0.10:5173
PUBLIC_WEB_BASE: ${PUBLIC_WEB_BASE:-}
HOST_IP: ${HOST_IP:-}
# Этап 5: куда станция отправляет итоги вечеринок (пусто = никуда).
# Токен опционален — только для автоотправки на старте.
QUESTIX_CLOUD_URL: ${QUESTIX_CLOUD_URL:-}
QUESTIX_CLOUD_TOKEN: ${QUESTIX_CLOUD_TOKEN:-}
# Диагностический JSONL-журнал музыкальной игры (дневные файлы).
MUSIC_LOG_DIR: /app/logs
MUSIC_LOG_RETENTION_DAYS: ${MUSIC_LOG_RETENTION_DAYS:-30}
ports:
- "5000:5000"
depends_on:
- mongodb
volumes:
# аудиофайлы «Угадай мелодию»
- media_data:/app/media
# ключи (станции нужен только jwt.pub; каталог может быть пустым)
- ./secrets:/app/secrets:ro
# сохраняем журнал между пересозданиями контейнера
- ./logs:/app/logs
networks:
- quest-network
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: quest-frontend
ports:
- "5173:5173"
depends_on:
- backend
networks:
- quest-network
volumes:
mongodb_data:
media_data:
networks:
quest-network:
driver: bridge