# Why there is no Docker image

> baybay installs by copying files onto ordinary PHP hosting. What that costs, what it buys, and why it will still install in five years.

Last updated 19 August 2026

Because there is nothing to build. baybay is **PHP 8.2 and SQLite** — no Composer, no npm, no bundler, no image. Installing it is copying the files onto a server and pointing it at **public/**, which is the same thing web hosting has meant for twenty years.

## What the install actually is

1. Clone the repository onto a host running PHP 8.2 or newer with **pdo_sqlite** and **openssl**.
2. Copy **.env.example** to **.env** and set the address it will be served from.
3. Run **php bin/baybay key:generate**, then **php bin/baybay migrate**.
4. Run **php bin/baybay household:create --child="Wren"**, which prints your household's URL and its code.
5. Point a web server at **public/**. Apache needs nothing but the **.htaccess** files already there; nginx has an example config in the repository.

There is no step six. Nothing is fetched, compiled, transpiled or minified, and there is no lock file to resolve. The [README](https://github.com/webdevday/baybay) is the version to follow, with the details this page leaves out.

## What that buys

- **It runs on hosting you may already pay for.** Ordinary shared PHP hosting is enough — no VPS, no container runtime, no port to forward. A baby tracker is not a workload that needs a server of its own.
- **Updating is pulling the files.** New migrations apply themselves on the next request. Nothing is rebuilt, so nothing can fail to rebuild.
- **There is no dependency tree to be breached.** Two third-party files are checked in — Chart.js for the dashboard charts and JetBrains Mono for the typeface, each with its licence beside it — and nothing at all is loaded from a CDN, because the app's Content-Security-Policy refuses it. The whole of what runs in your browser is in the repository you cloned.
- **It will still install in five years.** That is the real argument. A build step is a promise that a toolchain will still resolve years from now, and an image is a promise about a base you did not choose. Files and a PHP runtime are the closest thing the web has to a stable target.

## What it costs

Real things, and mostly to people who already have the infrastructure this avoids.

- **No one-command deploy.** If your homelab is a **docker compose up** and a reverse proxy, baybay does not slot into it — you configure a vhost and a certificate yourself, once.
- **The host has to be recent enough.** PHP 8.2 rules out some older shared hosting. Nothing older is supported, and it is not a version we intend to chase backwards.
- **Updates are yours to run,** along with backups. The repository ships **bin/backup.sh** for the second one, and it is worth a cron line — a family's whole record is one file, so a lost file is not recoverable from anything else.
- **No integrations.** No Home Assistant, no watch app, no API for your own scripts. If wiring a tracker into a wider setup is the point for you, this is the wrong one.

## The other open source answer

**Baby Buddy** is the comparison worth making: free, open source, tracks far more than baybay does, and installs as a Docker image or a Python environment. If you are already running containers, that install is one command and this page's argument is worth much less to you. What baybay is better at is the case where you are not — a directory on a host, and a first year's records that live in one file next to it.

[The other half of the comparison](https://baybay.baby/docs/why-only-feeds-and-sleep.md) is what each of them tracks, which is where Baby Buddy wins outright.

## The same application, either way

Nothing is held back from the self-hosted version. There is no licence key, no paid tier, no feature behind a subscription — the hosted plan is the same code on a server we run instead of one you run, and [the export](https://baybay.baby/docs/getting-your-data-out.md) moves a household between them in either direction.

> **Hosted plan**
>
> If none of the above sounds like an evening you want, hosted is $7 a month and takes about a minute: we run the server, take daily backups and apply updates. You can move to your own server later without asking us, because the export hands you the file.

---

From [How to use baybay](https://baybay.baby/docs.md). baybay — Feed and sleep tracking for the first year, logged in two taps. Hosted for $7 a month, or self-hosted free on PHP and SQLite with no Docker and no build step. Everything one family logs lives in a single SQLite file they can export or delete.

Canonical: https://baybay.baby/docs/why-there-is-no-docker
