Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
+176
View File
@@ -0,0 +1,176 @@
---
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é