4.0 KiB
title, created, updated, type, tags, confidence, contested, sources
| title | created | updated | type | tags | confidence | contested | sources | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Perfice | 2026-06-07 | 2026-06-07 | app |
|
medium | false |
|
Perfice 🎯
Un habit tracker minimaliste écrit en Dart/Flutter, livré en binaire unique avec SQLite embarqué.
| Métadonnée | Valeur |
|---|---|
| Site web | https://perfice.sakethare.me/ |
| GitHub | https://github.com/saketh-are/perfice |
| License | AGPL-3.0 |
| Langage principal | Dart (Flutter) |
| Étoiles GitHub | ⭐25 |
| Dernière MAJ | 2026-04-22 |
| Catégorie | cat-tracking |
Description
Perfice est un suivi d'habitudes qui se veut volontairement épuré : on crée une habitude, on la coche chaque jour, et l'application trace la régularité sur un calendrier. Contrairement à des concurrents plus lourds (Habitica, Loop Habit Tracker côté Android), Perfice mise sur la simplicité radicale — pas de gamification, pas de système de points, juste la métrique pure.
L'application est écrite en Dart/Flutter et le serveur de synchronisation est compilé en binaire unique Go-like (compilé AOT), ce qui la rend très facile à déployer : un seul fichier exécutable, une base SQLite à côté, et c'est tout. L'interface client (web + mobile) communique via une API REST documentée.
Le projet supporte les habitudes mesurables (compteur, durée, valeur numérique) en plus des simples cases à cocher, ce qui permet de suivre aussi bien « boire 2L d'eau » que « méditer 15 minutes » ou « lire 30 pages ». Les données sont chiffrées au repos par défaut.
Installation
Via Docker (recommandé)
services:
perfice:
container_name: perfice
image: ghcr.io/saketh-are/perfice:latest
restart: unless-stopped
ports:
- "8085:8085"
volumes:
- perfice-data:/data
environment:
- PERFICE_DB_PATH=/data/perfice.db
- PERFICE_ENCRYPTION_KEY=changez-moi-32-chars-min
volumes:
perfice-data:
Installation manuelle
- Télécharger le binaire depuis la page Releases (
perfice-server-linux-x64). - Créer un dossier
/opt/perficeet y placer le binaire. chmod +x perfice-server && ./perfice-server(écoute par défaut sur:8085).- Servir le client web statique (Nginx) pointant vers
perfice-client/.
Configuration
- Générer une clé de chiffrement forte (32 caractères minimum) et l'exporter en variable d'environnement.
- Créer le premier compte via l'interface web, qui devient administrateur.
- Configurer la fréquence de rappel (notifications push via Web Push, nécessite VAPID keys).
- Définir les types d'habitudes globaux : booléen, numérique, durée — chaque utilisateur peut ensuite créer ses propres habitudes basées sur ces types.
Alternatives
Open source
- app-loops — habit tracker Telegram-first en self-hosted
- Habitica — gamifié, RPG-like (le plus connu)
- Loop Habit Tracker — Android uniquement, open source
- Streaks — fork communautaire de Loop
Propriétaires
- Streaks (iOS/macOS) — très poli mais fermé et payant
- Productive — design léché, abonnement obligatoire
Sécurité
- Chiffrement côté serveur des données utilisateur (AES-256) avec la clé d'environnement.
- Authentification par email/mot de passe (bcrypt), sessions JWT.
- Aucune télémétrie par défaut — vérifier la config de l'image Docker.
- En production, placer derrière un reverse proxy HTTPS (Caddy/Traefik).
- Sauvegarder régulièrement le fichier SQLite (le chiffrement rend les sauvegardes inopérantes sans la clé — stocker la clé dans un vault).
Ressources
- Site officiel : https://perfice.sakethare.me/
- Dépôt GitHub : https://github.com/saketh-are/perfice
- Issues : https://github.com/saketh-are/perfice/issues
- selfh.st : https://selfh.st/apps/