Self-hosted · Free & open source (MIT) · English & Español

Your pets’ medical record, on your own server.

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.

PetHealth dashboard showing upcoming care, active treatments with daily dose progress and pet cards PetHealth dashboard showing upcoming care, active treatments with daily dose progress and pet cards
PetHealth on a phone PetHealth on a phone

Everything that’s due, at a glance.

  • Self-hosted
  • Open source (MIT)
  • One container
  • SQLite, no external database
  • English & Español
  • Light & dark
  • Works on your phone

Pet care is a lot to remember.

PetHealth remembers it for you, and keeps it on hardware you own.

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.

Missed dates.

The booster that was due last month. “Did anyone give Luna her pill this morning?”

With PetHealth

Reminders that find you.

Dashboard, email digest and your calendar. Tap to log each dose so the whole family knows.

Someone else’s cloud.

Another account, another subscription, your pet’s history on a server you don’t control.

With PetHealth

Your server, your data.

One container and one SQLite file you can back up in seconds.

Features

Everything your pet’s health needs, in one place.

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.

Upcoming care with overdue and upcoming items next to active treatments with today’s dose progress Upcoming care with overdue and upcoming items next to active treatments with today’s dose progress
01 / 08

Try it

Know who gave today’s pill.

Tap to log a dose, or move the date to see how a vaccine’s status changes.

Luna · L-Lysine

Twice a day

0/2 today
Given by

    No doses logged today yet.

    Milo · Bordetella booster

    Next dose in 20 days

    Due soon
    Set the next dose

    Overdue once the date passes · due soon within 30 days · up to date after that.

    And everything else you’d expect.

    • Allergies & conditions

      Shown at the top of the profile and the report.

    • Weight & growth chart

      A log with a chart; the latest entry is the current weight.

    • Attachments

      PDFs and photos on checkups and exams.

    • Vet directory

      Phone, email and address; autocompletes your forms.

    • Share with family

      Viewer or editor access, per pet.

    • Export / import

      Move a pet with all its files as a ZIP.

    • Any species

      Dogs, cats, birds, rabbits, rodents, ferrets, reptiles, fish, horses…

    • Bilingual

      English and Spanish; emails and the calendar follow your language.

    • Dark mode

      Easy on the eyes at the 3 a.m. vet visit.

    • Works on your phone

      Responsive layout, no app store needed.

    • Automatic backups

      Rotating SQLite snapshots of your data.

    • Account protections

      Forced password change, login rate limiting, session revocation.

    • Demo data

      Four example pets on first start, so you can explore first.

    • REST API

      The same JSON API the app uses, documented.

    Install in 60 seconds

    Up and running in a minute.

    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.

    0 of 2 copied
    1. docker-compose.yml
      services:
        pethealth:
          image: martitoci/pethealth:latest
          restart: unless-stopped
          ports:
            - "3000:3001"
          volumes:
            - ./data:/app/data
          env_file: .env
    2. Terminal
      echo "JWT_SECRET=$(openssl rand -hex 32)" > .env
      docker compose up -d

    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.

    For families

    Caring is a team sport.

    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.

    • Read and export : allowed
    • Create and edit records : allowed
    • Log doses : allowed
    • Delete the pet & manage access : not allowed
    How sharing works
    Sharing a pet with family members as viewer or editor

    FAQ

    Good questions.

    Is it free?

    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.

    Can I put it on the internet?

    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.

    Where is my data stored?

    In one folder on your machine: a SQLite database plus the files you upload. Nothing is sent anywhere unless you configure email.

    Does it need the internet?

    No. It works entirely on your local network. Email reminders only need to reach your SMTP server.

    Can I use it on my phone?

    Yes. It’s a responsive web app; open it in your phone’s browser.

    How do I back it up?

    It takes automatic snapshots, and copying the data/ folder is a full backup. See Backups & upgrades.

    Does it run on a Raspberry Pi?

    The published image is amd64 only for now. You can build it from source on other architectures.

    More answers in the FAQ & troubleshooting guide.

    Give your pets the medical record they deserve.

    Free and open source (MIT). Designed for home networks.

    Made with 🐶 🐱 🐰 for the ones who can’t tell us where it hurts.