ITSkillsCenter
Blog

Affine self-hosted : alternative Notion collaborative — déploiement Coolify 2026

5 دقائق للقراءة

Affine self-hosted : alternative Notion collaborative — déploiement Coolify 2026

AFFiNE (prononcez « a-fine ») est un outil de gestion des connaissances qui combine documents, tableaux blancs et bases de données dans une interface unifiée. Développé en TypeScript avec une architecture locale-first, AFFiNE se distingue de Notion et AppFlowy par sa vue « Edgeless » — un canvas infini où vous pouvez mélanger texte, dessins et blocs de données. Ce guide couvre le déploiement self-hosted sur Coolify avec Postgres, Redis, et un accès sécurisé via Cloudflare Tunnel.

1. Pourquoi AFFiNE pour votre PME ?

AFFiNE apporte des fonctionnalités uniques par rapport à ses concurrents :

  • Mode Edgeless (canvas) : tableau blanc infini intégré directement dans vos pages — parfait pour les sessions de brainstorming à distance
  • Architecture local-first : les données sont stockées localement et synchronisées vers le serveur, ce qui garantit un fonctionnement hors-ligne total
  • Export multi-format : PDF, Markdown, HTML depuis n’importe quelle page
  • Prix self-hosted : gratuit pour un nombre illimité d’utilisateurs

2. Architecture de déploiement

+------------------+     HTTPS      +------------------+
|  Équipe (4G/WiFi)|  ----------->  |  Cloudflare Edge |
+------------------+               +------------------+
                                            |
                                     Tunnel chiffré
                                            |
                                   +------------------+
                                   |  VPS Hetzner     |
                                   |  +------------+  |
                                   |  |   Coolify  |  |
                                   |  +------------+  |
                                   |  | AFFiNE App |  |
                                   |  | Postgres   |  |
                                   |  | Redis      |  |
                                   |  +------------+  |
                                   +------------------+

3. Prérequis

  • VPS Hetzner CX21 (2 vCPU, 4 Go RAM) — environ 5,83 EUR/mois
  • Coolify v4 installé et fonctionnel
  • Un compte Cloudflare (gratuit) avec votre domaine
  • Docker et Docker Compose (installés automatiquement par Coolify)

4. Déploiement via Coolify

