Log every migration run, when it ran, how long it took, whether it succeeded. Know the exact state of every database in your fleet.
Every operation in Plumb is available through a JSON REST API. No SDK required — use curl, fetch, or any HTTP client.
GET /api/migrations — list all migrations with optional search and filter query parametersPOST /api/migrations — create a new migration recordGET /api/migrations/{id} — retrieve a single migration by IDPUT /api/migrations/{id} — update an existing migrationDELETE /api/migrations/{id} — remove a migrationGET /api/stats — aggregated statistics with status breakdownGET /api/health — health check endpoint for monitoringTeams outgrow spreadsheet-based migrations tracking around the same time they realize SaaS alternatives want $15 to $50 per seat per month. Plumb is a single binary that handles the same job without the recurring bill or the vendor dependency.
Deploy Plumb as a systemd service, a Docker container, or a bare process behind tmux. It reads two environment variables: PORT and DATA_DIR. Everything else is self-contained. The /api/health endpoint returns the service status and migrations count, which you can wire into your existing monitoring stack.
Download the binary and run it. Plumb starts serving immediately with a dashboard at localhost and a REST API for automation. No cloud account, no API keys to provision, no monthly invoice. Your data lives in a SQLite file you can back up, move, or query directly.
GET /api/migrations — List all migrations. Supports ?q=keyword for search and ?status=value for filteringPOST /api/migrations — Create a new migration. Send JSON with at least nameGET /api/migrations/{id} — Fetch one migration by IDPUT /api/migrations/{id} — Update fields on an existing migrationDELETE /api/migrations/{id} — Remove a migrationGET /api/stats — Returns total count and breakdown by statusGET /api/health — Returns {"status":"ok"} for uptime monitoringSelf-hosted database migration tracker. Self-hosted on your infrastructure. Your data never leaves your server.
curl -fsSL https://stockyard.dev/install.sh | sh -s -- --tool plumb
PORT=10010 ./plumb
http://localhost:10010
Single binary. Embedded SQLite. No Docker. No database. No dependencies.
Your license key arrives by email within 5 minutes of checkout. Set it as an environment variable and restart the binary.
export PLUMB_LICENSE_KEY=stockyard_xxxxxxxxxxxxxxxxxxxx ./plumb
No cloud connectivity required. The binary validates the key offline with Ed25519 signatures.