174 lines
6.6 KiB
Markdown
174 lines
6.6 KiB
Markdown
---
|
|
title: Docmost
|
|
created: 2026-06-07
|
|
updated: 2026-06-07
|
|
type: app
|
|
tags: [catalogue, wiki, documentation, collaboration, typescript, nestjs, postgresql, temps-reel, docker]
|
|
confidence: high
|
|
contested: false
|
|
sources: [https://selfh.st/apps/?tag=wiki]
|
|
---
|
|
|
|
# 🪶 Docmost
|
|
|
|
> Wiki et documentation collaborative modernes, basés sur NestJS et React. Édition temps réel, espaces multiples, permissions fines, recherche full-text performante. Pensé pour remplacer Confluence/Notion en open source.
|
|
|
|
| Métadonnée | Valeur |
|
|
| :--- | :--- |
|
|
| **Site web** | [docmost.com](https://docmost.com/) |
|
|
| **GitHub** | [docmost/docmost](https://github.com/docmost/docmost) |
|
|
| **License** | AGPL-3.0 |
|
|
| **Langage** | TypeScript / NestJS / React |
|
|
| **Étoiles** | ⭐ 1343 |
|
|
| **Dernière MAJ** | 2026-06-06 |
|
|
| **Catégorie** | [[cat-wiki]] |
|
|
|
|
## Description
|
|
|
|
Docmost est un **wiki et outil de documentation collaborative** open source apparu en 2023, qui a rapidement gagné en popularité grâce à une stack technique moderne et une UX soignée. Le backend est construit sur **NestJS** (TypeScript/Node.js) avec PostgreSQL, le frontend en **React** avec TipTap (éditeur WYSIWYG basé sur ProseMirror). L'expérience rivalise avec Notion ou Confluence, mais en auto-hébergeable.
|
|
|
|
Les fonctionnalités clés :
|
|
|
|
- **Édition temps réel multi-utilisateurs** (Y.js / TipTap collab) avec curseurs en direct.
|
|
- **Espaces** multiples (workspaces) avec permissions par page, groupes et ACL fines.
|
|
- **Recherche full-text** performante via PostgreSQL natif (tsvector) ou Elasticsearch.
|
|
- **Historique** de version par page, restauration à un point arbitraire.
|
|
- **Import** depuis Notion, Confluence, Markdown, DokuWiki.
|
|
- **API** REST documentée, webhooks, JWT.
|
|
- **SSO** : Google, GitHub, GitLab, Azure AD, OIDC.
|
|
- **Commentaires, mentions (@), emojis, attachements** fichiers/images.
|
|
|
|
Docmost est un concurrent direct et moderne de [[app-wiki-js]] (Node.js, plus mature) et de XWiki (Java, plus lourd). Pour de la documentation purement statique/publicée, [[app-docusaurus]] ou [[app-mkdocs]] sont plus adaptés.
|
|
|
|
## Installation
|
|
|
|
### Option recommandée : Docker Compose
|
|
|
|
L'image officielle `docmost/docmost:latest` (et `docmost/redis:7`) fournit une stack complète prête à l'emploi.
|
|
|
|
```yaml
|
|
# docker-compose.yml
|
|
services:
|
|
docmost:
|
|
image: docmost/docmost:latest
|
|
container_name: docmost
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- db
|
|
- redis
|
|
environment:
|
|
APP_URL: "https://wiki.example.com"
|
|
APP_SECRET: "changez-moi-generez-un-secret-long"
|
|
DATABASE_URL: "postgresql://docmost:docmost@db:5432/docmost"
|
|
REDIS_URL: "redis://redis:6379"
|
|
# SMTP optionnel
|
|
SMTP_HOST: smtp.example.com
|
|
SMTP_PORT: 587
|
|
SMTP_USERNAME: no-reply@example.com
|
|
SMTP_PASSWORD: changez
|
|
SMTP_FROM: "Docmost <no-reply@example.com>"
|
|
volumes:
|
|
- docmost-data:/app/data
|
|
ports:
|
|
- "3000:3000"
|
|
|
|
db:
|
|
image: postgres:16-alpine
|
|
container_name: docmost-db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_DB: docmost
|
|
POSTGRES_USER: docmost
|
|
POSTGRES_PASSWORD: docmost
|
|
volumes:
|
|
- db-data:/var/lib/postgresql/data
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: docmost-redis
|
|
restart: unless-stopped
|
|
volumes:
|
|
- redis-data:/data
|
|
|
|
volumes:
|
|
docmost-data:
|
|
db-data:
|
|
redis-data:
|
|
```
|
|
|
|
### Option 2 : Installation manuelle
|
|
|
|
```bash
|
|
git clone https://github.com/docmost/docmost.git
|
|
cd docmost
|
|
cp .env.example .env
|
|
# éditer APP_URL, APP_SECRET, DATABASE_URL, REDIS_URL
|
|
pnpm install
|
|
pnpm build
|
|
pnpm start
|
|
```
|
|
|
|
Prérequis : **Node.js 18+**, **pnpm**, PostgreSQL 14+, Redis 7+.
|
|
|
|
## Configuration
|
|
|
|
Toute la configuration se fait via variables d'environnement (`.env` ou section `environment` du Compose) :
|
|
|
|
- `APP_URL` : URL publique (utilisée pour les liens, webhooks, OIDC callback).
|
|
- `APP_SECRET` : secret JWT, **obligatoire**, 32+ caractères aléatoires.
|
|
- `DATABASE_URL` : standard libpq.
|
|
- `REDIS_URL` : pour les sessions, la collab temps réel, la queue.
|
|
- `SMTP_*` : alertes, invitations, notifications.
|
|
- `OIDC_*` / `GOOGLE_*` / `GITHUB_*` : SSO.
|
|
|
|
Le panneau d'admin (compte admin initial créé au premier démarrage) gère ensuite les espaces, permissions, groupes, et intégrations.
|
|
|
|
## Alternatives
|
|
|
|
### Open Source
|
|
|
|
- [[app-wiki-js]] — Wiki Node.js mature, WYSIWYG, Git backend.
|
|
- [[app-docusaurus]] — Pour publier en statique, pas pour éditer en équipe.
|
|
- [[app-mkdocs]] — Doc statique Python, pas de wiki.
|
|
- [[app-xwiki]] — Java, très riche mais lourd.
|
|
- **Outline** — UX excellente, mais ses sources sont en grande partie closed.
|
|
- **BookStack** — PHP, simple, ergonomique, axé documentation.
|
|
- **AppFlowy** — Notion-like open source, plus collaboratif/IA.
|
|
- **AFFiNE** — Notion + Miro + Linear, prometteur.
|
|
|
|
### Propriétaires (ce que Docmost remplace)
|
|
|
|
- **Confluence** — Le standard entreprise, Docmost est la meilleure alternative open source moderne.
|
|
- **Notion** — Notion-like open source, multi-utilisateurs, sans la dépendance au SaaS.
|
|
- **Coda** — Wiki + tables + automations.
|
|
- **Slab** — Knowledge base d'équipe.
|
|
- **Dropbox Paper** — Wiki simple mais cloud-only.
|
|
- **Microsoft Loop / SharePoint** — Pour un wiki moderne auto-hébergé.
|
|
|
|
## Sécurité
|
|
|
|
- ✅ **SSO** (OIDC, SAML via intégration) et 2FA à activer pour les admins.
|
|
- ✅ **Permissions fines** par espace et par page : penser à limiter l'accès invité et l'export en masse.
|
|
- ✅ **HTTPS obligatoire** derrière un reverse proxy (Caddy/Traefik/Nginx) avec LetsEncrypt.
|
|
- ⚠️ Surfaces d'attaque classiques NestJS : maintenir **Node.js et les dépendances à jour** (Renovate/Dependabot recommandé).
|
|
- ⚠️ `APP_SECRET` doit être long et stocké hors du dépôt (Docker secrets, Vault, etc.).
|
|
- ✅ **Backups** : sauvegarder régulièrement le volume `db-data` (PostgreSQL) et `docmost-data` (fichiers uploadés).
|
|
- ⚠️ Désactiver l'**inscription libre** en production (`ALLOW_SIGNUP=false` selon version), privilégier les invitations.
|
|
- ⚠️ Le **mode `debug`** ne doit jamais être activé en production.
|
|
|
|
## Ressources
|
|
|
|
- [Site officiel Docmost](https://docmost.com/)
|
|
- [Documentation Docmost](https://docmost.com/docs)
|
|
- [GitHub docmost/docmost](https://github.com/docmost/docmost)
|
|
- [Roadmap publique](https://github.com/docmost/docmost/discussions)
|
|
- [Communauté Discord](https://discord.gg/docmost)
|
|
|
|
## Pages Liées
|
|
|
|
- [[cat-wiki]] — Vue d'ensemble de la catégorie Wiki
|
|
- [[app-wiki-js]] — Wiki Node.js historique
|
|
- [[app-docusaurus]] — Pour publier en statique
|
|
- [[app-mkdocs]] — Doc statique Python
|
|
- [[recettes-docker-compose]] — Templates Docker partagés
|