Deploy Trug
Trug is a self-hosted shared shopping list for one household.
Just deployed
/data
Deploy and Host Trug with Railway
Trug is a self-hosted shared shopping list for one household. Everyone gets the list on their phone as an installable PWA that works with no signal in the shop and syncs when it's back. Sign-in is passkeys only — no passwords, no accounts to manage. Assistants like Claude can read and edit the list over MCP. Open source, MIT-licensed, and small enough to understand end to end.
About Hosting Trug
Trug is a single container: a FastAPI server, a SQLite database, and the compiled
web app in one image, with no external services to wire up. Railway attaches a
volume at /data where the database lives, so your list survives redeploys and
restarts. Deploying from this template generates all three access tokens for you
and pins them into the service's Variables tab — there are no logs to grep — and
resolves the passkey settings automatically from your generated domain, which is
the one piece of configuration that is fiddly to get right by hand. It runs
comfortably inside the Hobby plan's included $5 of monthly usage. The volume is
your data: Railway's volume backups cover it, and there's a restore guide in the
repo.
Common Use Cases
- A household shopping list that everyone has on their phone, grouped into aisles in the order you actually walk the shop, and usable offline mid-aisle.
- Voice capture from a smart ring or Home Assistant — a webhook endpoint turns "milk, eggs and bread" into three items without anyone unlocking a phone.
- Adding things via Claude or any MCP client — "add what I need for a carbonara" fills the list, iconed and sorted, over a linked connector.
- An open-source escape from Google Keep, Bring! or AnyList for people who would rather their shopping habits stayed on hardware they control.
Dependencies for Trug Hosting
- FastAPI and SQLite (bundled in the image — nothing to provision)
- A Railway volume mounted at
/datafor the database - Optional: an API key for any OpenAI-compatible LLM, used only to guess item icons and aisles. Trug is fully functional without one — a built-in icon map covers the common groceries.
Deployment Dependencies
- Trug on GitHub — source, issues and releases
- Container image on GHCR — multi-arch, published on tagged releases
- Connecting AI assistants over MCP
- Backup and restore
Why Deploy Trug on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Trug on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
