Repolode
DRYTRIX

DRYTRIX/TimeTracker

Self-hosted time tracking and invoicing app for freelancers and teams, with timers, projects, PDF invoices and Peppol e-invoicing.

Open-source alternative to:Toggl TrackClockify

Stars
640
Forks
82
Open issues
4
Last commit
2 hours ago

What is it?

TimeTracker is a self-hosted, web-based application for logging work hours, managing projects and clients, and turning tracked time into invoices. Timers run on the server, so they keep going after the browser is closed, and the app is deployed with Docker Compose alongside PostgreSQL.

Beyond time tracking, it includes invoice generation from logged hours, PDF export, expense and payment tracking, budget alerts, and reports with CSV and PDF export. For e-invoicing, it can send invoices over the Peppol network and embed EN 16931 XML (ZugFerd / Factur-X) in PDFs. Multi-user access uses role-based permissions, with username-only login or OIDC/SSO. A REST API with token scopes, a Flutter mobile app and an Electron desktop app are also provided.

Key features

  • 01Server-side timers that keep running after the browser closes
  • 02Invoices generated from tracked time, with PDF export
  • 03Peppol sending and ZugFerd / Factur-X embedding (EN 16931)
  • 04Expense, payment and budget tracking with alerts
  • 05Role-based permissions with username or OIDC/SSO login
  • 06REST API with token scopes, plus Flutter and Electron apps

Use cases

  • Freelancers billing hours across several clients
  • Small agencies tracking project budgets and client invoices
  • Organizations in Peppol-based e-invoicing markets that want to self-send invoices
  • Homelab or NAS users who want time tracking without per-seat SaaS fees

Quick start

  1. 1

    Download the compose file, create the .env with a secret key, and start the stack with Docker Compose

    curl -fsSLO https://raw.githubusercontent.com/drytrix/TimeTracker/main/docker-compose.nas.yml
  2. 2

    Generate the SECRET_KEY into .env

    echo "SECRET_KEY=$(openssl rand -hex 32)" > .env
  3. 3

    Start the app with Docker Compose

    docker compose -f docker-compose.nas.yml up -d
  4. 4

    Open http://localhost:8080 in a browser; the first login creates the admin account

Things to know

  • Requires Docker to run the default setup.
  • Peppol e-invoicing setup involves additional configuration via the Peppol Bridge.

In collections

Topics

FAQ

What is TimeTracker?
Self-hosted time tracking and invoicing app for freelancers and teams, with timers, projects, PDF invoices and Peppol e-invoicing. TimeTracker is a self-hosted, web-based application for logging work hours, managing projects and clients, and turning tracked time into invoices. Timers run on the server, so they keep going after the browser is closed, and the app is deployed with Docker Compose alongside PostgreSQL.
Is TimeTracker free to use? What license does it have?
TimeTracker is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
Is TimeTracker still maintained?
Actively maintained. The last commit to TimeTracker was on Nov 7, 2026.
What can I use TimeTracker for?
Freelancers billing hours across several clients Small agencies tracking project budgets and client invoices Organizations in Peppol-based e-invoicing markets that want to self-send invoices Homelab or NAS users who want time tracking without per-seat SaaS fees
How do I install TimeTracker?
Download the compose file, create the .env with a secret key, and start the stack with Docker Compose: curl -fsSLO https://raw.githubusercontent.com/drytrix/TimeTracker/main/docker-compose.nas.yml Generate the SECRET_KEY into .env: echo "SECRET_KEY=$(openssl rand -hex 32)" > .env Start the app with Docker Compose: docker compose -f docker-compose.nas.yml up -d Open http://localhost:8080 in a browser; the first login creates the admin account
Where can I get TimeTracker?
The source code and installation instructions are on GitHub: https://github.com/DRYTRIX/TimeTracker

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects