Running Plume
Plume is a single server process. There are no subcommands: running the binary starts the HTTP server, and everything else happens inside that one process. There is no plume serve, plume migrate, plume import, or plume worker.
What happens on startup
Section titled “What happens on startup”When you run Plume (the binary or docker compose up), it:
- Starts the HTTP server on port
8080. - Auto-runs the embedded goose database migrations.
- Bootstraps the admin user from the environment (see Configuration).
- Launches the send worker and the automation worker as in-process goroutines.
CSV import is not a command — it’s the API endpoint POST /api/lists/{listId}/import (or the importer in the UI). See the REST API reference.
How to run it
Section titled “How to run it”Docker (recommended)
Section titled “Docker (recommended)”docker compose up -dPrebuilt binary
Section titled “Prebuilt binary”Download a release binary, set the environment variables, and run it:
./plumeFrom source (development)
Section titled “From source (development)”go run ./cmd/plumeConfiguration
Section titled “Configuration”All configuration is through environment variables — there is no config file and no .env.example. See Configuration for the full list of PLUME_* variables.
Health check
Section titled “Health check”Plume serves a health endpoint at GET /health, suitable for load-balancer and container health probes.