Auto-hébergement
Golem Docs sur votre propre serveur.
Golem Docs est gratuit et n’a besoin d’aucun serveur. Un serveur ajoute la synchronisation entre appareils, le partage et l’édition en direct. golemdocs.com en fait tourner un pour 3 $ par mois, ou vous pouvez faire tourner le vôtre sur votre propre compte Cloudflare : les fichiers et les comptes sont à vous.
Comment ça marche
Le serveur est un seul Cloudflare Worker. Il sert aussi l’app, si bien que votre adresse devient Golem Docs pour les personnes que vous laissez entrer. Il garde tout dans quatre produits Cloudflare, tous sur votre compte :
| Workers | Les fichiers de l’app, et l’API qui connecte les personnes et garde leurs documents. |
|---|---|
| D1 | Une base de données : comptes, sessions, partages, et la liste des documents et dossiers de chacun. |
| R2 | Les documents eux-mêmes, leurs images et leurs versions précédentes. |
| Durable Objects | Une salle pour chaque document pendant que plusieurs personnes le modifient ensemble. |
Pour l’instant, il ne tourne que sur Cloudflare. Si vous voulez l’héberger ailleurs, sur votre propre ordinateur ou chez un autre fournisseur, écrivez-moi et je préparerai un plan pour le faire tourner sans Cloudflare.
Ce que ça coûte
Pour un foyer, cela peut ne rien coûter. L’offre gratuite de Cloudflare comprend 100 000 requêtes par jour et 10 Go de stockage de fichiers ; au-delà de 10 Go, le stockage coûte 0,015 $ par Go et par mois, soit environ 1,35 $ pour 100 Go. L’offre gratuite accorde peu de temps de calcul par requête : les longs documents peuvent donc demander l’offre Workers Paid, à 5 $ par mois, avec des limites bien plus élevées. Consultez les tarifs de Cloudflare pour les chiffres du jour.
Ce qu’il vous faut
- Un compte Cloudflare. Un domaine dessus est facultatif : sans domaine, votre serveur reçoit une adresse workers.dev gratuite.
- Un ordinateur avec Node 22.13 ou plus récent et pnpm, pour l’installer et le mettre à jour. Rien n’y tourne ensuite.
- Un compte GitHub, pour créer l’app de connexion. La connexion avec Google, Microsoft et Apple fonctionne aussi.
L’installer
Comptez une demi-heure. Chaque commande se lance dans un terminal, depuis le dossier où vous téléchargez le code.
1. Récupérer le code et se connecter à Cloudflare
Cela télécharge Golem Docs, installe ce dont il a besoin et ouvre votre navigateur pour qu’il puisse utiliser votre compte Cloudflare.
git clone https://github.com/davidfig/golemdocs.git cd golemdocs pnpm install pnpm --filter @golemdocs/server exec wrangler login
2. Créer la base de données et le stockage
Activez d’abord R2 dans le tableau de bord Cloudflare ; Cloudflare peut demander un moyen de paiement, même dans la part gratuite. Ensuite, cette commande crée la base de données et le bucket de stockage, et affiche l’identifiant de la base.
pnpm --filter @golemdocs/server cf:setup
3. Indiquer le compte, la base et l’adresse
Copiez server/wrangler.local.example.json vers server/wrangler.local.json et remplissez-le : l’identifiant de votre compte Cloudflare, celui de la base de l’étape 2, et votre domaine. Écrivez workers.dev comme domaine pour utiliser l’adresse gratuite.
{
"ACCOUNT_ID": "…",
"DIRECTORY_ID": "…",
"DIRECTORY_DEV_ID": "",
"DOMAIN": "docs.example.com"
}
4. Créer les tables et le mettre en ligne
La seconde commande construit l’app, l’envoie avec le serveur et affiche l’adresse où il se trouve.
pnpm --filter @golemdocs/server cf:migrate pnpm --filter @golemdocs/server deploy:prod
5. Créer une app de connexion
Sur GitHub, ouvrez Settings › Developer settings › OAuth Apps › New OAuth App. Donnez-lui l’adresse de votre serveur, et https://<votre adresse>/api/auth/callback/github comme URL de rappel. Générez ensuite un client secret.
6. Choisir qui peut se connecter
Chaque commande demande une valeur. Lancez-les depuis le dossier server.
cd server pnpm exec wrangler secret put SINGLE_DATABASE --env="" pnpm exec wrangler secret put ALLOWED_EMAILS --env="" pnpm exec wrangler secret put ADMIN_EMAILS --env="" pnpm exec wrangler secret put GITHUB_CLIENT_ID --env="" pnpm exec wrangler secret put GITHUB_CLIENT_SECRET --env=""
SINGLE_DATABASE | true : la liste des documents de chacun est dans la seule base de données, donc le serveur n’a besoin d’aucun jeton d’API Cloudflare. |
|---|---|
ALLOWED_EMAILS | Qui peut se connecter : des adresses entières (me@example.com) ou tout un domaine (@example.com), séparés par des virgules. Renseignez-le, sinon quiconque trouve votre adresse peut s’inscrire et stocker des fichiers à vos frais. |
ADMIN_EMAILS | Votre propre adresse. Les administrateurs peuvent toujours se connecter et lire les avis que les gens envoient. |
LINK_WEBSITE, LINK_SUPPORT… | Facultatif : vers où pointent le menu Aide et le document de bienvenue, au lieu de golemdocs.com. Le guide complet les liste tous. |
7. Se connecter
Ouvrez votre adresse et connectez-vous avec GitHub. Les documents que vous créez une fois connecté sont désormais gardés sur votre serveur, et les personnes de votre liste peuvent se les partager.
Le tenir à jour
Quand une nouvelle version sort, récupérez-la et mettez-la en ligne de la même façon. Lisez d’abord le Journal : une version qui change la façon dont les fichiers ou les comptes sont stockés le dit là.
git pull pnpm install pnpm --filter @golemdocs/server cf:migrate pnpm --filter @golemdocs/server deploy:prod
Ce qui change par rapport à golemdocs.com
- Utilisez-le dans le navigateur. Les applications pour ordinateur et téléphone ne se connectent pour l’instant qu’à golemdocs.com.
- Rien n’est vendu. Tous ceux que vous laissez entrer ont la synchronisation, le partage et l’édition en direct.
- Les personnes de votre serveur peuvent partager entre elles, mais pas avec des comptes golemdocs.com ou d’autres serveurs.
- C’est vous qui vous en occupez : ses mises à jour, et les sauvegardes de sa base de données et de son stockage.
L’app et le serveur sont sous AGPL-3.0 : si vous faites tourner une version modifiée pour d’autres, proposez-leur son code source. Le nom et le logo Golem Docs restent à ce projet.