
Should I self-host Toggl Track?
YESworth it
Kimai is a grown-up time tracker: projects, rates, invoices, per-client exports, team support. The apache image plus MariaDB boots in a coffee break and the per-seat subscription becomes zero.
The math (nothing hidden, including your time)
| Toggl Track (Starter, per seat) | $12.00/mo |
| VPS share + storage | −$0.50/mo |
| Your maintenance: 20 min/mo at $20/h | −$6.67/mo |
| Net saving | $4.83/mo |
| Setup: 22 min measured (one-time) | $7.33 |
| Break-even | 1.5 months |
| Markup Index (price ÷ real self-host cost) | 1.7× |
Price: source, checked 2026-08-06. Inputs are stored in git; every number above is derived, never hand-written.
What you lose
- Toggl's one-click browser button polish and Track reminders
- Native mobile apps are community, not first-party
What you're paying Toggl Track for
- time tracking
- projects & clients
- reports & exports
- team timesheets

Ranked alternatives
Timesheets with customers, projects, hourly rates and invoices, on a server that never asks how many seats you have.
Hardware
Runs comfortably on a real VPS (2 GB+).
The tested compose file (our evidence, CI-booted)
# Kimai — time tracking; apache image + mariadb
services:
kimai:
image: kimai/kimai2:apache
container_name: kimai
restart: unless-stopped
depends_on:
kimai-db:
condition: service_healthy
environment:
DATABASE_URL: mysql://kimai:kimai@kimai-db:3306/kimai?charset=utf8mb4&serverVersion=11.4.2-MariaDB
ADMINMAIL: admin@example.com
ADMINPASS: changeme123
ports:
- "8001:8001"
healthcheck:
test: ["CMD-SHELL", "php -r 'exit(@file_get_contents(\"http://localhost:8001/\")!==false?0:1);'"]
interval: 10s
timeout: 10s
retries: 36
start_period: 60s
kimai-db:
image: mariadb:11
restart: unless-stopped
environment:
MARIADB_DATABASE: kimai
MARIADB_USER: kimai
MARIADB_PASSWORD: kimai
MARIADB_ROOT_PASSWORD: kimai-root
volumes:
- kimai-db:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 5s
timeout: 5s
retries: 12
volumes:
kimai-db:
Want a guided install instead? caniselfhostit.com/toggl-track has AI-agent prompts that assume a bare machine — that's their half of the stool, and it's good.
Verification
Protocol v1 · verified by zernonia on 2026-08-10 · setup measured at 22 min · AI assistant: claude-code (allowed & stated)
What broke
- Boot to healthy measured at 69s on the 2GB reference env
Full timed log
# Toggl Track — verdict log - **Date:** 2026-08-10 - **Verdict:** YES — worth it - **Protocol:** v1 (2GB reference env, Docker preinstalled, AI assistant: claude-code) ## Setup evidence - Compose: `compose/toggl-kimai.yml` - Boot to healthy: **69s** measured this session - Setup time recorded: 22 min (boot + configuration to first working workflow) ## What broke / notes - Boot to healthy measured at 69s on the 2GB reference env ## The call Kimai is a grown-up time tracker: projects, rates, invoices, per-client exports, team support. The apache image plus MariaDB boots in a coffee break and the per-seat subscription becomes zero.
Verdict history
- 2026-08-10: unscored → YES — Initial verdict: Kimai is a grown-up time tracker: projects, rates, invoices, per-client exports, team support.