Requirements
Memory and disk use depend on the ingest volume, the number of active streams, and the cache settings in Configuration. Size from observed usage: the Home page shows raw and compressed intake volume, and the process exposes Prometheus metrics at
/metrics. See the Production checklist.
Container image
The image is published asghcr.io/molesignal/molesignal. Each release publishes a version tag (for example 26.1.0.0) and a channel tag (for example alpha). Pin the version tag in production.
RELEASE_CHANNEL (alpha, beta, rc, or stable) labels the deployment maturity and does not change the binary. The web UI is embedded in the binary and served on the HTTP port.
Deployment options
- Docker Compose
- Binary and systemd
- Kubernetes
The repository ships The
deploy/docker/docker-compose.yaml with two profiles. Both start PostgreSQL 17 and RustFS, and run the MoleSignal image from ghcr.io/molesignal/molesignal.multirole profile deploys one container per role. The router publishes the web UI and the HTTP API on 5080 and the OTLP gRPC receiver on 4317. See Role-based deployment.The standalone service publishes 5080 and 5082. It does not publish the OTLP gRPC port 4317. To send OTLP gRPC from the host, add a 4317:4317 mapping to the service.The Compose file is a sandbox: it uses default credentials, a development cipher key, and a development MS_SELF_TELEMETRY_CLUSTER_TOKEN for the multirole profile. Replace them before storing real data. See the Production checklist. The sandbox bucket is private.Ports
Health and metrics
GET /api/v1/healthzis public. It returns200with{"status":"ok"}, or503with areasonwhile the intake WAL replays or when the object store is unreachable. Use it for container and load balancer probes.GET /metricsis public and returns Prometheus metrics. Restrict it at the proxy or network layer.GET /api/v1/readyzandGET /api/v1/versionrequire a bearer token on astandaloneorrouternode.versionreturns the version, commit, build id, release channel, and edition.- A node in a role-split cluster that does not serve the full API answers
GET /api/v1/healthz,GET /api/v1/readyz, andGET /metricswithout authentication on the same port.