| title | CLI | ||
|---|---|---|---|
| type | reference | ||
| tags |
|
||
| summary | The serve, run-once, lambda, azure-functions, validate-config, generate-config, healthcheck, and version commands, their flags, and signal handling. | ||
| updated | 2026-06-09 |
rss2msg [flags] <command>
Commands
serve Run as a long-lived daemon; one goroutine per feed
run-once Poll every feed once and exit (bounded worker pool)
lambda Run as an AWS Lambda function; one poll cycle per invocation
azure-functions Run as an Azure Functions custom handler; one poll cycle per invocation
validate-config Parse config, dial state + each sink, exit 0/1
generate-config Print an annotated, runnable reference config
healthcheck Probe the health endpoint over HTTP, exit 0/1
version Print version, commit, and build date
Flags
--config <path> Path to config file
(default: ./config.yaml, then /etc/rss2msg/config.yaml)
generate-config (alias gen-config) writes a complete, fully-annotated
reference configuration — the same content as
examples/config.example.yaml — so you can
bootstrap your own config.yaml:
rss2msg generate-config Print the reference config to stdout
rss2msg generate-config > config.yaml
rss2msg generate-config -o config.yaml Write to a file (refuses to clobber)
rss2msg generate-config -o config.yaml -f Overwrite an existing file
Flags
-o, --output <path> Write to this file instead of stdout
-f, --force Overwrite the output file if it already exists
The emitted config is runnable as-is and passes validate-config unchanged.
healthcheck probes a running daemon's health endpoint over HTTP and exits 0
when healthy, non-zero otherwise. It reads the same config as serve to find the
endpoint, rewriting a wildcard listen host (:8080, 0.0.0.0:8080, [::]:8080)
to 127.0.0.1. It exists so the distroless production image — which has no shell,
curl, or wget — can still define a Docker HEALTHCHECK; the production image
wires it in by default (see Run with Docker).
rss2msg healthcheck Probe readiness (/readyz) and exit 0/1
rss2msg healthcheck --probe liveness Probe liveness (/healthz) instead
Flags
--probe <kind> Which probe to check: readiness (default), liveness, startup
--timeout <dur> Overall timeout for the probe request (default 2s)
lambda runs rss2msg inside the AWS Lambda runtime: it does the cold-start wiring
once, then polls every feed once per invocation (the run-once work, bounded by
runtime.run_once_concurrency). Inside Lambda with no
explicit subcommand the binary auto-starts this command, so a bare custom-runtime
bootstrap or a command-less container image needs no wrapper. See
Deploy on AWS Lambda.
azure-functions (alias azure) runs rss2msg as an Azure Functions custom handler:
it does the cold-start wiring once, then serves an HTTP endpoint the Functions host
invokes once per trigger firing, polling every feed once per request (bounded by
runtime.run_once_concurrency). It listens on
127.0.0.1 at the port the host provides via FUNCTIONS_CUSTOMHANDLER_PORT (default
8080 otherwise). Inside the Functions host with no explicit subcommand the binary
auto-starts this command. See Deploy on Azure Functions.
serve exits cleanly on SIGINT/SIGTERM and waits up to
runtime.shutdown_drain_timeout for in-flight publishes to finish.
version reports the build metadata stamped in by the release pipeline (version, git
commit, build date, plus the Go and OS/arch). On a plain go build it prints
dev/none/unknown; release binaries carry the real values. See
Releasing.
- Getting Started — first run of each command.
- Configuration Reference — the config file the
--configflag loads. - Releasing — how version metadata is produced.