df699a1171
Build & Push Image / Build and push to Gitea Registry (push) Failing after 15s
Свой netrunner-landing/netrunner-landing-proxy теперь на gitea.netrunner-vpn.com. Сторонний образ PocketBase (ghcr.io/muchobien/ pocketbase) не трогаю — это чужой образ, живёт там же, где и жил.
75 lines
3.4 KiB
YAML
75 lines
3.4 KiB
YAML
services:
|
|
# Фронтенд (Next.js)
|
|
landing:
|
|
image: gitea.netrunner-vpn.com/nineap/netrunner-landing:latest
|
|
container_name: netrunner-landing
|
|
restart: always
|
|
# Не 127.0.0.1 — /api/metrics (см. app/api/metrics/route.ts) должен
|
|
# скрейпиться удалённым центральным Prometheus (см.
|
|
# netrunner-data/docker-compose.observability.yml). Порт 3000 в целом уже
|
|
# не секрет (это тот же самый сайт, что и по HTTPS через реверс-прокси
|
|
# перед ним) — но ОБЯЗАТЕЛЬНО зафайрволить на этом VPS на IP
|
|
# observability-сервера, чтобы не плодить лишний голый-HTTP путь к сайту.
|
|
ports:
|
|
- "3000:3000"
|
|
environment:
|
|
- NODE_ENV=production
|
|
# PB_PUBLIC_URL — адрес PocketBase для клиентских компонентов (Pricing,
|
|
# TerminalGuestbook, docs/download/terminal-client.tsx): читается на сервере
|
|
# в соответствующих page.tsx и прокидывается пропсом, т.к. NEXT_PUBLIC_PB_URL
|
|
# Next.js зашивает в бандл на этапе сборки образа в CI и не перечитывает при
|
|
# старте контейнера (см. docker-compose.dev-remote.yml, где это стало
|
|
# проблемой из-за общего с прод образа).
|
|
- PB_PUBLIC_URL=https://netrunner-vpn.com/cms-api
|
|
- NEXT_PUBLIC_PB_URL=https://netrunner-vpn.com/cms-api
|
|
- NEXT_PUBLIC_PROXY_URL=https://netrunner-vpn.com/api/proxy
|
|
- PB_INTERNAL_URL=http://netrunner-cms:8090
|
|
# Единая авторизация: ЛК живёт в netrunner-backend на отдельном сабдомене,
|
|
# общий родительский домен .netrunner-vpn.com расшаривает cookie-сессию.
|
|
# Без NEXT_PUBLIC_ — читаются только на сервере (app/[lang]/auth/page.tsx),
|
|
# поэтому реально применяются в рантайме, а не зашиваются в бандл при сборке.
|
|
- ACCOUNT_ORIGIN=https://account.netrunner-vpn.com
|
|
- API_URL=https://account.netrunner-vpn.com/api/v1
|
|
- BOT_USERNAME=ntrnr_vpn_bot
|
|
depends_on:
|
|
- ws-proxy
|
|
networks:
|
|
- netrunner-network
|
|
|
|
# CMS (PocketBase)
|
|
netrunner-cms:
|
|
image: ghcr.io/muchobien/pocketbase:latest
|
|
container_name: netrunner-cms
|
|
restart: unless-stopped
|
|
command:
|
|
- serve
|
|
- --http=0.0.0.0:8090
|
|
- --dir=/pb_data
|
|
ports:
|
|
- "127.0.0.1:8090:8090"
|
|
volumes:
|
|
- ./pb_data:/pb_data
|
|
networks:
|
|
- netrunner-network
|
|
|
|
# Прокси-слой (Rust)
|
|
ws-proxy:
|
|
image: gitea.netrunner-vpn.com/nineap/netrunner-landing-proxy:latest
|
|
container_name: netrunner-ws-proxy
|
|
restart: always
|
|
# Не 127.0.0.1 — /metrics (см. proxy-ws/src/main.rs) должен скрейпиться
|
|
# удалённым центральным Prometheus. Обязательно зафайрволить на IP
|
|
# observability-сервера (см. netrunner-data/docker-compose.observability.yml).
|
|
ports:
|
|
- "3001:3001"
|
|
environment:
|
|
- PB_INTERNAL_URL=http://netrunner-cms:8090
|
|
depends_on:
|
|
- netrunner-cms
|
|
networks:
|
|
- netrunner-network
|
|
|
|
networks:
|
|
netrunner-network:
|
|
driver: bridge
|