This content originally appeared on DEV Community and was authored by dries peeters
If you’re a freelancer, consultant, or part of a small team, you probably use a time tracker for billable hours, reporting, and invoicing. The problem? Most popular tools are SaaS-based, meaning:
- You lose control of your data.
- Timers break if your browser or PC crashes.
- You’re locked into a subscription.
That’s why I built TimeTracker — an open-source, self-hosted time tracking app designed for freelancers and small teams who want a lightweight, reliable alternative they can run anywhere.
In this guide, I’ll show you how to set up TimeTracker on a Raspberry Pi in under 10 minutes using Docker.
Why TimeTracker?
- Persistent timers — your tracking continues even if your browser closes or the Pi reboots.
- Multi-user support — admins and regular users with projects, clients, and billing.
- Comprehensive reports — breakdown by user/project with CSV export.
- Offline-friendly — no cloud dependency, works on LAN or completely off-grid.
- Docker-ready — runs on Raspberry Pi, VPS, or any Linux box.
Prerequisites
- A Raspberry Pi (Pi 4 recommended, but Pi 3 works too).
- Docker & Docker Compose installed. If you don’t have them yet:
curl -sSL https://get.docker.com | sh
sudo usermod -aG docker $USER
sudo apt-get install -y python3-pip
sudo pip3 install docker-compose
Install TimeTracker on Raspberry Pi
- Clone the repository:
git clone https://github.com/DRYTRIX/TimeTracker.git
cd TimeTracker
- Copy and edit environment config:
cp .env.example .env
Here you can adjust settings like database type, time zone, and currency.
For a quick Pi setup, the defaults work fine (SQLite DB).
- Start the app with Docker Compose:
docker-compose up -d
- Access TimeTracker: Open a browser and go to:
http://<raspberry-pi-ip>:8080
Log in with the default admin account or create one.
That’s it — you’re tracking time!
Using TimeTracker
- Create clients and projects.
- Start/stop timers that run persistently on the server.
- Generate reports (per project, per user).
- Export CSV files for billing or external analysis.
The UI is lightweight and responsive, so you can use it on desktop, tablet, or even your phone.
What’s Next?
TimeTracker is evolving. Upcoming features include:
- Mobile apps (iOS & Android).
- Slack / Zapier integrations.
- Advanced analytics dashboards.
- Multi-language support.
If you’re interested, you can:
Star the repo on GitHub → TimeTracker
- File issues / suggest features.
- Contribute code, docs, or translations.
Final Thoughts
Self-hosting your time tracker means you own your data, keep working offline, and avoid SaaS lock-in. With Docker, it’s dead simple to deploy — and a Raspberry Pi makes it a cheap, always-on solution.
Give TimeTracker a try and let me know what you think:
https://github.com/DRYTRIX/TimeTracker
This content originally appeared on DEV Community and was authored by dries peeters