Pourquoi centraliser issues, docs et chat dans un seul outil
Un abonnement Linear, un Notion, un Slack et un GitHub Projects représentent facilement 40 à 80 € par développeur et par mois. Au-delà du coût, chaque outil crée un silo : une décision prise en chat n'est pas liée à l'issue qui en découle, et le wiki vit dans un espace séparé du kanban. Huly est publié sous la licence EPL-2.0, très permissive pour le self-hosting, ce qui autorise un déploiement commercial sans redevance de siège.
Ce que Huly consolide dans votre infrastructure
- Issues et sprints — créez des tickets, organisez-les en sprints et en roadmaps avec des tableaux Kanban intégrés, sans quitter l'application.
- Wiki et documentation — rédigez des pages structurées directement dans Huly ; les docs sont versionnées et liées aux projets concernés.
- Chat temps réel — messagerie par canaux et par threads, avec appels vidéo intégrés, pour remplacer Slack sans abonnement supplémentaire.
- Synchronisation GitHub bidirectionnelle — les issues Huly sont mirrées dans GitHub et vice-versa ; les pull requests GitHub apparaissent automatiquement dans les issues liées.
- Time tracking — enregistrez le temps passé sur chaque issue directement depuis l'interface, sans extension tierce.
Prérequis chiffrés : ce que Huly consomme réellement
Huly est une application gourmande en ressources. Le dépôt officiel huly-selfhost indique un minimum absolu de 2 vCPU et 8 Go de RAM — en dessous, les services peuvent cesser de répondre ou échouer au démarrage. En production avec une équipe active, 4 vCPU et 16 Go de RAM sont recommandés. Côté disque, comptez au minimum 20 Go pour les volumes Docker : Elasticsearch seul peut occuper 4 à 6 Go après quelques semaines d'indexation, et le stockage de fichiers (MinIO) croît avec les pièces jointes. La pile comprend plusieurs services principaux — front, account, transactor, workspace, collaborator, elasticsearch, cockroachdb, redpanda et minio — qui s'exécutent simultanément en conteneurs Docker. Un VPS Power ServOrbit (4 vCPU, 8 Go RAM) convient pour un démarrage jusqu'à quinze personnes ; passez au VPS Pro (8 Go+) pour une équipe de trente personnes ou plus.
Déployer Huly sur VPS en cinq étapes
Cloner le dépôt officiel
Récupérez la configuration Docker Compose depuis le dépôt public :
git clone https://github.com/hcengineering/huly-selfhost.git && cd huly-selfhost. Le dépôt contient le fichiercompose.ymlet le scriptsetup.shqui génère automatiquement la configuration nginx et le fichier.env.Exécuter le script de configuration
Lancez
./setup.shet renseignez l'adresse de votre sous-domaine (ex.huly.exemple.com). Le script génère un fichierhuly_v7.confcontenant la version (HULY_VERSION), les secrets JWT, les identifiants MinIO et les chemins de volumes. Activez ensuite la configuration nginx avecsudo ln -s $(pwd)/nginx.conf /etc/nginx/sites-enabled/huly.conf && sudo nginx -s reload.Lancer les services avec Docker Compose
Démarrez l'ensemble de la pile avec
docker compose up -d. Au premier démarrage, Elasticsearch et CockroachDB initialisent leurs données ; comptez deux à trois minutes avant que l'interface soit accessible. Vérifiez l'état des conteneurs avecdocker compose ps— tous doivent afficher le statutrunning.Configurer le reverse proxy HTTPS
Le script
setup.shgénère déjà la configuration nginx avec TLS. Si vous utilisez Caddy ou Traefik, pointez le reverse proxy vers le port interne du servicefront(par défaut8083). Assurez-vous que les WebSockets sont bien transmis via les en-têtesUpgradeetConnection— sans eux, la messagerie temps réel et les appels vidéo ne fonctionneront pas.Créer le premier espace de travail et inviter l'équipe
Ouvrez votre sous-domaine dans un navigateur, créez un compte administrateur, puis générez votre premier espace de travail. Depuis les réglages de l'espace, envoyez des invitations par e-mail à vos collaborateurs. Aucun siège payant n'est comptabilisé : vous ne payez que le stockage et la bande passante consommés sur votre VPS.
Pour activer la synchronisation GitHub, rendez-vous dans Réglages → Intégrations de votre espace de travail Huly. Connectez votre organisation GitHub en quelques clics via OAuth. Les issues créées dans Huly apparaissent alors automatiquement dans le dépôt correspondant, et les pull requests GitHub sont liées aux issues concernées — sans webhook à configurer manuellement.
Configuration post-installation : backup, alertes et mises à jour
Une fois Huly en service, trois tâches de maintenance méritent d'être mises en place sans attendre.
Mettre en place le backup, les alertes et les mises à jour
Automatiser les sauvegardes
Le dépôt fournit deux scripts prêts à l'emploi :
backup-create.shetbackup-restore.sh. Exécutez./backup-create.shdepuis le dossierhuly-selfhostpour créer une archive des volumes (CockroachDB, Elasticsearch, MinIO). Planifiez ce script via cron — par exemple0 3 * * * /opt/huly-selfhost/backup-create.sh >> /var/log/huly-backup.log 2>&1pour un backup quotidien à 3h. Stockez les archives hors du VPS (S3, bucket Hetzner ou disque distant). En cas de migration majeure (ex. v0.6.x → v0.7.x), consultezMIGRATION.mdavant toute restauration.Surveiller la santé des conteneurs
Configurez une alerte simple avec
docker compose psdans un cron toutes les cinq minutes, ou déployez un outil léger comme Uptime Kuma (lui-même disponible en self-hosted sur le même VPS). Surveillez en priorité les servicesaccount,transactoretelasticsearch— ce sont eux qui causent les pannes visibles les plus fréquentes. Les logs de chaque service sont accessibles viadocker compose logs -f <nom-du-service>.Mettre à jour vers une nouvelle version
Avant chaque mise à jour, lisez
MIGRATION.mdpour la version cible. Si la section indique « No changes required », la procédure est simple : éditezHULY_VERSIONdanshuly_v7.confavec le nouveau tag (ex.v0.7.426), puis exécutezgit pull && docker compose pull && docker compose up -d. Pour une montée majeure (0.6.x → 0.7.x), suivez impérativement les étapes de migration documentées, notamment autour de la sectionv0.7.204— une migration directe verrouille les données MongoDB de façon difficile à corriger.
Dépannage : quatre erreurs fréquentes et leurs solutions
Les problèmes les plus courants lors du déploiement de Huly proviennent tous de la même source : un service qui n'a pas fini de s'initialiser, ou une configuration réseau incomplète.
Erreurs fréquentes et remèdes
- L'inscription échoue silencieusement à la création du compte. Cause probable : le service
accountn'est pas joignable ou mal configuré. Vérifiez ses logs avecdocker compose logs -f account— une erreur de callback URL ou un problème de connexion à CockroachDB apparaîtra clairement. Assurez-vous queHULY_HOSTdans votre configuration correspond exactement au sous-domaine publié. - Elasticsearch ne démarre pas (exit code 137 ou OOMKilled). Cause : mémoire insuffisante. Elasticsearch requiert au moins 4 Go de RAM pour lui seul au démarrage. Si votre VPS est en limite, ajoutez
ES_JAVA_OPTS=-Xms1g -Xmx1gdans la sectionenvironmentdu serviceelasticsearchdanscompose.ymlpour limiter son heap Java à 1 Go — au détriment des performances de recherche. - MinIO inaccessible — les pièces jointes ne se chargent pas. Cause : les permissions des volumes ou un problème de résolution DNS interne entre conteneurs. Vérifiez que le service
minioest bien en étatrunningavecdocker compose ps. Si les fichiers uploadés disparaissent après un redémarrage, vérifiez que le chemin de volume danshuly_v7.confest un chemin absolu valide sur l'hôte, et que les permissions sont correctes (chown -R 1000:1000 /var/huly/files). - Les WebSockets ne fonctionnent pas — messagerie et appels vidéo gelés. Cause : le reverse proxy ne transmet pas les en-têtes
Upgrade: websocketetConnection: Upgrade. Dans nginx, ajoutez explicitementproxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade";dans le bloclocation. Avec Caddy, la directivereverse_proxygère les WebSockets automatiquement si la version est récente.
Pour quelle équipe Huly fait-il sens ?
Huly convient particulièrement aux agences et équipes techniques de 5 à 50 personnes qui souhaitent réduire leur empreinte SaaS sans perdre en fonctionnalités. Il est aussi adapté aux équipes manipulant des données sensibles pour qui héberger les échanges et la documentation en interne est une contrainte réglementaire ou contractuelle. Enfin, si la multiplication des abonnements par siège devient un frein à la croissance, un seul serveur VPS suffit à couvrir l'ensemble de l'outillage collaboratif.
Huly vs Linear + Notion + Slack : ce que vous gagnez et ce que vous assumez
Faites défiler le tableau
| Coût mensuel (équipe 10 pers.) | ~600 € (abonnements cumulés) | ~30 € (VPS ServOrbit) |
|---|---|---|
| Données hébergées | Chez les éditeurs SaaS | Sur votre infrastructure |
| Maintenance serveur | Aucune | Mises à jour + backup à gérer |
| Personnalisation | Limitée aux plans tarifaires | Totale (open source EPL-2.0) |
| Ressources requises | Navigateur seul | VPS 2 vCPU / 8 Go RAM minimum |
Pour aller plus loin dans l'automatisation de vos workflows, Huly peut être couplé à un pipeline CI/CD self-hosted. Consultez notre guide sur Woodpecker CI et Forgejo pour mettre en place un pipeline complet sur le même VPS.