docs: update README and Docker Compose configurations to clarify usage of pre-built images from the Container Registry, introduce the new microvps-full profile with Web UI, NATS, and Prometheus, and enhance quickstart instructions for improved deployment guidance.
CI / changes (push) Successful in 5s
CI / openapi (push) Has been skipped
CI / go (push) Successful in 19s
CI / bird2 (push) Successful in 15s
CI / docker-images (deploy/docker/bird2/Dockerfile, , evobgp-bird2) (push) Successful in 39s
CI / docker-images (deploy/docker/evobgp-agent/Dockerfile, , evobgp-agent) (push) Successful in 1m7s
CI / docker-images (deploy/docker/evobgp-web/Dockerfile, , evobgp-web) (push) Successful in 56s
CI / docker-images (deploy/docker/evobgp-web/Dockerfile, evobgp-all, evobgp-web-all) (push) Successful in 53s
CI / docker-images (evobgp-all, 1, deploy/docker/gobinary/Dockerfile, , evobgp-all) (push) Successful in 1m26s
CI / docker-images (evobgp-api, 1, deploy/docker/gobinary/Dockerfile, , evobgp-api) (push) Successful in 1m27s
CI / docker-images (evobgp-deploy, 0, deploy/docker/gobinary/Dockerfile, , evobgp-deploy) (push) Successful in 1m31s
CI / docker-images (evobgp-ingest, 0, deploy/docker/gobinary/Dockerfile, , evobgp-ingest) (push) Successful in 1m36s
CI / docker-images (evobgp-node, 0, deploy/docker/gobinary/Dockerfile, , evobgp-node) (push) Successful in 1m20s
CI / docker-images (evobgp-render, 0, deploy/docker/gobinary/Dockerfile, , evobgp-render) (push) Successful in 1m30s
CI / docker-images (evobgp-scheduler, 0, deploy/docker/gobinary/Dockerfile, , evobgp-scheduler) (push) Successful in 1m23s

