Implement Monlet MVP stack and UI updates

This commit is contained in:
Stanislav Rossovskii
2026-05-27 10:01:59 +04:00
parent dcea096327
commit edc51e9c59
145 changed files with 15618 additions and 248 deletions

View 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: