Scattered records.
Lab PDFs in your email, vaccine cards in a drawer, the diagnosis in your head.
With PetHealth
One record per pet.
Checkups, prescriptions, lab results, vaccines and files, searchable and printable.
Self-hosted · Free & open source (MIT) · English & Español
PetHealth keeps every vet visit, prescription, lab result, vaccine and parasite treatment in one place, and reminds you before anything is due. One Docker container. Your data never leaves home.
docker run -d -p 3000:3001 -e JWT_SECRET=$(openssl rand -hex 32) -v "$(pwd)/data:/app/data" martitoci/pethealth
Then open http://localhost:3000 — sign in with admin /
admin123 and pick a new password.
Everything that’s due, at a glance.
PetHealth remembers it for you, and keeps it on hardware you own.
Lab PDFs in your email, vaccine cards in a drawer, the diagnosis in your head.
With PetHealth
Checkups, prescriptions, lab results, vaccines and files, searchable and printable.
The booster that was due last month. “Did anyone give Luna her pill this morning?”
With PetHealth
Dashboard, email digest and your calendar. Tap to log each dose so the whole family knows.
Another account, another subscription, your pet’s history on a server you don’t control.
With PetHealth
One container and one SQLite file you can back up in seconds.
Features
From the daily pill to the yearly booster, for every pet in the house.
Overdue and upcoming vet visits, vaccine boosters and parasite treatments for all your pets, sorted by date, with the ongoing treatments right next to them.
Log each dose with one tap from the dashboard or your phone. PetHealth reads the prescription (“every 8 hours”, “twice a day”) and shows today’s progress: 1/2, 2/2 ✓. Each dose records who gave it and when.
Enter values with units and reference ranges and flag the abnormal ones. Any parameter measured more than once gets a trend chart with the normal range highlighted.
Boosters and dewormers show “up to date”, “due soon” or “overdue”. Switching brands doesn’t leave stale reminders behind, and quick buttons set the next dose in 1, 3 or 6 months.
Get an email when something is due in a week, tomorrow or today, without the same overdue nag every day. Or subscribe to a private calendar link, for example in Apple Calendar.
Every checkup, exam, vaccine, treatment and weight in chronological order, filterable by type. Perfect before a vet appointment.
Add an optional cost to visits, exams, vaccines and treatments. PetHealth totals them per year and per category, in your currency.
A clean printable report, with allergies highlighted at the top, ready to “Save as PDF”. Or send a plain-text summary in a message.
Try it
Tap to log a dose, or move the date to see how a vaccine’s status changes.
Twice a day
No doses logged today yet.
Next dose in 20 days
Overdue once the date passes · due soon within 30 days · up to date after that.
Shown at the top of the profile and the report.
A log with a chart; the latest entry is the current weight.
PDFs and photos on checkups and exams.
Phone, email and address; autocompletes your forms.
Viewer or editor access, per pet.
Move a pet with all its files as a ZIP.
Dogs, cats, birds, rabbits, rodents, ferrets, reptiles, fish, horses…
English and Spanish; emails and the calendar follow your language.
Easy on the eyes at the 3 a.m. vet visit.
Responsive layout, no app store needed.
Rotating SQLite snapshots of your data.
Forced password change, login rate limiting, session revocation.
Four example pets on first start, so you can explore first.
The same JSON API the app uses, documented.
Install in 60 seconds
All you need is Docker on a machine in your home network.
For your home network only. PetHealth is built for your home or local network. It hasn’t been through a security audit or penetration testing, so don’t expose it directly to the internet. To use it away from home, connect through a VPN such as WireGuard or Tailscale.
services:
pethealth:
image: martitoci/pethealth:latest
restart: unless-stopped
ports:
- "3000:3001"
volumes:
- ./data:/app/data
env_file: .env
echo "JWT_SECRET=$(openssl rand -hex 32)" > .env
docker compose up -d
docker run -d --name pethealth --restart unless-stopped \
-p 3000:3001 \
-e JWT_SECRET="$(openssl rand -hex 32)" \
-v "$(pwd)/data:/app/data" \
martitoci/pethealth:latest
Open http://localhost:3000 and sign in with admin / admin123
— you’ll choose a new password right away. Four demo pets are waiting for you.
The published image is built for linux/amd64. On other architectures, build it from source.
Full installation guide Next: email reminders, calendar and remote access
For families
Share each pet with your partner, the kids or the pet sitter. Editors can add visits and log doses; viewers can just look. Everyone sees the same reminders, and the dose log shows who gave what and when.
FAQ
Yes. It’s open source under the MIT License: use it, modify it and share it, just keep the credit. You run it on your own computer or server; there’s no paid plan or account to create.
Please don’t. PetHealth hasn’t been through a security audit or penetration testing. Keep it on your home network and use a VPN (WireGuard, Tailscale) to reach it from outside. See Remote access.
In one folder on your machine: a SQLite database plus the files you upload. Nothing is sent anywhere unless you configure email.
No. It works entirely on your local network. Email reminders only need to reach your SMTP server.
Yes. It’s a responsive web app; open it in your phone’s browser.
It takes automatic snapshots, and copying the data/ folder is a full backup. See Backups & upgrades.
The published image is amd64 only for now. You can build it from source on other architectures.
More answers in the FAQ & troubleshooting guide.
Free and open source (MIT). Designed for home networks.
Made with 🐶 🐱 🐰 for the ones who can’t tell us where it hurts.