This commit is contained in:
Denozordec
2026-04-05 18:44:47 +07:00
parent acc0608432
commit 7fac79c2e0
11 changed files with 224 additions and 71 deletions
+62 -53
View File
@@ -1,12 +1,18 @@
# EvoBGP Compose: профили `reference` (эталон) и `microvps` (одна VPS).
#
# Образы EvoBGP тянутся из Container Registry (не собираются здесь). Префикс и тег — .env (см. .env.example):
# EVOBGP_REGISTRY=git.shts.su/<owner> EVOBGP_IMAGE_TAG=latest
# Перед up: docker login git.shts.su && docker compose pull
#
# Запуск:
# docker compose --profile reference up -d --build
# docker compose --profile microvps up -d --build
# docker compose --profile reference up -d
# docker compose --profile microvps up -d
# microVPS ~1 ГиБ + Web UI — docs/quickstart.md и docker-compose.microvps-full.yaml
#
# reference: 5× Go (api + scheduler + ingest + render + deploy) + postgres + NATS JetStream + bird2 + agent + web.
# Async jobs выполняются in-process в evobgp-api (jobs.Registry); NATS — задел под брокер (см. docs/architecture.md).
# microvps: evobgp-all + postgres + bird2 + agent (без брокера).
# microvps: evobgp-all + postgres + bird2 + agent (без брокера и без UI).
# microvps-full: как microvps + evobgp-web-microvps (порт 3000) + nats + prometheus-microvps (порт 9090).
#
# Опция microVPS_sqlite из плана (без контейнера Postgres): требует реализации store на SQLite в приложении;
# пока используйте microvps с контейнерным Postgres (единые миграции).
@@ -36,7 +42,7 @@ x-env-micro: &env-micro
services:
postgres:
profiles: ["reference", "microvps"]
profiles: ["reference", "microvps", "microvps-full"]
image: postgres:16-alpine
restart: unless-stopped
environment:
@@ -58,7 +64,7 @@ services:
memory: 384M
nats:
profiles: ["reference"]
profiles: ["reference", "microvps-full"]
image: nats:2.10-alpine
restart: unless-stopped
command: ["-js", "-m", "8222"]
@@ -72,12 +78,7 @@ services:
evobgp-api:
profiles: ["reference"]
build:
context: ../..
dockerfile: deploy/docker/gobinary/Dockerfile
args:
BIN: evobgp-api
INSTALL_BIRDC: "1"
image: ${EVOBGP_REGISTRY:-git.shts.su/denozord}/evobgp-api:${EVOBGP_IMAGE_TAG:-latest}
restart: unless-stopped
depends_on:
postgres:
@@ -111,12 +112,7 @@ services:
evobgp-scheduler:
profiles: ["reference"]
build:
context: ../..
dockerfile: deploy/docker/gobinary/Dockerfile
args:
BIN: evobgp-scheduler
INSTALL_BIRDC: "0"
image: ${EVOBGP_REGISTRY:-git.shts.su/denozord}/evobgp-scheduler:${EVOBGP_IMAGE_TAG:-latest}
restart: unless-stopped
depends_on:
postgres:
@@ -138,12 +134,7 @@ services:
evobgp-ingest:
profiles: ["reference"]
build:
context: ../..
dockerfile: deploy/docker/gobinary/Dockerfile
args:
BIN: evobgp-ingest
INSTALL_BIRDC: "0"
image: ${EVOBGP_REGISTRY:-git.shts.su/denozord}/evobgp-ingest:${EVOBGP_IMAGE_TAG:-latest}
restart: unless-stopped
depends_on:
postgres:
@@ -161,12 +152,7 @@ services:
evobgp-render:
profiles: ["reference"]
build:
context: ../..
dockerfile: deploy/docker/gobinary/Dockerfile
args:
BIN: evobgp-render
INSTALL_BIRDC: "0"
image: ${EVOBGP_REGISTRY:-git.shts.su/denozord}/evobgp-render:${EVOBGP_IMAGE_TAG:-latest}
restart: unless-stopped
depends_on:
postgres:
@@ -184,12 +170,7 @@ services:
evobgp-deploy:
profiles: ["reference"]
build:
context: ../..
dockerfile: deploy/docker/gobinary/Dockerfile
args:
BIN: evobgp-deploy
INSTALL_BIRDC: "0"
image: ${EVOBGP_REGISTRY:-git.shts.su/denozord}/evobgp-deploy:${EVOBGP_IMAGE_TAG:-latest}
restart: unless-stopped
depends_on:
postgres:
@@ -210,9 +191,7 @@ services:
evobgp-web:
profiles: ["reference"]
build:
context: ../..
dockerfile: deploy/docker/evobgp-web/Dockerfile
image: ${EVOBGP_REGISTRY:-git.shts.su/denozord}/evobgp-web:${EVOBGP_IMAGE_TAG:-latest}
restart: unless-stopped
depends_on:
- evobgp-api
@@ -226,13 +205,8 @@ services:
memory: 128M
evobgp-all:
profiles: ["microvps"]
build:
context: ../..
dockerfile: deploy/docker/gobinary/Dockerfile
args:
BIN: evobgp-all
INSTALL_BIRDC: "1"
profiles: ["microvps", "microvps-full"]
image: ${EVOBGP_REGISTRY:-git.shts.su/denozord}/evobgp-all:${EVOBGP_IMAGE_TAG:-latest}
restart: unless-stopped
depends_on:
postgres:
@@ -259,11 +233,48 @@ services:
cpus: "1.0"
memory: 512M
# Web UI → evobgp-all (образ evobgp-web-all из реестра). Reference: сервис evobgp-web → evobgp-api.
evobgp-web-microvps:
profiles: ["microvps-full"]
image: ${EVOBGP_REGISTRY:-git.shts.su/denozord}/evobgp-web-all:${EVOBGP_IMAGE_TAG:-latest}
restart: unless-stopped
depends_on:
- evobgp-all
ports:
- "3000:80"
logging: *default-logging
deploy:
resources:
limits:
cpus: "0.5"
memory: 128M
prometheus-microvps:
profiles: ["microvps-full"]
image: prom/prometheus:v2.54.1
restart: unless-stopped
depends_on:
- evobgp-all
ports:
- "9090:9090"
volumes:
- ../prometheus/prometheus-microvps.yml:/etc/prometheus/prometheus.yml:ro
- ../prometheus/alerts.yml:/etc/prometheus/alerts.yml:ro
command:
- --config.file=/etc/prometheus/prometheus.yml
- --storage.tsdb.path=/prometheus
- --storage.tsdb.retention.time=7d
- --web.enable-lifecycle
logging: *default-logging
deploy:
resources:
limits:
cpus: "0.35"
memory: 256M
bird2:
profiles: ["reference", "microvps"]
build:
context: ../..
dockerfile: deploy/docker/bird2/Dockerfile
profiles: ["reference", "microvps", "microvps-full"]
image: ${EVOBGP_REGISTRY:-git.shts.su/denozord}/evobgp-bird2:${EVOBGP_IMAGE_TAG:-latest}
restart: unless-stopped
cap_add:
- NET_ADMIN
@@ -282,10 +293,8 @@ services:
memory: 256M
evobgp-agent:
profiles: ["reference", "microvps"]
build:
context: ../..
dockerfile: deploy/docker/evobgp-agent/Dockerfile
profiles: ["reference", "microvps", "microvps-full"]
image: ${EVOBGP_REGISTRY:-git.shts.su/denozord}/evobgp-agent:${EVOBGP_IMAGE_TAG:-latest}
restart: unless-stopped
depends_on:
- bird2