You've already forked tribes-plugin-sender
forked from tribes/tribes-plugin-template
bdaa292278
Track active Sender viewers from browser heartbeats and HLS IP fallback, filtering localhost access and exporting a low-cardinality plugin metric for Tribes rollups. Extend the Docker origin/edge E2E harness with VictoriaMetrics/vmagent scraping and assertions for live /metrics export plus compact rollup storage. Update docs for the host metrics path.
147 lines
4.7 KiB
YAML
147 lines
4.7 KiB
YAML
services:
|
|
db-origin:
|
|
image: postgres:17
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: postgres
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
|
interval: 2s
|
|
timeout: 3s
|
|
retries: 30
|
|
|
|
db-edge:
|
|
image: postgres:17
|
|
environment:
|
|
POSTGRES_USER: postgres
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_DB: postgres
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U postgres"]
|
|
interval: 2s
|
|
timeout: 3s
|
|
retries: 30
|
|
|
|
vm-origin:
|
|
image: victoriametrics/victoria-metrics:v1.138.0
|
|
command:
|
|
- -storageDataPath=/victoria-metrics-data
|
|
- -httpListenAddr=:8428
|
|
ports:
|
|
- "48111:8428"
|
|
|
|
vm-edge:
|
|
image: victoriametrics/victoria-metrics:v1.138.0
|
|
command:
|
|
- -storageDataPath=/victoria-metrics-data
|
|
- -httpListenAddr=:8428
|
|
ports:
|
|
- "48112:8428"
|
|
|
|
migrate-origin:
|
|
image: ${TRIBES_SENDER_IMAGE:-tribes-sender-e2e:latest}
|
|
depends_on:
|
|
db-origin:
|
|
condition: service_healthy
|
|
environment: &origin_env
|
|
MIX_ENV: prod
|
|
PHX_SERVER: "true"
|
|
PORT: "4000"
|
|
PHX_HOST: sender-origin
|
|
DATABASE_URL: ecto://postgres:postgres@db-origin:5432/tribes_origin
|
|
PARRHESIA_DATABASE_URL: ecto://postgres:postgres@db-origin:5432/parrhesia_origin
|
|
SECRET_KEY_BASE: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
TOKEN_SIGNING_SECRET: sender-e2e-token-secret
|
|
PARRHESIA_RELAY_URL: ws://sender-origin:4000/nostr/relay
|
|
PARRHESIA_IDENTITY_PRIVATE_KEY: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
|
TRIBES_VICTORIAMETRICS_URL: http://vm-origin:8428
|
|
TRIBES_METRICS_ALLOWED_CIDRS: 0.0.0.0/0,::/0
|
|
command: ["eval", "Tribes.Release.migrate_with_storage_up()"]
|
|
|
|
migrate-edge:
|
|
image: ${TRIBES_SENDER_IMAGE:-tribes-sender-e2e:latest}
|
|
depends_on:
|
|
db-edge:
|
|
condition: service_healthy
|
|
environment:
|
|
<<: *origin_env
|
|
PHX_HOST: sender-edge
|
|
DATABASE_URL: ecto://postgres:postgres@db-edge:5432/tribes_edge
|
|
PARRHESIA_DATABASE_URL: ecto://postgres:postgres@db-edge:5432/parrhesia_edge
|
|
PARRHESIA_RELAY_URL: ws://sender-edge:4000/nostr/relay
|
|
PARRHESIA_IDENTITY_PRIVATE_KEY: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
TRIBES_VICTORIAMETRICS_URL: http://vm-edge:8428
|
|
command: ["eval", "Tribes.Release.migrate_with_storage_up()"]
|
|
|
|
sender-origin:
|
|
image: ${TRIBES_SENDER_IMAGE:-tribes-sender-e2e:latest}
|
|
depends_on:
|
|
db-origin:
|
|
condition: service_healthy
|
|
vm-origin:
|
|
condition: service_started
|
|
environment:
|
|
<<: *origin_env
|
|
TRIBES_BOOTSTRAP_FILE: /etc/tribes/bootstrap.json
|
|
volumes:
|
|
- ${SENDER_PLUGIN_ROOT}/test/e2e/bootstrap/origin.json:/etc/tribes/bootstrap.json:ro
|
|
ports:
|
|
- "46101:4000"
|
|
- "47101:4413"
|
|
- "49135:1935"
|
|
command: ["start"]
|
|
|
|
vmagent-origin:
|
|
image: victoriametrics/vmagent:v1.138.0
|
|
network_mode: "service:sender-origin"
|
|
depends_on:
|
|
sender-origin:
|
|
condition: service_started
|
|
vm-origin:
|
|
condition: service_started
|
|
volumes:
|
|
- ${SENDER_PLUGIN_ROOT}/test/e2e/vmagent/promscrape.yml:/etc/vmagent/promscrape.yml:ro
|
|
command:
|
|
- -promscrape.config=/etc/vmagent/promscrape.yml
|
|
- -remoteWrite.url=http://vm-origin:8428/api/v1/write
|
|
- -httpListenAddr=127.0.0.1:8429
|
|
|
|
sender-edge:
|
|
image: ${TRIBES_SENDER_IMAGE:-tribes-sender-e2e:latest}
|
|
depends_on:
|
|
db-edge:
|
|
condition: service_healthy
|
|
vm-edge:
|
|
condition: service_started
|
|
environment:
|
|
<<: *origin_env
|
|
PHX_HOST: sender-edge
|
|
DATABASE_URL: ecto://postgres:postgres@db-edge:5432/tribes_edge
|
|
PARRHESIA_DATABASE_URL: ecto://postgres:postgres@db-edge:5432/parrhesia_edge
|
|
PARRHESIA_RELAY_URL: ws://sender-edge:4000/nostr/relay
|
|
PARRHESIA_IDENTITY_PRIVATE_KEY: bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
|
|
TRIBES_VICTORIAMETRICS_URL: http://vm-edge:8428
|
|
TRIBES_BOOTSTRAP_FILE: /etc/tribes/bootstrap.json
|
|
volumes:
|
|
- ${SENDER_PLUGIN_ROOT}/test/e2e/bootstrap/edge.json:/etc/tribes/bootstrap.json:ro
|
|
ports:
|
|
- "46102:4000"
|
|
- "47102:4413"
|
|
command: ["start"]
|
|
|
|
vmagent-edge:
|
|
image: victoriametrics/vmagent:v1.138.0
|
|
network_mode: "service:sender-edge"
|
|
depends_on:
|
|
sender-edge:
|
|
condition: service_started
|
|
vm-edge:
|
|
condition: service_started
|
|
volumes:
|
|
- ${SENDER_PLUGIN_ROOT}/test/e2e/vmagent/promscrape.yml:/etc/vmagent/promscrape.yml:ro
|
|
command:
|
|
- -promscrape.config=/etc/vmagent/promscrape.yml
|
|
- -remoteWrite.url=http://vm-edge:8428/api/v1/write
|
|
- -httpListenAddr=127.0.0.1:8429
|