Simple Database for tracking Rabbits at Casa Del Bunnies
- Python 47.3%
- HTML 47.1%
- CSS 5.5%
- Dockerfile 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
The hyperlink on the hutch name in the Needs Attention tables had reappeared after the sortable-columns merge; removed again — the adjacent Manage button already covers that link. Also cap each table (cleaning, playtime) to the 10 most urgent rows so the dashboard stays scannable when many hutches are overdue. |
||
| .forgejo/workflows | ||
| app | ||
| .env.example | ||
| .gitignore | ||
| .python-version | ||
| Containerfile | ||
| podman-compose.yml | ||
| pyproject.toml | ||
| README.md | ||
| renovate.json | ||
| uv.lock | ||
RabbitDB
A rabbit rescue management system for db.binky.casa. Tracks rabbits, hutches, adoptions, and staff — built for day-to-day operations at a small rescue.
Features
- Rabbits — track status (Resident, Fostering, Rehomed, Passed), gender, date of birth, neutered status, parentage, and hutch assignment
- Hutches — manage hutch letters and floors, mark each floor boundary as a ramp or a divider to split or join living spaces, track cleaning and playtime schedules, see occupancy at a glance
- Adoptions — record adoption events and link them to rabbits
- Employees — store staff records with hourly rates and employment dates
- Timesheets — log hours worked per employee with automatic earnings calculation
- Payouts — record payments made to staff and track amounts owed
- Activity Log — audit trail of all changes across the system
Access Roles
| Role | Access |
|---|---|
viewer |
Read-only access to rabbits and hutches |
staff |
Can edit rabbits and hutches, log own timesheets, view own employee record |
admin |
Full access including adoptions, employees, payouts, and user management |
Stack
- FastAPI — backend framework
- SQLAlchemy 2.0 — ORM
- PostgreSQL — database
- Jinja2 — server-side templates
- HTMX — dynamic UI without a JS framework
- Catppuccin Mocha — colour theme
Running locally
Requires uv and a running PostgreSQL instance.
cp .env.example .env
# edit .env with your DATABASE_URL and SECRET_KEY
uv run fastapi dev app/main.py
Or with Docker/Podman:
podman-compose up
First run
A fresh database has no user accounts, so there is nothing to sign in with. The login page will say so; create the first user from the command line:
uv run rabbitdb --create-user
Inside a container:
podman exec -it <container> rabbitdb --create-user
It prompts for a username, a role (admin, staff or viewer) and a password.
The password is only ever prompted for, never passed as an argument, so it stays
out of your shell history and the process list. Use the same command any time you
need to add another account without going through the web UI.
Created with Claude Code