Initial vault setup
This commit is contained in:
@@ -0,0 +1,161 @@
|
||||
---
|
||||
title: Wakapi
|
||||
created: 2026-06-07
|
||||
updated: 2026-06-07
|
||||
type: app
|
||||
tags: [catalogue, development, statistics, coding-time, wakatime, productivity]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=Development, https://github.com/muety/wakapi]
|
||||
---
|
||||
|
||||
# 💻 Wakapi
|
||||
|
||||
> **Serveur de statistiques de temps de codage compatible WakaTime**, open source et auto-hébergeable. Suivez le temps passé à coder, par projet, par langage, par branche, avec dashboard web et API.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [wakapi.dev](https://wakapi.dev/) |
|
||||
| **GitHub** | [muety/wakapi](https://github.com/muety/wakapi) |
|
||||
| **License** | MIT |
|
||||
| **Langage** | Go |
|
||||
| **Étoiles GitHub** | 4 336 ⭐ |
|
||||
| **Catégorie** | [[cat-development\|Development]] |
|
||||
| **Note** | ⚠️ 100% open source, **compatibilité totale avec les plugins WakaTime** (VS Code, JetBrains, Vim, etc.). Pas d'édition payante. |
|
||||
|
||||
## 📝 Description
|
||||
|
||||
**Wakapi** est un **clone self-hosted de WakaTime** : un service qui mesure et analyse **combien de temps vous passez à coder**, et sur quoi. Comme WakaTime, il fonctionne avec des **plugins / extensions** installés dans vos IDE (VS Code, IntelliJ, Vim, Sublime, etc.) qui envoient des *heartbeats* anonymes.
|
||||
|
||||
**Pourquoi Wakapi plutôt que WakaTime (officiel) ?** :
|
||||
|
||||
- **Auto-hébergé** : pas d'envoi de données à un serveur tiers
|
||||
- **RGPD-friendly** : données hébergées sur votre infra
|
||||
- **Gratuit à 100%** (WakaTime officiel est freemium : dashboard public au-delà de 7 jours)
|
||||
- **Open source** : auditable
|
||||
- **Même plugins** : pas besoin de réécrire la config WakaTime, juste changer l'URL API
|
||||
|
||||
**Fonctionnalités** :
|
||||
|
||||
- **Dashboard web** : temps total, langages, projets, éditeurs, OS, branches
|
||||
- **Heatmap** : contributions par jour (style GitHub)
|
||||
- **Goals** : objectifs quotidiens / hebdo
|
||||
- **Leaderboards** : classement entre membres d'une équipe
|
||||
- **Projets privés** : exclus des stats
|
||||
- **API REST** : pour intégrer dans d'autres outils
|
||||
- **Export** : JSON, CSV
|
||||
- **Multi-utilisateurs** : si partagé dans une équipe
|
||||
- **Notifications** : webhooks, emails
|
||||
- **Graphiques** : durée, top langages, top projets, top éditeurs
|
||||
|
||||
**Cas d'usage** :
|
||||
|
||||
- Développeur solo : suivre sa productivité, son temps de focus
|
||||
- Equipe : comprendre la répartition du temps (debug vs feature, dette technique vs nouveau)
|
||||
- Facturation : pour les freelances qui facturent au temps passé
|
||||
- Reporting : générer des rapports hebdo/mensuels
|
||||
|
||||
**Plugins compatibles** : tous les éditeurs supportés par WakaTime (VS Code, JetBrains, Vim, Emacs, Sublime, Atom, Brackets…), il suffit de configurer l'URL API et la clé.
|
||||
|
||||
## 🚀 Installation
|
||||
|
||||
### Via Docker Compose (recommandé)
|
||||
|
||||
```yaml
|
||||
# docker-compose.yml
|
||||
version: '3.8'
|
||||
services:
|
||||
wakapi:
|
||||
image: ghcr.io/muety/wakapi:latest
|
||||
container_name: wakapi
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8080:8080"
|
||||
environment:
|
||||
- WAKAPI_PASSWORD_SALT=*** - WAKAPI_JWT_SECRET=*** volumes:
|
||||
- wakapi-data:/data
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.http.routers.wakapi.rule=Host(`wakapi.example.com`)"
|
||||
- "traefik.http.routers.wakapi.entrypoints=websecure"
|
||||
- "traefik.http.services.wakapi.loadbalancer.server.port=8080"
|
||||
networks:
|
||||
- proxy
|
||||
|
||||
volumes:
|
||||
wakapi-data:
|
||||
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
```
|
||||
|
||||
### Binaire standalone
|
||||
|
||||
```bash
|
||||
# Télécharger la dernière release
|
||||
wget https://github.com/muety/wakapi/releases/latest/download/wakapi-linux-amd64
|
||||
chmod +x wakapi-linux-amd64
|
||||
./wakapi-linux-amd64
|
||||
```
|
||||
|
||||
### Configuration du plugin WakaTime (VS Code)
|
||||
|
||||
Dans `settings.json` de VS Code :
|
||||
|
||||
```json
|
||||
{
|
||||
"wakatime.serverUrl": "https://wakapi.example.com",
|
||||
"wakatime.apiKey": "waka_xxxxxxxxxxxxxxxx"
|
||||
}
|
||||
```
|
||||
|
||||
**Clé API** : à récupérer dans `Settings → API Key` du dashboard Wakapi.
|
||||
|
||||
## ⚙️ Configuration
|
||||
|
||||
1. **Premier accès** : créer un compte via l'UI (`/register`)
|
||||
2. **Clé API** : copier la clé générée automatiquement
|
||||
3. **Plugins IDE** : configurer l'URL + la clé (voir section installation)
|
||||
4. **Heartbeat** : envoyé toutes les 2 minutes par défaut quand un fichier est édité
|
||||
5. **Backups** : DB SQLite par défaut (le volume `/data`)
|
||||
6. **Production** : recommandé de migrer vers PostgreSQL pour les comptes nombreux
|
||||
7. **Reverse geocoding** : optionnel, pour localiser les pays des commits
|
||||
|
||||
## 🔗 Alternatives
|
||||
|
||||
- **WakaTime** (SaaS) — Service officiel, freemium, dashboard public au-delà de 7 jours gratuit
|
||||
- **CodeStats** — Multi-utilisateurs natif, mais pas d'auto-hébergement trivial
|
||||
- **ActivityWatch** — Time tracking **général** (pas dev), open source
|
||||
- **Toggl / Clockify** — Time tracking manuel
|
||||
- **Gource** — Visualisation de l'historique Git (autre approche)
|
||||
- **Kodyfire** — Payant
|
||||
- **TimeTagger** — Auto-hébergeable, généraliste, time-tracking
|
||||
|
||||
## 🔒 Sécurité
|
||||
|
||||
- **HTTPS obligatoire** : le plugin envoie l'URL des fichiers édités, donc sensible
|
||||
- **Clé API** : à garder secrète, permet l'envoi de heartbeats
|
||||
- **Auth** : login + password (bcrypt), 2FA non natif
|
||||
- **SSO** : OIDC, OAuth GitHub/GitLab
|
||||
- **CSP** : configurer correctement si reverse proxy
|
||||
- **Données sensibles** : noms de fichiers, projets — ne pas exposer publiquement
|
||||
- **Projets privés** : marquer un repo "privé" dans Wakapi le masque
|
||||
- **Rate limiting** : limiter l'envoi de heartbeats (anti-DOS)
|
||||
|
||||
## 📚 Ressources
|
||||
|
||||
- [Documentation officielle](https://wakapi.dev/docs/)
|
||||
- [GitHub muety/wakapi](https://github.com/muety/wakapi)
|
||||
- [Plugins WakaTime (compatibles)](https://wakatime.com/plugins)
|
||||
- [Démo en ligne](https://wakapi.dev/)
|
||||
|
||||
## 🔗 Pages Liées
|
||||
|
||||
- [[cat-development]] — Catégorie Development
|
||||
- [[app-traefik]] — Reverse proxy
|
||||
- [[app-gitea]] / [[app-forgejo]] / [[app-gitlab]] — Forges (stats par projet)
|
||||
- [[securisation-home-lab]] — Bonnes pratiques
|
||||
- [[recettes-docker-compose]] — Templates Docker
|
||||
Reference in New Issue
Block a user