Files
2026-06-09 18:40:21 +02:00

8.0 KiB


title: Colanode created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, wiki, collaboration, crdt, local-first, typescript, postgres, redis, docker] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Wiki, https://github.com/colanode/colanode, https://colanode.com/]

🤝 Colanode

Workspace collaboratif open source et local-first : un concurrent self-hosted à Notion + Slack combinant pages wiki, bases de données, chat en temps réel et gestion de fichiers dans une seule application.

📋 Informations Générales

Champ Valeur
Site web colanode.com
GitHub colanode/colanode
Licence Apache-2.0
Langage TypeScript
Étoiles GitHub 4.9k
Dernière MAJ 2026-04-03 (v0.4.7)
Catégorie cat-wiki

📝 Description

Colanode est une plateforme de collaboration tout-en-un qui réunit dans une seule application ce que d'autres éditeurs découpent en plusieurs produits : un wiki structuré façon Notion, des bases de données personnalisables, un chat temps réel et un gestionnaire de fichiers. Le projet se distingue par son approche local-first : toutes les modifications sont d'abord sauvegardées dans une base SQLite locale, puis synchronisées avec le serveur en arrière-plan, ce qui permet de continuer à travailler même hors ligne.

La collaboration multi-utilisateur repose sur des CRDT (Conflict-free Replicated Data Types) propulsés par Yjs, ce qui garantit que plusieurs personnes peuvent éditer simultanément une page ou un enregistrement de base de données sans conflit, avec fusion automatique des changements. Les messages de chat et les opérations sur fichiers, eux, n'ont pas besoin de CRDT et utilisent des tables PostgreSQL classiques. Côté backend, Colanode supporte plusieurs backends de stockage (filesystem local par défaut, S3, Google Cloud Storage, Azure Blob) et s'appuie sur PostgreSQL avec l'extension pgvector plus Redis (ou Valkey) pour la coordination.

L'application se destine aux équipes qui veulent regrouper leurs outils (docs + chat + tâches + fichiers) sans dépendre d'un SaaS propriétaire. C'est un choix pertinent pour des PME, des associations ou des collectifs qui cherchent une alternative self-hosted à Notion + Slack, avec une philosophie open source assumée (Apache 2.0). Le revers de la médaille : le projet est encore jeune (v0.4.x) et l'écosystème de plugins/extensions reste limité.

🚀 Installation

Option recommandée : Docker Compose

Le dépôt officiel fournit un docker-compose.yaml complet dans hosting/docker/ qui démarre Postgres + Redis + le serveur Colanode, avec un profil optionnel pour MinIO (stockage S3-compatible).

# docker-compose.yml
services:
  postgres:
    image: postgres:16-alpine
    container_name: colanode-postgres
    restart: unless-stopped
    environment:
      POSTGRES_USER: colanode
      POSTGRES_PASSWORD: change-me-strong-password
      POSTGRES_DB: colanode
    volumes:
      - colanode-pg:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U colanode"]
      interval: 10s
      timeout: 5s
      retries: 5

  redis:
    image: redis:7-alpine
    container_name: colanode-redis
    restart: unless-stopped
    command: ["redis-server", "--appendonly", "yes"]
    volumes:
      - colanode-redis:/data

  storage:
    image: minio/minio:latest
    container_name: colanode-minio
    restart: unless-stopped
    command: ["server", "/data", "--console-address", ":9001"]
    environment:
      MINIO_ROOT_USER: colanode
      MINIO_ROOT_PASSWORD: change-me-strong-secret
    volumes:
      - colanode-minio:/data
    profiles: ["s3"]

  server:
    image: ghcr.io/colanode/colanode-server:latest
    container_name: colanode-server
    restart: unless-stopped
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_started
    environment:
      POSTGRES_URL: postgresql://colanode:change-me-strong-password@postgres:5432/colanode
      REDIS_URL: redis://redis:6379
      STORAGE_TYPE: local
      COLANODE_JWT_SECRET: change-me-long-random-secret
    volumes:
      - colanode-data:/app/data
      - ./config.json:/app/config.json:ro
    ports:
      - "3000:3000"

volumes:
  colanode-pg:
  colanode-redis:
  colanode-minio:
  colanode-data:

Pour activer MinIO, lance avec docker compose --profile s3 up -d et règle STORAGE_TYPE=s3 avec les credentials MinIO dans config.json.

Option 2 : Kubernetes (Helm)

Le dépôt officiel fournit un chart Helm :

git clone https://github.com/colanode/colanode.git
cd colanode/hosting/kubernetes
helm install colanode ./chart \
  --set-file colanode.configFile.data=./config.json

Option 3 : Cloud géré

Pour évaluer rapidement, app.colanode.com propose une instance d'aperçu, et Colanode Cloud (EU/US) est en bêta.

⚙️ Configuration

  • config.json : fichier de configuration unique, mounté dans le conteneur. Contient les paramètres de stockage, l'URL publique, les origines CORS autorisées, etc.
  • env://VAR_NAME : dans le config.json, on peut référencer des variables d'environnement pour les secrets — le loader les résout au démarrage.
  • POSTGRES_URL et REDIS_URL : seules deux variables strictement obligatoires hors config.json.
  • Stockage : STORAGE_TYPE accepte local, s3, gcs, azure.
  • Auth : JWT géré côté serveur ; pour activer un IdP externe (OIDC, LDAP), voir la documentation.
  • Premier compte : le premier utilisateur enregistré devient automatiquement administrateur.

🔄 Alternatives

Open Source

  • app-outline — Wiki d'équipe moderne en TypeScript, plus mature
  • app-affine — Workspace Notion-like open source, sans chat
  • app-appflowy — Alternative Notion en Dart/Rust
  • app-trilium-notes — PKM personnel hiérarchique, pas d'équipe
  • app-xwiki — Wiki d'entreprise Java, beaucoup plus lourd
  • Docmost — Wiki collaboratif Confluence-like, plus simple

Propriétaires

  • Notion — Cible directe, même positionnement
  • Slack + Notion — Combinaison que Colanode cherche à remplacer
  • Microsoft Loop — Approche concurrente de Microsoft 365
  • ClickUp — Tout-en-un propriétaire avec wiki intégré

🔐 Sécurité

  • Authentification par JWT, premier compte = admin (à verrouiller rapidement).
  • Chiffrement des données en transit via HTTPS obligatoire (reverse proxy).
  • Stockage local des secrets via env:// : pas dans le config.json committé.
  • ⚠️ L'extension pgvector est requise sur Postgres : vérifier la compatibilité avec vos sauvegardes.
  • ⚠️ Les CRDT impliquent une réconciliation automatique ; auditer les permissions sur les espaces.
  • Activer les backups PostgreSQL (pg_dump / WAL-G) + backup du dossier de stockage.
  • Mettre à jour régulièrement : v0.4.x évolue vite, des correctifs de sécurité sortent fréquemment.
  • ⚠️ Le mode local-first signifie que les clients gardent une copie de données sensibles : durcir les postes clients.

📚 Ressources

Pages Liées