Initial vault setup
This commit is contained in:
@@ -0,0 +1,135 @@
|
||||
---
|
||||
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]]
|
||||
Reference in New Issue
Block a user