Implement Monlet MVP stack and UI updates
This commit is contained in:
113
deploy/docker-compose.showcase.yml
Normal file
113
deploy/docker-compose.showcase.yml
Normal file
@@ -0,0 +1,113 @@
|
||||
# Showcase / e2e override on top of deploy/docker-compose.yml.
|
||||
# Usage:
|
||||
# docker compose -f deploy/docker-compose.yml -f deploy/docker-compose.showcase.yml up -d --build
|
||||
# Demo agents only — production uses systemd-managed Go binary.
|
||||
|
||||
services:
|
||||
server:
|
||||
environment:
|
||||
MONLET_STALE_AFTER_SEC: "20"
|
||||
MONLET_DEAD_AFTER_SEC: "40"
|
||||
MONLET_DETECTOR_TICK_SEC: "5"
|
||||
MONLET_EVENTS_RETENTION_MAX_ROWS: "5000"
|
||||
MONLET_OUTBOX_RETENTION_MAX_ROWS: "1000"
|
||||
MONLET_NOTIFIER_DEBUG_ENABLED: "true"
|
||||
MONLET_NOTIFIER_WEBHOOK_ENABLED: "true"
|
||||
MONLET_NOTIFIER_WEBHOOK_URL: "http://mock-webhook:8080/"
|
||||
|
||||
mock-webhook:
|
||||
image: python:3.14-alpine
|
||||
command: ["python3", "-u", "/opt/mock_webhook.py"]
|
||||
volumes:
|
||||
- ./showcase/mock_webhook.py:/opt/mock_webhook.py:ro
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "wget -qO- --post-data='{}' http://localhost:8080/ >/dev/null 2>&1 || true"]
|
||||
interval: 5s
|
||||
timeout: 3s
|
||||
retries: 5
|
||||
|
||||
agent-mixed:
|
||||
image: monlet-showcase-agent
|
||||
build:
|
||||
context: ..
|
||||
dockerfile: deploy/docker/agent.Dockerfile
|
||||
environment:
|
||||
MONLET_CONFIG: /etc/monlet/agent.toml
|
||||
volumes:
|
||||
- ./showcase/agents/mixed.toml:/etc/monlet/agent.toml:ro
|
||||
- ./showcase/checks:/opt/monlet/checks:ro
|
||||
depends_on:
|
||||
server:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- "9465:9465"
|
||||
|
||||
agent-resolve:
|
||||
image: monlet-showcase-agent
|
||||
environment:
|
||||
MONLET_CONFIG: /etc/monlet/agent.toml
|
||||
volumes:
|
||||
- ./showcase/agents/resolve.toml:/etc/monlet/agent.toml:ro
|
||||
- ./showcase/checks:/opt/monlet/checks:ro
|
||||
- resolve_state:/state
|
||||
depends_on:
|
||||
server:
|
||||
condition: service_healthy
|
||||
agent-mixed:
|
||||
condition: service_started
|
||||
|
||||
agent-prometheus-owned:
|
||||
image: monlet-showcase-agent
|
||||
environment:
|
||||
MONLET_CONFIG: /etc/monlet/agent.toml
|
||||
volumes:
|
||||
- ./showcase/agents/prometheus_owned.toml:/etc/monlet/agent.toml:ro
|
||||
- ./showcase/checks:/opt/monlet/checks:ro
|
||||
depends_on:
|
||||
server:
|
||||
condition: service_healthy
|
||||
agent-mixed:
|
||||
condition: service_started
|
||||
|
||||
agent-stale:
|
||||
image: monlet-showcase-agent
|
||||
environment:
|
||||
MONLET_CONFIG: /etc/monlet/agent.toml
|
||||
volumes:
|
||||
- ./showcase/agents/stale.toml:/etc/monlet/agent.toml:ro
|
||||
- ./showcase/checks:/opt/monlet/checks:ro
|
||||
depends_on:
|
||||
server:
|
||||
condition: service_healthy
|
||||
agent-mixed:
|
||||
condition: service_started
|
||||
|
||||
agent-dead:
|
||||
image: monlet-showcase-agent
|
||||
environment:
|
||||
MONLET_CONFIG: /etc/monlet/agent.toml
|
||||
volumes:
|
||||
- ./showcase/agents/dead.toml:/etc/monlet/agent.toml:ro
|
||||
- ./showcase/checks:/opt/monlet/checks:ro
|
||||
depends_on:
|
||||
server:
|
||||
condition: service_healthy
|
||||
agent-mixed:
|
||||
condition: service_started
|
||||
|
||||
# No depends_on:server — starts in parallel so it must spool events until server is ready.
|
||||
agent-spool-replay:
|
||||
image: monlet-showcase-agent
|
||||
environment:
|
||||
MONLET_CONFIG: /etc/monlet/agent.toml
|
||||
volumes:
|
||||
- ./showcase/agents/spool_replay.toml:/etc/monlet/agent.toml:ro
|
||||
- ./showcase/checks:/opt/monlet/checks:ro
|
||||
- spool_replay_state:/var/lib/monlet-agent
|
||||
depends_on:
|
||||
postgres:
|
||||
condition: service_healthy
|
||||
|
||||
volumes:
|
||||
resolve_state:
|
||||
spool_replay_state:
|
||||
Reference in New Issue
Block a user