selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

sprout-track logo

Self-host sprout-track

1.6.8

Baby activity tracker for families and caretakers

ReleaseSource AvailableOther
Updated12 hours ago
LanguageTypescript
Setup difficultyModerate
MobilePWA
ThemeDark mode
Stars
398
Port
3000 (HTTP web interface)
Docker
sprouttrack/sprout-track
Install with Docker
Daily Dashboard — DesktopDaily Dashboard — MobileCalendar — DesktopCalendar — MobileGrowth ReportFeeding & Sleep ReportActivity ReportPDF Report CardFull Log & ExportNursery Mode

What is sprout-track?

Sprout Track is a baby activity tracking application that runs on your own server. It lets families and caretakers log feeds, naps, diaper changes, baths, measurements, medicine, milestones, and other activities. The app provides a daily dashboard with live statistics, a monthly calendar with color-coded entries, growth charts with percentile curves, and PDF report cards. A fullscreen Nursery Mode works well on a tablet at the crib. The interface supports a dark theme and five languages. Push notifications alert caretakers when activities are recorded. A REST webhook API with API keys enables integration with Home Assistant, Grafana, NFC tags, and other automation tools. The software installs via Docker (with SQLite or PostgreSQL 14+) or locally with Node.js 22+. Self-hosting has no cost; a managed cloud version is offered at $2.99 per month. The license is a custom non-commercial share-alike license.

Should you self-host sprout-track?

sprout-track scores 48/100 on selfhost.directory (how scoring works) and ranks #15 of 31 in Health & Fitness. It has 398 GitHub stars.

It shipped 20 stable releases in the past year. The latest, 1.6.8, came out on 12 October 2026. New versions land roughly every 4 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is Other-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is wger (73/100, 7 199 stars). It scores higher overall, so compare the two before you pick. See sprout-track vs wger side by side.

Features

  • Activity Tracking
  • Backup & Restore
  • Calendar View
  • Contact Tracking
  • Full Activity Log & Export
  • Growth Charts & Reports
  • Huckleberry Import
  • Multi-Caretaker PINs
  • Multi-Family Support
  • Multi-language Support
  • Nursery Mode
  • Push Notifications
  • REST Webhook API

sprout-track README

How to install sprout-track

Install sprout-track with Docker

Docker Engine
Environment variables
DATABASE_PROVIDER, DATABASE_URL, LOG_DATABASE_URL, TZ, etc.

docker run -d
--name sprout-track
--restart unless-stopped
-p 3000:3000
-v sprout-track-db:/db
-v sprout-track-env:/app/env
-v sprout-track-files:/app/Files
sprouttrack/sprout-track:latest

SQLite default, persistent volumes for database, env, and files

How to configure sprout-track

  • APP_URLApplication URL for cron job to reach notification API

    Application URL for cron job to reach notification API

  • AUTH_LIFE86400Access token validity period in seconds

    Access token validity period in seconds

  • COOKIE_SECUREfalseRequire HTTPS for cookies

    Require HTTPS for cookies

    values: true, false

  • DATABASE_PROVIDERsqliteDatabase backend: sqlite or postgresql

    Database backend: sqlite or postgresql

    values: sqlite, postgresql

  • DATABASE_URLfile:../db/baby-tracker.db (local), file:/db/baby-tracker.db (Docker)Database connection string

    Database connection string

  • ENABLE_NOTIFICATIONStrueBuild notification infrastructure into the app

    Build notification infrastructure into the app

    values: true, false

  • ENC_HASHAuto-generatedAES-256 encryption key for file sensitive database field encryption

    AES-256 encryption key for file sensitive database field encryption

  • HOOKS_RATE_LIMIT_READS_PER_MINUTE60Webhook API read rate limit per key

    Webhook API read rate limit per key

  • HOOKS_RATE_LIMIT_WRITES_PER_MINUTE30Webhook API write rate limit per key

    Webhook API write rate limit per key

  • JWT_SECRETAuto-generatedSecret used to sign JWT auth tokens

    Secret used to sign JWT auth tokens

  • LOG_DATABASE_URLfile:../db/api-logs.db (local), file:/db/baby-tracker-logs.db (Docker)Connection string for the API log database

    Connection string for the API log database

  • NODE_ENVproduction (Docker)Node environment

    Node environment

    values: development, production

  • NOTIFICATION_CRON_SECRETAuto-generatedBearer token securing the notification cron endpoint

    Bearer token securing the notification cron endpoint

  • PORT3000Host port mapping (Docker only)

    Host port mapping (Docker only)

  • REFRESH_TOKEN_LIFE604800Refresh token lifetime in seconds

    Refresh token lifetime in seconds

  • ROOT_DOMAINRoot domain for the application

    Root domain for the application

  • TZTimezone for the container

    Timezone for the container

  • VAPID_PRIVATE_KEYVAPID private key for push subscriptions

    VAPID private key for push subscriptions

  • VAPID_PUBLIC_KEYVAPID public key for push subscriptions

    VAPID public key for push subscriptions

  • VAPID_SUBJECTmailto:notifications@sprouttrack.appmailto: URI identifying the application

    mailto: URI identifying the application

sprout-track releases & version history

More in Home Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…