feat(geo): switch geocoder from self-host Photon to OpenCage API
CI / test (push) Successful in 7m44s
CI / deploy-ift (push) Successful in 3m57s
CI / e2e-ift (push) Successful in 1m16s
CI / deploy-stage (push) Successful in 2m36s
CI / e2e-stage (push) Successful in 4m12s

logic_geo проксирует OpenCage (suggest/geocode/reverse): env OPENCAGE_API_KEY,
OPENCAGE_URL, OPENCAGE_TIMEOUT_MS, OPENCAGE_COUNTRYCODE, OPENCAGE_THROTTLE_RPS
(1 rps под free-тариф, 0 - выключить). HTTP 402/403/429 апстрима ->
503 geo_unavailable; source=opencage. Сервис photon и volume photon-data
удалены из swarm compose; eunit-фикстуры под формат OpenCage.

Refs EventHub/EventHubBack#77
This commit is contained in:
2026-08-18 23:30:15 +03:00
parent 6b70e1336d
commit 73d43e5fdc
5 changed files with 163 additions and 87 deletions
+3 -4
View File
@@ -43,8 +43,7 @@ REMINDER_LEAD_HOURS=24
# Uploads (avatar/cover) — каталог на volume /app/data (Back#71)
UPLOAD_DIR=/app/data/uploads
UPLOAD_MAX_BYTES=2097152
# Photon (DevOps#16). Пусто = /v1/geo 503. Включить: PHOTON_REPLICAS=1 и PHOTON_URL=http://photon:2322
PHOTON_URL=
PHOTON_TIMEOUT_MS=3000
PHOTON_REPLICAS=0
# OpenCage (DevOps#16). = /v1/geo -> 503 (degrade). Free: 2500/, 1 rps.
OPENCAGE_API_KEY=
OPENCAGE_TIMEOUT_MS=3000
+3 -27
View File
@@ -70,8 +70,8 @@ services:
- ADMIN_SUPPORT_PASSWORD=${ADMIN_SUPPORT_PASSWORD}
- CLUSTER_MODE=true
- DNS_NAME=eventhub-node
- PHOTON_URL=${PHOTON_URL:-}
- PHOTON_TIMEOUT_MS=${PHOTON_TIMEOUT_MS:-3000}
- OPENCAGE_API_KEY=${OPENCAGE_API_KEY:-}
- OPENCAGE_TIMEOUT_MS=${OPENCAGE_TIMEOUT_MS:-3000}
networks:
eventhub-net:
aliases:
@@ -235,29 +235,6 @@ services:
max_attempts: 3
window: 120s
# OSM geocoder (komoot Photon). Internal only — do not publish :2322.
# Default replicas 0. Enable: PHOTON_REPLICAS=1 PHOTON_URL=http://photon:2322
photon:
image: ${PHOTON_IMAGE:-rtuszik/photon-docker:latest}
environment:
- REGION=${PHOTON_REGION:-russia}
- UPDATE_STRATEGY=${PHOTON_UPDATE_STRATEGY:-PARALLEL}
volumes:
- photon-data:/photon/data
networks:
eventhub-net:
aliases:
- photon
deploy:
replicas: ${PHOTON_REPLICAS:-0}
resources:
limits:
memory: ${PHOTON_MEMORY_LIMIT:-1536M}
reservations:
memory: 128M
restart_policy:
condition: any
networks:
eventhub-net:
driver: overlay
@@ -268,5 +245,4 @@ volumes:
prometheus-data:
grafana-data:
traefik-logs:
loglynx-data:
photon-data:
loglynx-data: