177 lines
8.0 KiB
Markdown
177 lines
8.0 KiB
Markdown
---
|
|
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](https://colanode.com/) |
|
|
| **GitHub** | [colanode/colanode](https://github.com/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](https://docs.yjs.dev/), 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).
|
|
|
|
```yaml
|
|
# 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 :
|
|
|
|
```bash
|
|
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](https://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
|
|
|
|
- [Site officiel Colanode](https://colanode.com/)
|
|
- [Dépôt GitHub colanode/colanode](https://github.com/colanode/colanode)
|
|
- [Documentation self-hosting](https://github.com/colanode/colanode/blob/main/hosting/docker/README.md)
|
|
- [Démo en ligne app.colanode.com](https://app.colanode.com/)
|
|
- [Reddit — retour d'expérience self-hoster](https://www.reddit.com/r/selfhosted/comments/1khpftl/i_built_colanode_an_opensource_localfirst_slack/)
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-wiki]] — Vue d'ensemble de la catégorie Wiki
|
|
- [[app-outline]] — Alternative plus mature pour wiki d'équipe
|
|
- [[app-affine]] — Workspace open source concurrent
|
|
- [[app-trilium-notes]] — PKM personnel, autre vision local-first
|
|
- [[recettes-docker-compose]] — Templates Docker Compose
|
|
- [[securisation-home-lab]] — Bonnes pratiques de sécurité
|