Social Home OS du foyer · fédéré · ouvert

Héberger un relais vous-même

Mettez en place un Global Federation Server (GFS) sur un VPS en 15 minutes environ. Docker Compose + Cloudflare, c'est tout.

Un relais, c’est ce qui permet à des foyers qui ne se sont jamais jumelés de se trouver — un espace public de parents, par exemple, ou un panneau de quartier que n’importe qui peut suivre. N’importe qui peut en héberger un, et cette page vous guide en 15 minutes environ.

Le GFS (Global Federation Server – le serveur de fédération global) — le relais qui aide les foyers à se trouver — a trois rôles. C’est un annuaire, pour que les foyers puissent trouver les espaces globaux dont le propriétaire l’a choisi. Il transporte les publications scellées vers des foyers qui ne sont pas jumelés entre eux — les abonnés d’un espace global, les membres qui ont rejoint avec un Lien GFS, les espaces privés dont le propriétaire a activé le GFS, et les foyers jumelés qui ont activé la solution de repli GFS — pour qu’un espace continue de vivre pendant que son hôte dort. Et il sert d’intermédiaire pour les liens publics vers un Highlight — voir Highlights → partager publiquement pour le parcours côté auteur. Dans chacun de ces rôles, il ne manipule que des enveloppes : il ne lit jamais un message, ne stocke jamais une image de Highlight. Héberger votre propre relais, c’est laisser votre communauté décider qui peut la rejoindre, sans aucune partie unique au centre.

Ce qu’il vous faut

  • Un VPS avec une IP publique — n’importe quel fournisseur fera l’affaire.
  • Un nom de domaine. Un sous-domaine suffit — gfs.example.com.
  • Un compte Cloudflare sur l’offre gratuite, utilisé pour terminer le TLS et comme bouclier anti-DDoS.
  • Docker installé sur le VPS.

Environ 15 minutes du début à la fin.

1. Faites pointer votre domaine vers le serveur

Dans le DNS Cloudflare, ajoutez un enregistrement A :

TypeNomAdresse IPv4Statut du proxy
AgfsYOUR.SERVER.IP🟠 Proxied

Le statut « Proxied » (nuage orange) signifie que Cloudflare gère le HTTPS pour vous — aucun certificat à installer, aucun renouvellement à gérer. Votre serveur n’a besoin de parler que du HTTP en interne.

Puis, dans Cloudflare → SSL/TLS → Overview, réglez le mode de chiffrement sur Flexible — le relais lui-même écoute en HTTP simple derrière le proxy. Si vous préférez terminer le TLS vous-même sur le serveur (Caddy devant le conteneur, par exemple), choisissez plutôt Full (strict).

2. Créez le répertoire du projet

Connectez-vous à votre VPS en SSH :

mkdir -p ~/gfs/data
cd ~/gfs

3. docker-compose.yml

services:
  gfs:
    image: ghcr.io/social-home-io/gfs:latest
    container_name: gfs
    restart: unless-stopped
    command: ["socialhome-global-server", "--config", "/var/lib/sh-gfs/global_server.toml"]
    volumes:
      - ./data:/var/lib/sh-gfs
    ports:
      - "80:8765"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8765/healthz"]
      interval: 30s
      timeout: 5s
      retries: 3

4. Initialisez la configuration

docker run --rm -v "$PWD/data:/var/lib/sh-gfs" \
  ghcr.io/social-home-io/gfs:latest \
  socialhome-global-server --init --config /var/lib/sh-gfs/global_server.toml

docker run --rm -it -v "$PWD/data:/var/lib/sh-gfs" \
  ghcr.io/social-home-io/gfs:latest \
  socialhome-global-server --set-password --config /var/lib/sh-gfs/global_server.toml

--init écrit une configuration neuve ; --set-password définit le mot de passe du portail d’administration, que vous trouverez sur https://gfs.example.com/admin une fois le relais lancé.

Ouvrez data/global_server.toml et renseignez votre domaine :

[server]
base_url = "https://gfs.example.com"
Sous le capot

Chaque option de global_server.toml peut aussi être définie par une variable d’environnement préfixée GFS_ — pratique si vous préférez garder le fichier compose autonome :

VariableClé de configurationPar défaut
GFS_HOST[server] host0.0.0.0
GFS_PORT[server] port8765
GFS_BASE_URL[server] base_url—
GFS_DATA_DIRrépertoire des données/var/lib/sh-gfs
GFS_OPEN_SIGNUPopen_signupfalse

Pour une même clé, la variable d’environnement l’emporte sur le fichier.

Valeurs par défaut

Dès l’installation, un relais neuf est prudent là où il faut. Les foyers qui se jumellent avec lui sont acceptés automatiquement (auto_accept_clients), pour que les gens puissent se connecter sans que vous ayez à cliquer. Les espaces publiés sur votre relais, en revanche, attendent votre approbation dans le portail d’administration (auto_accept_spaces = false) — votre annuaire ne liste que ce que vous avez examiné. L’inscription ouverte est désactivée, donc personne ne peut créer de compte sur le relais lui-même tant que vous ne l’activez pas.

5. Ouvrez le pare-feu

Sur le VPS :

sudo ufw allow 80/tcp        # proxy Cloudflare → GFS

Le port 8765 n’a pas besoin d’être ouvert — il est interne au réseau Docker.

6. Démarrez le relais

docker compose up -d

Vérifiez qu’il répond depuis votre ordinateur portable :

curl https://gfs.example.com/healthz
# → {"status":"ok","version":"…"}

7. Connectez-vous depuis Social Home

Dans Social Home → Paramètres → Connexions → Global Federation Servers → Ajouter un GFS :

  • URL : https://gfs.example.com
  • Cliquez sur Jumeler

Terminé. Si votre relais distribue des jetons de jumelage (depuis le portail d’administration, par exemple), chaque jeton est à usage unique et valable 10 minutes.

Ce que verra votre relais

Héberger un relais ne vous ouvre pas une fenêtre sur l’espace de qui que ce soit. Les publications arrivent scellées et complétées à taille fixe ; vous apprenez à quel espace appartient une enveloppe et quand elle est arrivée, mais pas quel foyer l’a publiée. En mode strict, vous ne pouvez même pas savoir quels foyers ont le droit d’écrire. Pour le tableau complet, y compris ce que le relais peut encore observer (horodatage, tailles, adresses IP), lisez le modèle de sécurité.

Mettre à jour

cd ~/gfs
docker compose pull
docker compose up -d

Le conteneur est sans état, à l’exception de ./data ; une sauvegarde est un simple tar -czf data.tgz ./data.

Le relais du projet

Si vous ne voulez pas héberger le vôtre, le projet gère un relais public à l’adresse gfs.social-home.io — un scan de code QR et vous êtes jumelé. Pointer votre espace vers un relais de confiance est pourtant tout l’intérêt d’avoir le choix, alors héberger le vôtre est encouragé pour toute communauté de plus d’une poignée de foyers.