Files
git.stella-ops.org/devops/services/signals-ops
2026-01-25 23:27:41 +02:00
..
2025-12-26 18:11:06 +02:00
2025-12-26 18:11:06 +02:00
2025-12-26 18:11:06 +02:00
2026-01-25 23:27:41 +02:00
2026-01-25 23:27:41 +02:00

Signals CI/CD & Local Stack (DEVOPS-SIG-26-001)

Artifacts:

  • Compose stack: devops/compose/docker-compose.stella-ops.yml (Signals API + PostgreSQL + Valkey + artifact volume).
  • Sample config: devops/services/signals-ops/signals.yaml (mounted into the container at /app/signals.yaml if desired).
  • Dockerfile: devops/services/signals-ops/Dockerfile (multi-stage build on .NET 10 RC).
  • Build/export helper: devops/tools/signals-scripts/build.sh (saves image tar to out/signals/signals-image.tar).
  • Span sink stack: devops/services/signals-ops/docker-compose.spansink.yml + otel-spansink.yaml to collect OTLP traces (Excititor /v1/vex/observations/**) and write NDJSON to spansink-data volume.
  • Grafana dashboard stub: devops/services/signals-ops/dashboards/excititor-vex-traces.json (import into Tempo-enabled Grafana).

Quick start (offline-friendly):

# build image
devops/tools/signals-scripts/build.sh

# run stack
docker compose -f devops/compose/docker-compose.stella-ops.yml up -d signals

# hit health
curl -s http://localhost:5088/health

Configuration (ENV or YAML):

  • Signals__Storage__Driver default postgres
  • Signals__Storage__ConnectionString default Host=stellaops-postgres;Port=5432;Database=signals;Username=stellaops;Password=stellaops
  • Signals__Cache__ConnectionString default stellaops-valkey:6379
  • Signals__Storage__RootPath default /data/artifacts
  • Authority disabled by default for local; enable with Signals__Authority__Enabled=true and issuer settings.

CI workflow:

  • .gitea/workflows/signals-ci.yml restores, builds, tests, builds container, and uploads signals-image.tar artifact.

Dependencies:

  • PostgreSQL 18.1 (primary data store)
  • Valkey 9.0.1 (cache, BSD-3 licensed Redis fork)
  • Artifact volume signals_artifacts for callgraph blobs.