feat(infra): переход прод/test на общую инфраструктуру вместо self-hosted
Postgres/Redis/RabbitMQ/MinIO/Ollama теперь общие серверы сети (адреса в .env), локально в докере остаётся только Elasticsearch + app-сервисы. Старый docker-compose.yml (полностью автономный стек) сохранён как docker-compose.selfhosted.yml.example на случай отдельного GPU-сервера в будущем. Добавлен docker-compose.prod.yml (app + свой nginx с TLS, собирающий фронтенд в статику). Makefile переписан под три режима (dev/test-up/prod). Мелкая чистка неиспользуемых импортов во фронтенде.
This commit is contained in:
10
infra/nginx/Dockerfile
Normal file
10
infra/nginx/Dockerfile
Normal file
@@ -0,0 +1,10 @@
|
||||
FROM node:20-slim AS build
|
||||
WORKDIR /app
|
||||
COPY services/frontend/package.json services/frontend/package-lock.json* ./
|
||||
RUN npm install
|
||||
COPY services/frontend/ .
|
||||
RUN npm run build
|
||||
|
||||
FROM nginx:1.27-alpine
|
||||
COPY --from=build /app/dist /var/www/academic
|
||||
COPY infra/nginx/nginx.conf /etc/nginx/nginx.conf
|
||||
@@ -72,6 +72,12 @@ http {
|
||||
add_header X-Frame-Options DENY;
|
||||
add_header X-XSS-Protection "1; mode=block";
|
||||
|
||||
# ── Health check (не под /api/ в самом приложении) ─────────────────────
|
||||
location = /health {
|
||||
proxy_pass http://api/health;
|
||||
proxy_set_header Host $host;
|
||||
}
|
||||
|
||||
# ── API proxy ──────────────────────────────────────────────────────────
|
||||
location /api/ {
|
||||
proxy_pass http://api/api/;
|
||||
|
||||
Reference in New Issue
Block a user