Log medications, symptoms, measurements, appointments. Your health data on your hardware. No app with a $10/mo subscription and a privacy policy you haven't read.
Every operation in Apothecary is available through a JSON REST API. No SDK required — use curl, fetch, or any HTTP client.
GET /api/medications — list all medications with optional search and filter query parametersPOST /api/medications — create a new medication recordGET /api/medications/{id} — retrieve a single medication by IDPUT /api/medications/{id} — update an existing medicationDELETE /api/medications/{id} — remove a medicationGET /api/stats — aggregated statisticsGET /api/health — health check endpoint for monitoringA solo developer built a weekend project that needed medications tracking. Instead of spinning up Postgres and writing an admin panel, they added Apothecary as a sidecar process. The REST API covered every operation the project needed. Development time saved: roughly a full day.
Teams outgrow spreadsheet-based medications tracking around the same time they realize SaaS alternatives want $15 to $50 per seat per month. Apothecary is a single binary that handles the same job without the recurring bill or the vendor dependency.
GET /api/medications — List all medications. Supports ?q=keyword for searchPOST /api/medications — Create a new medication. Send JSON with at least nameGET /api/medications/{id} — Fetch one medication by IDPUT /api/medications/{id} — Update fields on an existing medicationDELETE /api/medications/{id} — Remove a medicationGET /api/stats — Returns total countGET /api/health — Returns {"status":"ok"} for uptime monitoringDeploy Apothecary 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 medications count, which you can wire into your existing monitoring stack.
Self-hosted health and medication tracker. Self-hosted on your infrastructure. Your data never leaves your server.
curl -fsSL https://stockyard.dev/install.sh | sh -s -- --tool apothecary
PORT=10200 ./apothecary
http://localhost:10200
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 APOTHECARY_LICENSE_KEY=stockyard_xxxxxxxxxxxxxxxxxxxx ./apothecary
No cloud connectivity required. The binary validates the key offline with Ed25519 signatures.