Pourquoi TREK plutôt qu'un abonnement SaaS
Linear, Asana, Monday.com — les outils de gestion de projets SaaS facturent par siège et augmentent leurs tarifs régulièrement. TREK inverse le modèle : vous hébergez l'application sur votre propre VPS, vos données ne quittent jamais votre infrastructure, et le coût mensuel est celui du VPS, pas celui des sièges.
Avec 14 k+ étoiles GitHub et une licence AGPL-3.0, TREK est un projet communautaire actif. La version 4.3.3 est stable, Docker-native, et ne requiert aucune base de données externe : SQLite est intégré dans l'image.
Ce que vous obtenez avec TREK self-hosted
- Kanban illimité — créez autant de projets et de colonnes que nécessaire, sans limite de siège.
- Jalons et sprints — planifiez par cycles (sprint/jalon), visualisez la progression dans le tableau de bord.
- Gestion d'équipe — invitez des membres, assignez des rôles (Admin, Membre, Observateur) par projet.
- API REST — intégrez vos pipelines CI/CD pour créer des tickets ou mettre à jour des statuts automatiquement.
- OIDC / SSO — connectez Authentik, Pocket ID ou Keycloak pour une connexion centralisée.
- Pièces jointes — téléversez fichiers et captures d'écran directement sur les tickets.
- SQLite intégré — pas de base de données externe, sauvegarde en une commande.
Prérequis
Vous avez besoin d'un VPS Ubuntu 24.04 avec au moins 1 Go de RAM et 1 Go d'espace disque (plus selon vos pièces jointes). Docker et le plugin Compose doivent être installés :
curl -fsSL https://get.docker.com | shAucun nom de domaine n'est requis pour l'installation initiale — TREK est accessible via un tunnel SSH.
Installation de TREK
Créer le répertoire et le fichier Compose
Sur le serveur, créez un répertoire dédié :
mkdir -p /opt/trek && cd /opt/trekCréez le fichier
/opt/trek/docker-compose.yml:services: trek: image: mauriceboe/trek:4.3.3 restart: unless-stopped ports: - "127.0.0.1:3000:3000" environment: NODE_ENV: production ENCRYPTION_KEY: "changez-cette-cle-par-une-valeur-aleatoire-32c" ADMIN_EMAIL: [email protected] ADMIN_PASSWORD: "MotDePasseAdmin42!" TRUST_PROXY: "1" volumes: - trek-data:/app/data - trek-uploads:/app/uploads volumes: trek-data: {} trek-uploads: {}⚠️ En production, remplacez
ENCRYPTION_KEYpar une chaîne aléatoire de 32 caractères minimum et choisissez un mot de passe administrateur fort.Démarrer TREK
Lancez le conteneur :
docker compose up -dTREK télécharge l'image (~462 Mo), initialise SQLite et démarre Node.js. Les migrations Drizzle ORM s'exécutent au premier lancement. Attendez 30 à 45 secondes avant d'accéder à l'interface.
Vérifiez le démarrage :
docker compose logs -f trekCherchez la ligne
Server listening on port 3000— c'est le signal que TREK est prêt.Accéder à l'interface
Ouvrez un tunnel SSH depuis votre machine locale :
ssh -L 3000:127.0.0.1:3000 root@<ip-de-votre-vps>Puis ouvrez
http://localhost:3000dans votre navigateur. La page de connexion TREK apparaît. Connectez-vous avec[email protected]et le mot de passe défini dansADMIN_PASSWORD.Créer votre premier projet
Après la connexion :
1. Cliquez sur Nouvel espace de travail → donnez-lui un nom.
2. Cliquez sur Nouveau projet → choisissez le modèle Kanban.
3. Ajoutez votre premier ticket dans la colonne À faire.Vous êtes opérationnel. Invitez vos collaborateurs depuis Paramètres → Membres.
Configurer un domaine et nginx
Pour accéder à TREK depuis n'importe quel appareil sans tunnel SSH, attachez un domaine et configurez nginx comme reverse proxy. Voici un exemple de bloc server nginx pour HTTPS :
server {
listen 443 ssl;
server_name trek.votre-domaine.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}Ajoutez ensuite APP_URL: https://trek.votre-domaine.com dans les variables d'environnement du service TREK pour que les liens d'invitation et les notifications OIDC soient corrects.
Sauvegarder et maintenir
TREK stocke ses données dans deux volumes Docker : trek-data (base SQLite) et trek-uploads (pièces jointes). Sauvegardez les deux :
# Base de données
docker run --rm -v trek_trek-data:/data -v /backup:/backup alpine \
tar czf /backup/trek-data-$(date +%Y%m%d).tar.gz -C /data .
# Pièces jointes
docker run --rm -v trek_trek-uploads:/data -v /backup:/backup alpine \
tar czf /backup/trek-uploads-$(date +%Y%m%d).tar.gz -C /data .Pour mettre à jour TREK vers une nouvelle version, modifiez le tag d'image dans docker-compose.yml, puis :
docker compose pull && docker compose up -dLes migrations SQLite s'appliquent automatiquement au démarrage.