Fondamentaux de la collaboration¶
Comprendre les domaines fonctionnels, les protocoles standards et les modèles d'architecture avant de choisir des outils.
Les 5 domaines de la collaboration¶
La collaboration numerique se decompose en cinq domaines fonctionnels. Chaque domaine peut etre couvert par un outil dedie ou par une plateforme intégrée.
| Domaine | Fonction | Exemples d'outils |
|---|---|---|
| Partage de fichiers | Stockage, synchronisation, partage de documents | Nextcloud, Seafile, ownCloud |
| Messagerie instantanee | Communication temps reel, canaux, threads | Mattermost, Rocket.Chat, Zulip |
| Visioconference | Appels audio/video, partage d'écran | Jitsi Meet, BigBlueButton |
| Edition de documents | Creation et co-edition en temps reel | ONLYOFFICE, Collabora, CryptPad |
| Gestion de projets | Tableaux, tâches, suivi d'avancement | Deck (Nextcloud), Focalboard |
Approche modulaire vs monolithique
Nextcloud couvre les cinq domaines via ses applications intégrées (Files, Talk, Office, Deck). L'avantage est la simplification de l'exploitation. L'inconvénient est que chaque module est moins mature qu'un outil dedie. L'approche recommandee dans ce tutoriel est Nextcloud pour les fichiers et l'edition + Mattermost pour la messagerie, chaque outil etant le meilleur de sa catégorie.
Protocoles standards¶
WebDAV, CalDAV, CardDAV¶
La famille DAV (Distributed Authoring and Versioning) repose sur HTTP et fournit un accès standardise aux ressources :
| Protocole | Fonction | Port | Spécification |
|---|---|---|---|
| WebDAV | Lecture/écriture de fichiers | 443 | RFC 4918 |
| CalDAV | Synchronisation de calendriers | 443 | RFC 4791 |
| CardDAV | Synchronisation de contacts | 443 | RFC 6352 |
PROPFIND /remote.php/dav/files/alice/ HTTP/1.1
Host: cloud.example.com
Depth: 1
Content-Type: application/xml
<?xml version="1.0" encoding="UTF-8"?>
<d:propfind xmlns:d="DAV:">
<d:prop>
<d:getlastmodified/>
<d:getcontentlength/>
<d:resourcetype/>
</d:prop>
</d:propfind>
Client universel
Tout client compatible WebDAV (Nautilus, Finder, davfs2, Cyberduck) peut accéder aux fichiers Nextcloud sans le client desktop.
WebSocket¶
Les applications de messagerie instantanee et d'edition collaborative utilisent WebSocket pour maintenir une connexion bidirectionnelle persistante entre le navigateur et le serveur.
GET /api/v4/websocket HTTP/1.1
Host: chat.example.com
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
Sec-WebSocket-Version: 13
Le serveur répond avec 101 Switching Protocols et la connexion reste ouverte pour les événements temps reel (nouveaux messages, notifications de frappe, mises a jour de statut).
WebRTC¶
La visioconference utilise WebRTC pour établir des flux audio/video pair-a-pair. Les composants cles sont :
| Composant | Rôle |
|---|---|
| STUN server | Découverte de l'adresse IP publique derriere un NAT |
| TURN server | Relais du trafic quand la connexion directe est impossible |
| Signaling | Échange des offres SDP et candidats ICE via WebSocket |
TURN obligatoire en entreprise
Derriere un firewall corporate, la connexion pair-a-pair échoue dans 60-80 % des cas. Un serveur TURN (coturn) est indispensable pour garantir la connectivité.
ActivityPub¶
ActivityPub est le protocole de fédération du Fediverse. Il permet à des instances indépendantes de communiquer entre elles. Nextcloud Social et certains projets experimentent son integration pour le partage federe de fichiers et de messages.
{
"@context": "https://www.w3.org/ns/activitystreams",
"type": "Create",
"actor": "https://cloud.example.com/users/alice",
"object": {
"type": "Note",
"content": "Rapport Q1 disponible dans le dossier partage."
}
}
Modèles de fédération¶
La fédération permet à plusieurs instances d'un même logiciel (ou de logiciels compatibles) d'échanger des données.
Fédération Nextcloud-a-Nextcloud¶
Deux serveurs Nextcloud peuvent échanger des partages de fichiers via le protocole OCM (Open Cloud Mesh) :
graph LR
A["Nextcloud A<br/>cloud-a.example.com"] <-->|"OCM / WebDAV"| B["Nextcloud B<br/>cloud-b.example.com"]
A1["Alice"] --> A
B1["Bob"] --> B L'utilisateur Alice peut partager un dossier avec bob@cloud-b.example.com. Le partage apparait dans l'interface de Bob comme un dossier local.
Fédération Mattermost¶
Mattermost ne supporte pas nativement la fédération inter-instances. Les alternatives sont :
- Shared Channels (licence Enterprise) — synchronisation de canaux entre deux serveurs Mattermost
- Webhook bridges — un bot relaye les messages entre instances via des webhooks entrants/sortants
- Matrix bridge — un pont Mattermost-Matrix permet la communication avec tout serveur Matrix federe
Modes online et offline¶
Synchronisation fichiers¶
Le client desktop Nextcloud maintient une copie locale des fichiers. Les modifications effectuees hors ligne sont synchronisees au retour de la connexion. Le client gère les conflits en creant des copies suffixees (conflit).
| Mode | Comportement |
|---|---|
| Online | Accès direct via navigateur ou WebDAV, pas de cache local |
| Sync | Copie locale complète, synchronisation bidirectionnelle |
| VFS | Fichiers virtuels, telechargement a la demande |
Virtual File System (VFS)
Le mode VFS affiche tous les fichiers dans l'explorateur mais ne telecharge que ceux qui sont ouverts. Cela reduit l'espace disque utilise tout en gardant un accès offline aux fichiers récemment consultes.
Messagerie¶
Mattermost met en cache les messages recents dans le navigateur (IndexedDB). L'application mobile stocke egalement un cache local. Cependant, la rédaction de nouveaux messages necessite une connexion active au serveur.
Propriété et portabilité des données¶
L'auto-hebergement garantit la propriété des données. Mais la propriété sans portabilité est un leurre. Verifiez ces critères avant d'adopter un outil :
| Critère | Question |
|---|---|
| Export natif | L'outil propose-t-il un export complet (fichiers + metadonnees) ? |
| Format ouvert | Les données exportees sont-elles dans un format standard ? |
| API d'extraction | Une API permet-elle d'extraire les données programmatiquement ? |
| Absence de lock-in | Les fichiers sont-ils stockes en clair sur le système de fichiers ? |
| Migration documentee | Existe-t-il un guide officiel de migration vers/depuis l'outil ? |
Nextcloud¶
Les fichiers sont stockes en clair sur le disque (ou dans un bucket S3). Les metadonnees (partages, tags, commentaires) sont dans PostgreSQL. L'export est trivial : copier les fichiers + dump SQL.
Mattermost¶
Les messages sont dans PostgreSQL, les fichiers joints sur le disque ou S3. L'outil mmctl export génère une archive JSONL complète. L'import depuis Slack, Microsoft Teams et d'autres plateformes est supporte nativement.
CryptPad¶
Les documents sont chiffres côté client. L'export se fait document par document en format standard (XLSX, DOCX, MD). Il n'existe pas d'export global automatise — c'est la contrepartie du chiffrement zero-knowledge.
Synthese¶
graph TB
subgraph "Domaines"
F["Fichiers"]
M["Messagerie"]
V["Visioconference"]
E["Edition"]
P["Projets"]
end
subgraph "Protocoles"
DAV["WebDAV / CalDAV / CardDAV"]
WS["WebSocket"]
RTC["WebRTC"]
AP["ActivityPub"]
end
F --> DAV
M --> WS
V --> RTC
E --> WS
P --> WS
F -.-> AP Les protocoles ouverts garantissent l'interopérabilité entre les outils et les clients. Le chapitre suivant compare les solutions disponibles pour chaque domaine.