DEV Community

Cover image for Host Your Own TimeTracker on a Raspberry Pi in 10 Minutes. Updated for 2026.
Dries Peeters for Drytrix

Posted on Edited on

Host Your Own TimeTracker on a Raspberry Pi in 10 Minutes. Updated for 2026.

Updated September 2026. TimeTracker has grown a lot since this guide first went up: invoicing, Peppol e-invoicing, mobile and desktop apps, and a much simpler install. The steps below are current.

If you're a freelancer, consultant, or part of a small team, you probably track billable hours somewhere. Most popular tools are SaaS, which means:

  • your time and client data live on someone else's server,
  • you pay per user, every month,
  • and the tool can change its pricing or features whenever it wants.

TimeTracker is an open-source (GPL-3.0), self-hosted alternative. In this guide you'll run it on a Raspberry Pi in about ten minutes, with no git clone and no config editing beyond one secret key.

GitHub logo DRYTRIX / TimeTracker

Self-hosted time tracking & invoicing for freelancers and teams: timers, projects, PDF and Peppol e-invoicing. Open-source Toggl/Clockify alternative.

TimeTracker

Professional Time Tracking & Project Management for Teams

Track time. Manage projects. Generate invoices. All in one place.

πŸ†• What's New β€’ πŸ“₯ Download & Install β€’ πŸš€ Quick Start β€’ ✨ Features β€’ πŸ“Έ Screenshots β€’ πŸ“– Getting Started β€’ πŸ“š Documentation β€’ πŸ—‘οΈ Uninstall β€’ πŸ“‹ Changelog β€’ 🐳 Deploy


🎯 What is TimeTracker?

TimeTracker is a self-hosted, web-based time tracking application designed for freelancers, teams, and businesses who need professional time management with complete control over their data.

Perfect for:

  • πŸ’Ό Freelancers tracking billable hours across multiple clients
  • πŸ‘₯ Small Teams managing projects and tracking productivity
  • 🏒 Agencies needing detailed reporting and client billing
  • πŸ”’ Privacy-focused organizations wanting self-hosted solutions

You can support the project and purchase a key to hide donate prompts in your instance.


πŸ“₯ Download & Install

Method Best for Get started
Docker image Servers, VPS, homelab docker pull ghcr.io/drytrix/timetracker:latest or Docker Hub
…

What you get

  • Timers that run on the server, so they keep going when you close the browser or your laptop sleeps.
  • Projects, clients, tasks and a Kanban board.
  • Invoices generated from tracked time, exported as PDF, with multi-currency and tax support.
  • Peppol and Factur-X/ZUGFeRD e-invoicing (EN 16931), which matters if you invoice businesses in Belgium.
  • Reports and CSV export, plus expenses and mileage.
  • Multi-user with roles, OIDC/SSO and audit logs.
  • A web app, a Chromium browser extension, an Android app and a desktop app (Windows, macOS, Linux), all talking to your own server.

Want to look around first? There's a live demo, no signup: https://timetracker-demo.drytrix.com


What you need

  • A Raspberry Pi 4 with 2 GB RAM or more (a Pi 5 works too). Use a 64-bit OS; the images are published for arm64.
  • Raspberry Pi OS (64-bit) or another Debian-based distro, with network access.

Step 1 β€” Install Docker

If Docker isn't installed yet:

curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
Enter fullscreen mode Exit fullscreen mode

Log out and back in (or reboot) so your user can run Docker. The install script includes the docker compose plugin, so you don't need the separate docker-compose package anymore.

Step 2 β€” Download the compose file

TimeTracker ships a single-file stack meant for NAS boxes and small servers. It pulls the published image and a PostgreSQL database, so there's nothing to build.

mkdir ~/timetracker && cd ~/timetracker
curl -fsSL -o docker-compose.yml \
  https://raw.githubusercontent.com/DRYTRIX/TimeTracker/main/docker-compose.nas.yml
Enter fullscreen mode Exit fullscreen mode

Step 3 β€” Set a secret key

The stack refuses to start without a SECRET_KEY. Generate one and save it in a .env file next to the compose file:

echo "SECRET_KEY=$(openssl rand -hex 32)" > .env
Enter fullscreen mode Exit fullscreen mode

Optional: the defaults are TZ=Europe/Brussels and CURRENCY=EUR. Change them in the same file if you need to:

echo "TZ=Europe/Amsterdam" >> .env
echo "CURRENCY=USD" >> .env
Enter fullscreen mode Exit fullscreen mode

Step 4 β€” Start it

docker compose up -d
Enter fullscreen mode Exit fullscreen mode

The first start takes a minute or two on a Pi while PostgreSQL initialises and migrations run. Check progress with:

docker compose logs -f app
Enter fullscreen mode Exit fullscreen mode

Step 5 β€” Open it

In a browser on your network, go to:

http://<raspberry-pi-ip>:8080
Enter fullscreen mode Exit fullscreen mode

Log in with the username admin. That's the default admin name set by ADMIN_USERNAMES in the compose file; the first login creates the account.

That's it. You're tracking time. πŸŽ‰


First things to set up

  1. Create a client and a project, and set an hourly rate, so timers aren't free-floating.
  2. Start a timer from the dashboard. Close the tab, come back later, and it's still running.
  3. Generate an invoice from the tracked time and export the PDF.
  4. Install the browser extension, desktop app or Android app from GitHub Releases and point it at your Pi's address.

Before you rely on it

  • Access from outside your home network: put it behind a reverse proxy with HTTPS (Caddy, nginx or Traefik), or reach it over a VPN like Tailscale or WireGuard. The compose file uses HTTP-friendly cookie defaults for LAN use; switch those to secure settings when you add HTTPS.
  • Backups: your data lives in Docker volumes (db_data for the database). Back them up, for example with a nightly pg_dump.
  • Updates: pull the latest image and restart:
  docker compose pull && docker compose up -d
Enter fullscreen mode Exit fullscreen mode
  • SD cards wear out. For anything you depend on, boot the Pi from an SSD.

Coming from Toggl, Harvest or Clockify?

TimeTracker can import from the Toggl Track and Harvest APIs directly, and from CSV for everything else. Open Import/Export from the user menu.

Where to go next

What are you running on your Pi? I'm curious what else people keep next to their time tracker. πŸ‘‡

Top comments (1)

Collapse
 
kochmeierd profile image
Daniel Kochmeier •

Love this! TimeTracker looks like a perfect self-hosted solution for freelancers and small teamsβ€”persistent timers, offline support, and full control over data are game-changers. I’d love to see a direct integration with TimeSpin Tracker Dice tooβ€”there’s something so satisfying about tactile, hands-on tracking that makes time management even more fun!