Selfhoster / héberger AFFiNE sur Unraid en utilisant docker

Selfhoster / héberger AFFiNE sur Unraid en utilisant docker
Hello ! Il y a quelques semaines j’avais publié un post qui expliquait comment héberger Monica sur Unraid en utilisant docker-compose.
Je pars donc du principe vous avez déjà installé le plugin “Docker Compose” sur votre serveur Unraid et que vous savez l’utiliser. Si ce n’est pas le cas, je vous redirige vers mon article sur l’installation de Monica.
Aujourd’hui je vais vous partager rapidement comment selfhoster / héberger AFFiNE sur Unraid en utilisant docker.
Mais premièrement, qu’est-ce que AFFiNE ?
D’après leur page GitHub, AFFiNE est une sorte de croisement entre Notion et Miro, offrant une plateforme tout-en-un open source conçue pour fusionner écriture, dessin, et planification dans un espace de travail hyper-fusionné, orienté vers la confidentialité et le local-first. Avec sa toile sans limites pour tout type de blocs — texte enrichi, notes, pages web intégrées, et bien plus. AFFiNE se positionne comme la solution ultime pour les esprits créatifs. La plateforme supporte la collaboration en temps réel, offre la possibilité de se gérer et s’héberger soi-même, et prépare l’arrivée d’une communauté de plugins pour une personnalisation poussée. AFFiNE est l’outil parfait pour ceux qui cherchent à repousser les frontières de leur productivité et créativité.
⚠️ Disclaimer : C’est eux qui le disent hein, pas moi. J’ai juste tenté de rassembler les infos et de les traduire en FR.
En gros, tu prends Notion, tu prends Miro, et tu les fusionnes. Voilà ça c’est moi qui le dit.
Installer AFFiNE
Alors on rentre dans le vif du sujet, pour installer AFFiNE j’ai modifié un tout petit peu leur fichier compose.yaml qui est dispo sur leur github .
Voici donc ma version et j’y ai annoté quelques commentaires afin que vous puissiez le compléter plus facilement de votre côté.
🆕 Afin de copier/coller/télécharger plus facilement ce code, j’ai créé un repository dédié aux ressources de mon blog sur github. Voici le lien du fichier docker-compose.yml de cet article :
services:
affine:
image: ghcr.io/toeverything/affine-graphql:stable
container_name: affine_selfhosted
command:
['sh', '-c', 'node ./scripts/self-host-predeploy && node ./dist/index.js']
ports:
# CHANGE YOUR PORTS HERE IF NEEDED PORT:PORT_INSIDE_CONTAINER
- '3010:3010'
- '5555:5555'
depends_on:
redis:
condition: service_healthy
postgres:
condition: service_healthy
volumes:
# CHANGE YOUR PATH HERE FOR the custom configuration
- /mnt/user/appdata/affine-app:/root/.affine/config
# CHANGE YOUR PATH HERE FOR blob storage
- /mnt/user/appdata/affine-app:/root/.affine/storage
logging:
driver: 'json-file'
options:
max-size: '1000m'
restart: unless-stopped
environment:
- NODE_OPTIONS="--import=./scripts/register.js"
- AFFINE_CONFIG_PATH=/root/.affine/config
- REDIS_SERVER_HOST=redis
# REPLACE MY_DB_PWD_TOP_SECRET BY YOUR PWD
- DATABASE_URL=postgres://affine:MY_DB_PWD_TOP_SECRET@postgres:5432/affine
- NODE_ENV=production
# REPLACE YOUR_EMAIL BY YOUR EMAIL
- AFFINE_ADMIN_EMAIL=YOUR_EMAIL
# REPLACE YOUR_PWD BY YOUR PWD
- AFFINE_ADMIN_PASSWORD=YOUR_PWD
redis:
image: redis
container_name: affine_redis
restart: unless-stopped
volumes:
# CHANGE YOUR PATH HERE
- /mnt/user/appdata/affine-redis:/data
healthcheck:
test: ['CMD', 'redis-cli', '--raw', 'incr', 'ping']
interval: 10s
timeout: 5s
retries: 5
postgres:
image: postgres
container_name: affine_postgres
restart: unless-stopped
volumes:
# CHANGE YOUR PATH HERE
- /mnt/user/appdata/affine-db:/var/lib/postgresql/data
healthcheck:
test: ['CMD-SHELL', 'pg_isready -U affine']
interval: 10s
timeout: 5s
retries: 5
environment:
POSTGRES_USER: affine
# REPLACE MY_DB_PWD_TOP_SECRET BY YOUR PWD
POSTGRES_PASSWORD: MY_DB_PWD_TOP_SECRET
POSTGRES_DB: affine
PGDATA: /var/lib/postgresql/data/pgdata
Bien entendu tu peux aussi faire d’autres changements si tu le souhaites, comme p.ex modifier le nom d’utilisateur postgres ou ce genre de choses.
Pour l’installation rien de plus simple => Unraid > Docker > New Stack > Edit Stack > On y ajoute le contenu de notre fichier compose.yaml et le tour est joué => Compose Up , et ça tourne !
Config dans l’app
Comme mentionné dans la documentation officielle, n’oubliez pas de vous logguer avec vos identifient puis de synchroniser votre workspace avec le “cloud”. Par cloud ils entendent “votre propre serveur” vu qu’on est en selfhost.
Ce sont les identifiants que vous avez spécifier dans le fichier compose.yaml
Une fois loggué il ne vous restera plus qu’à synchroniser le workspace avec “le cloud” (qui est en fait votre propre serveur) .
Voilà , Enjoy ! 😎
AlexIn Tech

Sur le même sujet
- Monica PRM n'envoie pas les rappels par e-mail - Comment résoudre ce problème
- Comment installer Monica à l'aide de Docker sur Unraid
- Comment configurer un serveur privé Palworld et sécuriser son accès
- Comment remplacer les disques d'un NAS QNAP par des plus gros ?
- Mon homelab et mes passions - Découvrez mon univers