---
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
