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 :

WorkersLes fichiers de l’app, et l’API qui connecte les personnes et garde leurs documents.
D1Une base de données : comptes, sessions, partages, et la liste des documents et dossiers de chacun.
R2Les documents eux-mêmes, leurs images et leurs versions précédentes.
Durable ObjectsUne 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

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_DATABASEtrue : 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_EMAILSQui 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_EMAILSVotre 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

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.