Tutoriel Linux : auto-héberger Windshift (équivalent de Jira)

Windshift est un outil de gestion de travail auto-hébergé et open source, publié sous licence AGPL-3.0, pensé pour les équipes qui veulent garder le contrôle de leurs données plutôt que de les confier à un service cloud tiers. Le projet est développé en Go et Svelte, et se présente comme une alternative crédible à Jira, Asana ou ClickUp pour qui souhaite retrouver des concepts familiers (sprints, backlogs, hiérarchies, tableaux) sur sa propre infrastructure.

L’argument central de Windshift tient en une phrase : reprendre le vocabulaire et les habitudes que les équipes ont déjà, sans accepter les conditions d’hébergement, de tarification ou de gouvernance d’Atlassian.

Là où la migration vers Jira Cloud impose des coûts par siège et des politiques de résidence de données qu’on ne maîtrise pas, Windshift propose la même structure mentale sur du matériel qu’on administre soi-même.

L’outil couvre un spectre assez large pour un projet de cette taille : tableaux kanban, jalons, portails clients, suivi du temps, et même un module de gestion des tests qui relie les cas de test aux exigences qui les ont motivés. Cette dernière fonctionnalité est suffisamment rare pour être signalée, même si elle reste à un stade précoce.

La promesse technique se résume à une simplicité assumée. Un seul binaire Go embarque le frontend Svelte compilé, avec SQLite par défaut et PostgreSQL en option si l’équipe grandit. Cela signifie qu’un Raspberry Pi suffit pour commencer, sans couche d’orchestration ni base de données externe à maintenir. Pour les équipes qui n’ont pas d’administrateur système dédié, c’est un argument qui pèse. L’import depuis Jira est intégré pour faciliter la transition : issues, commentaires, pièces jointes, worklogs, tableaux et sprints sont repris avec leur contexte.

Sur le plan de la gouvernance, Windshift permet le choix du modèle d’IA qui traitera les données de travail. On peut utiliser un modèle local ou son propre compte fournisseur, ce qui évite de voir ses données de projet alimenter un système de crédits opaque. Pour les secteurs régulés ou les équipes qui doivent documenter précisément où vivent leurs données, c’est un argument important.

Le projet reste jeune. Première version en décembre 2025, une centaine d’étoiles sur GitHub, une communauté encore réduite. Ce n’est pas un défaut en soi, mais cela signifie que la documentation, les intégrations tierces et l’écosystème de plugins sont moins matures que ceux des concurrents. Les équipes qui cherchent un outil avec dix ans de recul et une armée de contributeurs ne le trouveront pas ici. Celles qui acceptent de participer à l’adoption d’un projet en construction, en échange d’une architecture propre et d’une gouvernance transparente, y trouveront probablement leur compte.

Installation de Windshift

L’installation se fait grâce à docker, il faut donc que votre serveur soit prêt à lancer des services docker. Si ce n’est pas le cas, vous trouverez le guide d’installation docker sous Ubuntu ici et celui de Devuan ici.

Dans un répertoire dédié, nous allons créer un fichier docker-compose.yml avec le contenu suivant :

services:
  windshift:
    image: ghcr.io/windshiftapp/windshift:${WINDSHIFT_VERSION}
    container_name: windshift
    restart: unless-stopped
    ports:
      - "8101:8080"
    tmpfs:
      - /tmp:exec,size=64M
    mem_limit: ${WINDSHIFT_CONTAINER_MEMORY_LIMIT:-2g}
    environment:
      - BASE_URL=${BASE_URL}
      - SSO_SECRET=${SSO_SECRET}
      - SESSION_IP_BINDING=${SESSION_IP_BINDING:-log}
      - WEBAUTHN_RP_ID=${WEBAUTHN_RP_ID}
      - TLS_SKIP_VERIFY=${TLS_SKIP_VERIFY:-false}
      - WINDSHIFT_MEMORY_LIMIT_MB=${WINDSHIFT_MEMORY_LIMIT_MB:-2048}
      - DB_PATH=/data/windshift.db
      - ATTACHMENT_PATH=/data/attachments
    volumes:
      - ./data:/data
    healthcheck:
      test: ["CMD", "/windshift", "healthcheck"]
      interval: 15s
      timeout: 5s
      retries: 5
      start_period: 30s

Dans le même répertoire, nous allons créer un fichier .env qui contient :

WINDSHIFT_VERSION=v0.8.8
WINDSHIFT_MEMORY_LIMIT_MB=2048
WINDSHIFT_CONTAINER_MEMORY_LIMIT=2g

BASE_URL=http://localhost:8101
WEBAUTHN_RP_ID=localhost
SSO_SECRET=fccc1c0ef894d0f6b17a4039bbf690d5b7fdc216c3d5dfaa4bfcea8de3197b70
SESSION_IP_BINDING=log
TLS_SKIP_VERIFY=false

Puis nous allons taper dans le shell la séquence :

mkdir data
sudo chown -R 65534:65534 ./data
docker compose up -d

Pour utiliser le produit, il suffit maintenant de se connecter avec son navigateur sur http://localhost:8101

On choisit la langue française et on clique sur « Suivant ».

On crée ensuite un compte administrateur.

Pour finir la configuration initiale, on clique sur « Terminer la configuration ».

On arrive sur le dashbord, qui lance automatiquement le wizzard invitant à créer le premier espace de travail.

Puis à créer le premier item (élément de travail) dans cet espace de travail.

On est dans du classique de ce que l’on connait sous Jira.

Ci-dessus la vue Kanban après l’ajout du premier ticket.

Reste maintenant à faire le plus difficile : créer les comptes des autres utilisateurs, créer les équipes, et travailler.

Bémol

La configuration présentée ici permet de découvrir le produit et de s’en faire une idée. Le fait que cette configuration de base utilise le http et non le https est rédhibitoire pour une mise en production.

Si vous adoptez l’outil collaboratif qu’est Windshift, il faudra impérativement le mettre sur un VPS accessible depuis Internet, et ajouter un reverse proxy https dans la configuration du docker-compose.yml de sorte de vous protéger en https.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *