Home
Softono

Bar Keep

Open source MIT HTML
22
Stars
1
Forks
2
Issues
0
Watchers
2 months
Last Commit

 About Bar Keep

A simple inventory manager for your home bar

Platforms

Web Self-hosted Docker

Languages

HTML

Links

Need Help Installing Bar Keep?

We provide expert installation service for this software. Our team will install, configure, and secure Bar Keep on your server. plans start at just $30.

BarKeep

A home bar inventory tracker. Built with Rails, runs in Docker.

GHCR License

What it does

  • 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

Running with Docker

# 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:latest

The database is created and migrated automatically on first boot.

Docker Compose

See compose.yml in the repo for an example. Set your env vars and run:

docker compose up -d

Environment variables

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

Image tags

  • latest — most recent release
  • vX.Y.Z — pinned version

Development

Requires Ruby 4.0+ and SQLite3.

bundle install
rails db:setup
rails server

Running checks

bin/rubocop          # lint
bin/brakeman         # security scan
bin/rails test       # tests

Default login

After db:seed:

  • Username: admin
  • Password: changeme123

Change this after first login.

Data

Everything lives in ./storage — SQLite databases, uploaded images, session data. Back this up and mount the same volume when updating containers.