136 lines
5.1 KiB
Markdown
136 lines
5.1 KiB
Markdown
---
|
|
title: Traggo
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, tracking, time-tracking, go, minimalist]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=Time+Tracking, https://github.com/traggo/server]
|
|
---
|
|
|
|
# ⏱️ Traggo
|
|
|
|
> Time tracking minimaliste et rapide : un bouton pour démarrer, un tag, un projet. L'API REST expose tout pour intégration à vos outils.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [traggo.net](https://traggo.net) |
|
|
| **GitHub** | [traggo/server](https://github.com/traggo/server) |
|
|
| **License** | AGPL-3.0 |
|
|
| **Langage principal** | Go |
|
|
| **Étoiles GitHub** | 85 ⭐ |
|
|
| **Dernière MAJ** | 2026-02-14 |
|
|
| **Catégorie** | [[cat-tracking]] |
|
|
|
|
## Description
|
|
**Traggo** est un outil de **time tracking** radicalement simple, écrit en Go. Le principe : un seul bouton « start », on entre un tag ou un projet, et le chrono tourne. On arrête quand on a fini, on passe au suivant. Pas de catégories arborescentes complexes, pas de hiérarchie à six niveaux : du **temps**, des **tags**, des **projets**, c'est tout.
|
|
|
|
L'interface web est ultra-épurée et fonctionne aussi sur mobile (responsive). L'**API REST** complète permet d'intégrer Traggo avec des outils tiers (Zsh prompt, Raycast, scripts Bash, automatisations Home Assistant) pour logger automatiquement. Les **exports CSV** et les **statistiques par tag** facilitent la facturation client ou le suivi personnel.
|
|
|
|
Traggo est l'anti-Toggl : **pas de SaaS, pas de comptes multiples, pas de verrouillage propriétaire**. Pour les freelances et les développeurs qui veulent juste **mesurer leur temps** sans friction, c'est l'une des meilleures options self-hosted. Le projet est stable, peu maintenu récemment (raison du tag `medium` sur la fraîcheur), mais reste pleinement utilisable.
|
|
|
|
## Installation
|
|
### Via Docker (recommandé)
|
|
```yaml
|
|
version: "3.8"
|
|
services:
|
|
traggo:
|
|
image: ghcr.io/traggo/server:latest
|
|
container_name: traggo
|
|
restart: unless-stopped
|
|
ports:
|
|
- "3030:3030"
|
|
environment:
|
|
- TRAGGO_SERVER_LISTEN=:3030
|
|
- TRAGGO_DATABASE_DRIVER=sqlite
|
|
- TRAGGO_DATABASE_SQLITE_PATH=/data/traggo.db
|
|
- TRAGGO_SECRET=change...es
|
|
volumes:
|
|
- traggo_data:/data
|
|
|
|
# optionnel : reverse-proxy Caddy ou Traefik devant
|
|
caddy:
|
|
image: caddy:2-alpine
|
|
container_name: traggo-caddy
|
|
restart: unless-stopped
|
|
ports:
|
|
- "443:443"
|
|
- "80:80"
|
|
volumes:
|
|
- ./Caddyfile:/etc/caddy/Caddyfile
|
|
- caddy_data:/data
|
|
depends_on:
|
|
- traggo
|
|
|
|
volumes:
|
|
traggo_data:
|
|
caddy_data:
|
|
```
|
|
|
|
### Installation manuelle
|
|
1. Télécharger la dernière release : `wget https://github.com/traggo/server/releases/latest/download/traggo-linux-amd64.tar.gz`
|
|
2. Décompresser : `tar xzf traggo-linux-amd64.tar.gz && sudo mv traggo /usr/local/bin/`
|
|
3. Créer `/etc/traggo.env` avec les variables (cf. template)
|
|
4. Créer le service systemd (`/etc/systemd/system/traggo.service`) :
|
|
```ini
|
|
[Unit]
|
|
Description=Traggo
|
|
After=network.target
|
|
|
|
[Service]
|
|
EnvironmentFile=/etc/traggo.env
|
|
ExecStart=/usr/local/bin/traggo
|
|
Restart=always
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
5. `systemctl daemon-reload && systemctl enable --now traggo`
|
|
6. Ouvrir le port 3030 derrière un reverse proxy HTTPS (Caddy / Traefik / Nginx)
|
|
|
|
## Configuration
|
|
- Créer le **premier utilisateur** depuis l'UI web
|
|
- Définir un **secret fort** (`TRAGGO_SECRET`) pour signer les sessions
|
|
- Activer l'**authentification OIDC** (Authentik, Keycloak) en configurant les variables
|
|
- Configurer les **tags récurrents** dans l'UI (par projet, par client)
|
|
- Brancher un **reverse proxy HTTPS** (Traefik + Let's Encrypt)
|
|
- Utiliser l'**API** (token Bearer) depuis vos scripts (Zsh, Raycast, Alfred)
|
|
- Activer les **exports CSV** depuis l'UI (par jour, par tag)
|
|
|
|
## Alternatives
|
|
### Open source
|
|
- **Kimai** — time tracking + facturation, plus complet
|
|
- **Anuko Time Tracker** — PHP, plus ancien
|
|
- **TimeTagger** — Python, single-user friendly
|
|
- **Wakapi** — time tracking pour développeurs (WakaTime-like)
|
|
- **Titra** — time tracking pour équipes
|
|
|
|
### Propriétaires
|
|
- **Toggl Track** — référence cloud, freemium
|
|
- **Harvest** — facturation intégrée, équipes
|
|
- **Clockify** — freemium très généreux
|
|
- **RescueTime** — tracking passif de l'activité PC
|
|
- **WakaTime** — tracking auto pour développeurs
|
|
|
|
## Sécurité
|
|
- Changer le **TRAGGO_SECRET** et le garder secret (utilisé pour les sessions)
|
|
- Activer **HTTPS obligatoire** (Traefik / Caddy / Let's Encrypt)
|
|
- Activer la **2FA** (TOTP) sur les comptes utilisateurs
|
|
- Restreindre l'accès à l'**API** par IP source ou via OIDC reverse proxy
|
|
- Sauvegarder **traggo.db** régulièrement (SQLite = simple `cp` suffit)
|
|
- Choisir un mot de passe **fort** pour le compte admin
|
|
- Surveiller l'**espace disque** (SQLite grossit avec l'historique)
|
|
|
|
## Ressources
|
|
- [Site officiel](https://traggo.net)
|
|
- [Documentation](https://docs.traggo.net)
|
|
- [Code source](https://github.com/traggo/server)
|
|
- [API Reference](https://docs.traggo.net/api/)
|
|
- [Issue tracker](https://github.com/traggo/server/issues)
|
|
|
|
## Pages Liées
|
|
- [[cat-tracking]]
|
|
- [[recettes-docker-compose]]
|
|
- [[cat-time-tracking]]
|