4.1 Créer le projet dans Coolify

  1. Connectez-vous à Coolify (https://coolify.votrevps.com)
  2. Nouveau projet : affine-production
  3. Type : Docker Compose (raw)
  4. Serveur : votre VPS Hetzner

4.2 docker-compose.yml pour AFFiNE

version: "3.8"

networks:
  affine-net:
    driver: bridge

volumes:
  affine_postgres_data:
  affine_redis_data:
  affine_uploads:
  affine_config:

services:

  affine:
    image: ghcr.io/toeverything/affine-graphql:stable
    container_name: affine_selfhosted
    restart: unless-stopped
    ports:
      - "3010:3010"
      - "5555:5555"
    environment:
      NODE_OPTIONS: "--import=./scripts/register.js"
      AFFINE_CONFIG_PATH: /root/.affine/config
      REDIS_SERVER_HOST: redis
      DATABASE_URL: "postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}"
      NODE_ENV: production
      AFFINE_ADMIN_EMAIL: "${AFFINE_ADMIN_EMAIL}"
      AFFINE_ADMIN_PASSWORD: "${AFFINE_ADMIN_PASSWORD}"
      # SMTP Brevo
      MAILER_HOST: smtp-relay.brevo.com
      MAILER_PORT: "587"
      MAILER_USER: "${SMTP_USER}"
      MAILER_PASSWORD: "${SMTP_PASS}"
      MAILER_SENDER: "${SMTP_FROM}"
      MAILER_SECURE: "false"
    volumes:
      - affine_uploads:/root/.affine/storage
      - affine_config:/root/.affine/config
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_healthy
    networks:
      - affine-net

  redis:
    image: redis:7-alpine
    container_name: affine_redis
    restart: unless-stopped
    command: redis-server --save 60 1 --maxmemory 256mb --maxmemory-policy allkeys-lru
    volumes:
      - affine_redis_data:/data
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5
    networks:
      - affine-net

  postgres:
    image: postgres:16-alpine
    container_name: affine_postgres
    restart: unless-stopped
    environment:
      POSTGRES_USER: "${POSTGRES_USER}"
      POSTGRES_PASSWORD: "${POSTGRES_PASSWORD}"
      POSTGRES_DB: "${POSTGRES_DB}"
      PGDATA: /var/lib/postgresql/data/pgdata
    volumes:
      - affine_postgres_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
      interval: 10s
      timeout: 5s
      retries: 5
    networks:
      - affine-net

4.3 Variables d’environnement Coolify

POSTGRES_USER=affine
POSTGRES_PASSWORD=MotDePasseAffine2026!
POSTGRES_DB=affine
AFFINE_ADMIN_EMAIL=admin@monentreprise.sn
AFFINE_ADMIN_PASSWORD=AdminAffine2026!
SMTP_USER=votre@email.sn
SMTP_PASS=votreCleBrevo
SMTP_FROM=noreply@monentreprise.sn

5. Configuration de Cloudflare Tunnel

Cloudflare Tunnel permet d’exposer votre instance AFFiNE sans ouvrir de ports entrants sur votre VPS — une sécurité supplémentaire importante.

5.1 Créer le tunnel

# Sur le VPS, installer cloudflared
curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb \n  -o cloudflared.deb
dpkg -i cloudflared.deb

# Authentification (ouvre un URL Cloudflare dans le navigateur)
cloudflared tunnel login

# Créer le tunnel
cloudflared tunnel create affine-monentreprise

# Récupérer l'UUID du tunnel
cloudflared tunnel list

5.2 Configuration du tunnel

# /etc/cloudflared/config.yml
tunnel: VOTRE-UUID-TUNNEL
credentials-file: /root/.cloudflared/VOTRE-UUID-TUNNEL.json

ingress:
  - hostname: wiki.monentreprise.sn
    service: http://localhost:3010
  - service: http_status:404
# Créer le DNS Cloudflare automatiquement
cloudflared tunnel route dns affine-monentreprise wiki.monentreprise.sn

# Démarrer le tunnel comme service systemd
cloudflared service install
systemctl enable --now cloudflared

6. Premier accès et configuration de l’espace de travail

# Attendre que les conteneurs soient démarrés
docker compose logs affine -f --tail=30

# Chercher la ligne :
# "AFFiNE Server is running on port 3010"

Naviguez vers https://wiki.monentreprise.sn. Au premier accès :

  1. Connectez-vous avec les identifiants admin définis dans les variables d’environnement
  2. Créez votre premier espace de travail (workspace) : ex. MonEntreprise
  3. Invitez vos collaborateurs via Settings → Members → Invite

7. Fonctionnalités collaboratives d’AFFiNE

7.1 Mode Document (Pages)

Le mode Document est l’équivalent des pages Notion. Vous pouvez :

  • Insérer des blocs de texte, titres, listes, code, tableaux
  • Intégrer des bases de données (similaires aux Tables Notion)
  • Lier des pages entre elles avec [[nom_de_page]]
  • Ajouter des commentaires contextuels (collaboration)

7.2 Mode Edgeless (Canvas)

Le mode Edgeless est unique à AFFiNE — un tableau blanc infini :

  • Dessin libre et formes géométriques
  • Post-its (sticky notes) pour les sessions de brainstorming
  • Insertion de blocs de documents directement dans le canvas
  • Connecteurs pour créer des mind maps et diagrammes
  • Présentation de type diaporama depuis le canvas

8. Optimisations pour la 4G Afrique de l’Ouest

8.1 Activer la compression gzip dans nginx

Si vous utilisez nginx plutôt que Cloudflare Tunnel :

# Dans la config nginx d'AFFiNE
gzip on;
gzip_types text/plain application/json application/javascript text/css;
gzip_min_length 1024;
gzip_comp_level 6;

8.2 Limites de taille d’upload

# AFFiNE : limiter les uploads pour économiser la bande passante
# Dans les variables d'environnement :
AFFINE_STORAGE_QUOTA=10737418240  # 10 Go par workspace

# Configuration nginx si utilisé :
client_max_body_size 50M;

9. Sauvegardes


ملخص بالعربية: أفاين هو أداة إدارة المعرفة متعددة الوسائط تجمع بين المستندات ولوح التخطيط التعاوني، مفتوحة المصدر وقابلة للاستضافة الذاتية. يتم النشر عبر Docker Compose مع Postgres وRedis وCloudflare Tunnel للوصول الآمن. الحل مثالي للفرق الصغيرة في غرب أفريقيا التي تبحث عن بديل مجاني وكامل.
Besoin d'un site web ?

Confiez-nous la Création de Votre Site Web

Site vitrine, e-commerce ou application web — nous transformons votre vision en réalité digitale. Accompagnement personnalisé de A à Z.

À partir de 250.000 FCFA
Parlons de Votre Projet
Publicité