A home bar inventory tracker. Built with Rails, runs in Docker.
- Track bottles, ingredients, and supplies with quantities and images
- Categorize items (spirits, mixers, syrups, etc.)
- Low stock and out-of-stock alerts
- Filter and search across your inventory
- Multi-user with admin, regular, and read-only guest accounts
- Dark/light theme, works on mobile
# Generate a secret key
docker run --rm ghcr.io/nckslvrmn/bar_keep:latest rails secret
# Run it
docker run -d \
--name barkeep \
-p 3000:3000 \
-v $(pwd)/storage:/app/storage \
-e SECRET_KEY_BASE=<your-secret-key> \
-e ALLOWED_HOST=barkeep.yourdomain.com \
-e FORCE_SSL=false \
ghcr.io/nckslvrmn/bar_keep:latestThe database is created and migrated automatically on first boot.
See compose.yml in the repo for an example. Set your env vars and run:
docker compose up -d| Variable | Required | Description |
|---|---|---|
SECRET_KEY_BASE |
Yes | Generate with rails secret |
ALLOWED_HOST |
No | Hostname for production (default: localhost) |
FORCE_SSL |
No | Set false if behind a reverse proxy (default: true) |
RAILS_ENV |
No | Default: production |
latest— most recent releasevX.Y.Z— pinned version
Requires Ruby 4.0+ and SQLite3.
bundle install
rails db:setup
rails serverbin/rubocop # lint
bin/brakeman # security scan
bin/rails test # testsAfter db:seed:
- Username:
admin - Password:
changeme123
Change this after first login.
Everything lives in ./storage — SQLite databases, uploaded images, session data. Back this up and mount the same volume when updating containers.