Analytics cookies only (Google Analytics, PostHog). No ad networks, no cross-site tracking. See our privacy policy.
Self-host Traggo
updated Oct 2026deployed by usprices checked · Jul 2026Install verified on Ubuntu 26.04 · Oct 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →
A self-hosted time tracker built around tags instead of tasks and projects: you record tagged time spans, then slice them in dashboards by any tag. One Go binary with a built-in web UI and SQLite, shipped as a single container.
Runs on a VPS from $4/mo (Kamatera 1GB, 1 GB RAM) · prices checked Sep 2026
Our recommendation
Pick Traggo when you want to record where your hours go without building a project hierarchy first: there are no tasks, only tagged time spans, and you add whatever tags suit you (a `project` tag, a `type` tag with values such as `email` or `meeting`), then read the totals in customizable dashboards with diagrams, a list view and a calendar view. It has simple user management and several themes, and it is GPL-3.0 Go that ships as one container with a SQLite database. Our snippet is the install page's Compose example with the image pinned to a release tag and the admin password generated into `.env`. We did not find an upstream RAM minimum, so our 128 MB floor is an estimate. The catalog's Kimai is the heavier, customer-and-project tracker with rates, budgets and invoices; TimeTagger is the other tag-based tracker, aimed at individuals and freelancers.
What you need
Any VPS with at least 128 MB of RAM
A domain you control — most self-hosted setups need HTTPS in front of them
Traggo's install and configuration pages flag these before you rely on it:
non-negotiableThe admin account comes from TRAGGO_DEFAULT_USER_NAME and TRAGGO_DEFAULT_USER_PASS, which the install page sets in its Compose example and tells you to change before starting the server. Our snippet generates a random password into .env; keep that file out of version control.
non-negotiableEverything is one SQLite file under /opt/traggo/data, which our traggo_data volume holds, so back that volume up. The install page says the location can be changed with TRAGGO_DATABASE_CONNECTION.
non-negotiablePort 3030 serves plain HTTP. Put a TLS reverse proxy in front before anyone signs in over the internet.
non-negotiableThe install page's examples use traggo/server:latest; the Docker Hub listing also carries a tag per version, and we pin 0.8.3 (released 2026-03-01). The project follows SemVer, so read the release notes before moving to a newer tag.