Peptide Pitstop race garage — the flythrough, shown as a still because reduced motion is enabled.
Scroll
Self-hosted · open source · Docker · no telemetry

Peptide/Pitstop

The free, open-source, self-hosted peptide & GLP-1 tracker. Reconstitution and draw-volume math, dose logging, titration stacks, bloodwork, and plasma-level modelling — one Docker container, installable as an offline PWA, living entirely on infrastructure you own.

Own your own data

Your data never leaves your server

It runs on a machine you own. There's no account to sign up for, nothing phones home, and no company in the middle who could be breached or change the terms. Your notes and lab results are encrypted before they're saved, and you can export or delete the lot whenever you like.

This week’s schedule — demo data

Dosing

Reconstitution engine

Concentration, draw volume and syringe markings computed in exact decimal math. Handles reconstituted and premixed vials, and shows the markings against the barrel you're actually drawing into.

0 mcg —
BPC-157 at 2 mg/mL — draw 0.20 mL on a 1 mL U-100

Bloodwork

Biomarker trends

Lab panels over time, in-range summaries and a comparison matrix backed by a curated biomarker library. Doses, labs, journal and wearables all export to CSV or PDF.

Blood panel against reference ranges — demo data

Analytics

Plasma-level modelling

Single-compartment plasma estimates from your own dose history and each peptide's half-life, plus adherence and a dose-history heatmap. Blends are charted per component, each on its own half-life. Computed locally from your database.

now
Plasma levels & adherence — three peptides, forecast past “now”

Travel

Your day, not the server's

Each dose freezes the calendar day and timezone it was logged in, so history stays on the days you actually dosed. Today re-anchors on wake, at local midnight, and when the device changes zone.

Run it yourself

Deployment is a single container. Bring your own database file, point a tunnel at it, and you're running.

Everything it does

The full garage

Everything a self-hosted peptide tracker needs — and a few things that only matter once you've been running one for a while.

Dosing

Reconstitution engine

Concentration, draw volume, and syringe markings computed with decimal math. Handles reconstituted and premixed vials.

Dosing

Nasal sprays, counted in pumps

Set a peptide’s route to nasal and add your spray pump by its volume per spray. The log form shows the dose as a pump count with the millilitres beside it and skips the injection site. The bottle is filled from a reconstituted vial, so the app tracks what’s left like any other preparation.

Protocols

Titration & stacks

Multi-peptide schedules with ramping steps and a live calc-chart showing how each phase is computed. Log a dose that matches the next step and it offers to bring that phase forward.

Costs

What it actually costs

Shipping belongs to the order, not the vial — so it's entered once and shared across every line it delivered. Cost per dose is charged by delivered mass, so it stays right through a half-used vial or a titration change.

Costs

Sundries and waste

Needles, syringes, swabs and sharps bins count too. Product a finished vial never delivered is valued separately instead of inflating the doses you did take — and a vial you got 70% through isn't called waste.

Protocols

Change the plan safely

Switch 4× weekly to daily and the old course is completed, not rewritten — a linked replacement picks up at the dose you’re actually on. Your logged doses stay with the protocol they were taken under, and adherence doesn’t reset because you changed your schedule.

Cycles

Run eight, break four

Give a protocol a course-level on/off plan in weeks and it tracks where you are — day-of-cycle chip, a banner before the planned last dose and when a break is over. Suggested lengths come from the peptide's own literature, quoted and sourced, as reference only.

Schedules

Roll from a late dose

Take an every-N-days dose late and rolling protocols offer to re-base the schedule from the day you actually dosed, with the new dates previewed. Fixed-anchor protocols keep their rigid grid.

Schedules

Smooth your week

Weekly protocols tend to pile onto the same days. The Protocols page counts doses per day for the coming week and suggests moving a protocol to other weekdays so the load spreads out. Amounts, times and doses per week stay the same. Apply the whole plan or one protocol at a time, or keep a protocol where it is and it drops out of future suggestions.

Bloodwork

Biomarker trends

Lab panels over time, in-range summaries, and a comparison matrix backed by a curated biomarker library.

Analytics

Plasma modelling

Adherence, a dose-history heatmap, and single-compartment plasma-level estimates from your history and each peptide's half-life — with blends charted per component.

Travel

Timezone-proof days

Each dose freezes its calendar day and zone at log time. Every date-driven screen anchors to your day, not the server's — abroad, the app stops highlighting tomorrow's column.

Body

DEXA scans, judged against noise

Record whole-body DEXA scans and resting metabolic rate (RMR) tests, or upload the scanner's PDF and confirm what it parsed. Changes between scans are checked against the scanner's least-significant-change bands, so a small lean-mass move is called within noise rather than a result. Illness and travel windows are shaded and left out of the intervals.

Body

A regional body figure

One body figure lights bone, lean and fat per region from the scan's own numbers, with the eight-region table beside it and a change view against the previous scan. Both the scan and RMR tables export to CSV and appear in the doctor report.

Garmin

Training readiness beside your doses

On watches that report them, the sync sidecar also pulls training readiness, the acute-to-chronic load ratio, endurance and hill scores, fitness age and lactate threshold. A Training card charts them next to sleep, HRV and body battery, so a rough week shows up beside the protocol that ran through it.

Garmin

ECG import from the PDF

Drop the PDF the Garmin ECG app exports onto the journal page. The app reads the classification, heart rate and the traced waveform, then redraws the three strips on a proper grid. It skips the printed name and date of birth, and the clinical fields are encrypted at rest.

Integrations

HA & Garmin

Optional Home Assistant dose reminders and Garmin wellness sync — your webhook, your credentials, your schedule. Reminders name your device's clock when you're travelling.

Experience

Installable PWA

Add to your home screen and it works offline. A version heartbeat picks up new deploys on its own, so an installed app can't sit on a stale bundle for days.

A look inside

Dark & light. Desk & phone.

A motorsport-inspired “pit-wall” design — carbon and race-orange — with a clean light theme. Dark desktop screens appear in the flythrough above. Screenshots use demo data, except the ECG strips, which are the maintainer's own recording with no name or date of birth on them.

Analytics and plasma-level modelling chart in the light theme (demo data) The same analytics and plasma-level modelling screen in the dark carbon theme (demo data)
Analytics & plasmaDark

Body, training and heart

Regional body figure from a DEXA scan in the light theme, with the eight-region fat, lean and bone table (demo data) The same regional body figure and DEXA region table in the dark carbon theme (demo data)
Body composition & the regional body figureDark
Training card with Garmin training readiness, load ratio, endurance and hill scores, fitness age and lactate threshold (demo data)
Garmin training metrics (demo data)
Three ECG strips redrawn from an imported Garmin ECG PDF, with the classification and average heart rate above them
Garmin ECG import, the maintainer's own recording

Weekly planning and nasal sprays

Logging a nasal dose on the Today screen on mobile: the dose is shown as 2 pumps (0.2 mL) on a 0.1 mL spray pump, with no injection site (demo data)
A nasal dose, counted in pumps (demo data)
Smooth your week panel on the Protocols page: doses per day for the coming week and a suggested move of one weekly protocol from Monday and Thursday to Tuesday and Friday (demo data)
Smooth your week on the Protocols page (demo data)

On your phone

Peptide Pitstop installable PWA — Today screen on mobile (demo data)
Logging a peptide dose on mobile with reconstitution math (demo data)
Adherence heatmap and plasma-level analytics on mobile (demo data)
Bloodwork and biomarker trends on mobile in the light theme (demo data)

Common questions

Self-hosted, open source, yours

Straight answers for self-hosters comparing a free, open-source, Docker-deployable peptide & GLP-1 tracker.

Is there a self-hosted peptide tracker?

Yes — Peptide Pitstop is a self-hosted peptide & GLP-1 tracker that runs entirely on your own hardware as a single Docker container. No cloud account, no managed backend: you host it, back it up, and control it yourself.

Is it free and open source?

100% free and open source under AGPL-3.0. No subscriptions, accounts, or paywalls — read, audit, and fork the full source on GitHub.

How do I deploy it with Docker?

Deployment is a single Docker container. Pull the image, point it at a database file, and open it in any browser — full Docker, env-var, and demo-seed steps are in the README. Installs as a PWA for offline use too.

Is my peptide & GLP-1 data private?

Your data never leaves your server. Identifying free-text and lab values are encrypted with AES-256-GCM before they touch disk, there is no telemetry, and fonts are self-hosted — nothing reaches a third party.

Can it do reconstitution math?

Yes — the reconstitution engine computes concentration, draw volume, and syringe markings with exact decimal math (no floating-point drift), for both reconstituted and premixed vials.

Can it track nasal sprays?

Yes. Set the peptide’s route to nasal and add your spray pump with its volume per spray. The log form shows the dose in pumps with the millilitres beside it, and no injection site is recorded. The spray is filled from a reconstituted vial, so the app keeps track of what is left in it.

Can it track what my protocol costs?

Yes. Record each order as an invoice and shipping is shared across every line it delivered, so a vial's cost includes its honest share of the courier fee. Cost per dose is charged by delivered mass — correct through a half-used vial or a titration change — and needles, syringes and swabs are counted too. A vial with no invoice is reported as uncosted rather than assumed free.

Can it track DEXA scans and body composition?

Yes. Record whole-body DEXA scans and resting metabolic rate (RMR) tests, or upload the scanner's PDF and confirm what it parsed. Changes between scans are judged against the scanner's least-significant-change bands, so a small move is reported as within noise rather than a result. A regional body figure shows bone, lean and fat per region, and both tables export to CSV.

Can it import a Garmin ECG?

Yes. Export the PDF from the Garmin ECG app and drop it onto the journal page. The app reads the classification, average heart rate and the traced waveform, then draws the strips in the app. It never reads the printed name or date of birth, and the clinical fields are encrypted before they reach disk.

Does it work if I travel?

Yes. Each dose freezes the calendar day and timezone it was logged in, so your history stays on the days you actually dosed. The Today view tracks your device's day and refreshes on wake, at local midnight, and when your timezone changes.

What can I track with Peptide Pitstop?

Reconstitution and draw-volume math, dose logs for injections, oral peptides and nasal sprays, titration and multi-peptide stacks, cycle plans, day-rotation suggestions that spread weekly protocols across the week, landed cost per vial and per dose including shipping and consumables, bloodwork and biomarker trends, single-compartment plasma-level modelling, an adherence heatmap, DEXA body composition with RMR tests, Garmin wellness and training metrics, and Garmin ECG recordings. Everything exports to CSV or PDF.