
Deploy Kept
Home inventory with photos, QR labels, AI assistant and MCP
Just deployed
/data
Just deployed
/var/lib/postgresql
Deploy and Host self hosted Kept (Home Inventory) on Railway
This template runs Kept, an open-source home inventory, on Railway with its own PostgreSQL database and a persistent volume. It suits households who want a self-hosted inventory without setting up a server themselves.
About Hosting Kept open-source software on Railway (self hosted Kept template)
Kept is open-source home inventory software you can run yourself, and this Railway template deploys the unchanged upstream 1.14.3 app beside a pgvector PostgreSQL 18 database.
Why Deploy Kept, the open-source home inventory on Railway (Railway Free Trial)
Homebox is a solid open-source home inventory, and Kept covers similar ground with photos, receipts, QR labels and an optional AI assistant.
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 Kept 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.
Railway vs Other Hosting Providers and VPS for Kept self hosting
| Provider | What You Get with Railway | What You Get with the Other Provider |
|---|---|---|
| DigitalOcean | Kept and pgvector PostgreSQL 18 from one template, each with a volume. | A droplet you size, patch and secure yourself. |
| AWS | Two linked services with private networking and no VPC setup. | Wide control over networking and storage, with more to configure first. |
| Hetzner | Setup code, database logins and volumes handled for you. | Low-cost servers where you install Docker, upgrades and backups yourself. |
Pick Railway for a handled setup, or a raw VPS for full machine control.
Common Use Cases for hosted Kept
- Cataloguing things with photos and receipts: Photograph a thing, receipt or room, online or offline, and let your chosen AI provider suggest details to confirm. Without an AI key you type them in.
- Printing QR labels for storage boxes: Print a short ID and QR code for each box, then scan one to open its contents. Label rolls and sheets both work.
- Tracking household warranties and lending: Attach warranties, manuals and paperwork to the things they cover, get reminders before they lapse, and record who borrowed what.
- Planning a house move: Number each box, print a label and contents sheet for it, track boxes in the van, and unpack by scanning each one as it comes off.
- Querying inventory with an optional AI assistant or MCP client: Ask about your belongings in plain words, or connect an MCP-capable AI client at /mcp. Proposed changes wait for your approval.
Dependencies for Kept Docker hosted on Railway
Two services make up the template: the Kept app and a Postgres database, each with its own volume.
Deployment Dependencies for Managed Kept Service (Kept app and upstream-pinned pgvector PostgreSQL 18, with a volume for each)
The Kept service runs ghcr.io/onepush-dev/kept:1.14.3, listens on port 8080, uses /readyz for health checks and mounts a volume at /data. Kept waits for Postgres when it starts, so there is no manual ordering step.
Implementation Details for Kept (Using onepush-dev startup packaging around the unchanged upstream 1.14.3 app)
Kept reads KEPT_PUBLIC_URL, KEPT_SETUP_CODE and four database passwords: KEPT_DB_OWNER_PASSWORD, KEPT_DB_APP_PASSWORD, KEPT_DB_AUTH_PASSWORD and KEPT_DB_SYSTEM_PASSWORD. Each one is a separate random value and must stay distinct. PGHOST points Kept at the private Postgres service, and PGPASSWORD holds the Postgres superuser password, used only at startup to create the database and logins. The startup wrapper then builds the connection URLs from the generated passwords and unsets the raw superuser password before the server runs. Postgres uses POSTGRES_PASSWORD for its own superuser login. The four least-privilege logins are kept_owner for migrations and backups, kept_app for inventory data, kept_auth for accounts and sessions, and kept_system for background jobs. The wrapper creates them on first start.
How does Kept compare against other tools
Kept vs Homebox (Homebox Alternative)
- Scope: Kept adds a 3D location map, printed box QR labels, and an archive plus trash you can restore from.
- AI and automation: Kept can use an AI provider you choose to suggest details from photos, and it offers an MCP server for AI agents. Changes wait for your approval.
- Where Homebox fits better: if you want the simplest setup with fewer features, its smaller surface area is easier to learn.
Kept vs Snipe-IT (Snipe-IT Alternative)
- Focus: Snipe-IT is aimed at IT assets such as laptops and licences. Kept targets household possessions, with receipts, warranties, lending and moving-house tools.
- Household features: Kept supports shared locations with roles, numbered moving boxes, and reminders by mail, push or calendar feed.
- Where Snipe-IT fits better: for tracking company hardware.
Kept vs a spreadsheet (Spreadsheet Alternative)
- Structure: a spreadsheet is manually structured, so you design every column yourself. Kept provides locations, boxes and things as built-in objects with photos and documents attached.
- Labels: Kept prints a QR code for each box, so scanning it opens the contents on your phone.
- Where a spreadsheet wins: it is free and already on your computer for a small list.
Kept with Docker Compose vs Kept on Railway (Railway Alternative)
- Setup: Compose needs a server you manage. This Railway template deploys the app and PostgreSQL 18, each with a volume, and no passwords to create by hand.
- Database: both use the same upstream pgvector PostgreSQL 18 pin and Kept's four least-privilege logins.
- Operations: on Railway you pay for usage and handle your own backups and upgrades. On your own hardware, costs depend on that hardware and you keep full control.
How to use Kept on Railway?
- Open the public domain Railway generated for the Kept service. You will land on the setup page.
- Enter the KEPT_SETUP_CODE value from the Kept service Variables tab on that page. The same code also appears in the deploy logs.
- Create the first admin account with your own email, password and name. That account becomes the instance admin.
- Download the recovery kit from Admin, or run
kept admin recovery-kitin the service shell. It contains the keys stored at /data/config/secrets.json, which you need to read sealed values and backups, so store the kit somewhere safe and keep that file protected. - Create your Home location, then add your first inventory items, boxes and photos.
- Add an AI provider key in location settings only if you want the assistant. Kept works fully without one.
Check that the app is healthy:
curl https://your-domain/readyz
How to self host Kept on other VPS Services (Kept self hosting guide)
Clone the Repository
You do not need to clone the source tree. Upstream publishes a ready-to-run Compose file for each release, so fetch the pinned v1.14.3 version into an empty folder.
mkdir kept && cd kept
curl -fsSLO https://raw.githubusercontent.com/keptinventory/kept/v1.14.3/compose.yaml
Install Dependencies
You need Docker with Compose v2 on the host. Kept and its PostgreSQL database run as containers, so nothing else needs installing by hand.
Configure Environment Variables
Run the one-shot init service.
docker compose run --rm init
Start the Kept Application
Start the stack, then print the recovery kit.
docker compose up -d
docker compose exec kept kept admin recovery-kit
Open the address, enter the setup code and create the first account, which becomes the instance admin. Store the recovery kit off this server.
Official Pricing of Kept (Kept pricing)
Kept is AGPL-3.0 open-source software and free to self-host. The source offer for this packaging is at https://github.com/onepush-dev/kept. You pay for the infrastructure it runs on, and for any AI model or mail provider you choose to add.
Kept hosted vs self hosted comparison (Pricing, features, costs, and more)
Kept is free AGPL-3.0 software, so self-hosting has no licence cost.
Monthly cost of self hosting Kept on Railway
Railway bills on usage: RAM and CPU for the Kept app and Postgres, volume growth from photos and documents, and any extra services.
System Requirements for Hosting Kept on a VPS
Plan a small machine with Docker and Compose v2, disk room for photos, and backups kept off the server.
Frequently Asked Questions (FAQs)
Where do I find the setup code?
It is the KEPT_SETUP_CODE variable on the Kept service, also printed in the deploy logs. Enter it on the setup page before creating the admin account.
Do I need an AI API key to use Kept?
No. An AI provider is optional and can be added per location in Settings, and without one you simply type in the details yourself. The AI assistant and MCP server are extras, not requirements.
Why are there four database passwords?
Upstream Kept uses four least-privilege database logins, one each for the owner, app, auth and system roles, so no single login can do everything.
What happens if I lose the encryption keys?
Sealed values and encrypted backups can no longer be read without the keys in /data/config/secrets.json.
Can I print and scan QR labels from my phone?
Yes, once the site is served over HTTPS, the camera and install features work from a phone. Labels carry a short ID and a QR code, so scanning one opens the box it is attached to.
How do I upgrade Postgres to a new major version?
Major Postgres upgrades need a dump and restore, not an in-place swap. Restore into a new database service, then point Kept at it.
Template Content
