Alojamiento propio
Golem Docs en tu propio servidor.
Golem Docs es gratis y no necesita ningún servidor. Un servidor añade sincronización entre dispositivos, uso compartido y edición en vivo. golemdocs.com tiene uno por 3 $ al mes, o puedes tener el tuyo en tu propia cuenta de Cloudflare, y los archivos y las cuentas son tuyos.
Cómo funciona
El servidor es un único Cloudflare Worker. También sirve la app, así que tu dirección se convierte en Golem Docs para las personas que dejes entrar. Lo guarda todo en cuatro productos de Cloudflare, todos en tu cuenta:
| Workers | Los archivos de la app y la API que inicia la sesión de las personas y guarda sus documentos. |
|---|---|
| D1 | Una base de datos: cuentas, sesiones, uso compartido y la lista de documentos y carpetas de cada persona. |
| R2 | Los documentos en sí, sus imágenes y sus versiones anteriores. |
| Durable Objects | Una sala para cada documento mientras varias personas lo editan juntas. |
Por ahora solo funciona en Cloudflare. Si quieres alojarlo en otro sitio, en tu propio ordenador o con otro proveedor, escríbeme y prepararé un plan para que funcione sin Cloudflare.
Cuánto cuesta
Para un hogar puede no costar nada. El plan gratuito de Cloudflare incluye 100.000 solicitudes al día y 10 GB de almacenamiento de archivos; a partir de 10 GB, el almacenamiento cuesta 0,015 $ por GB al mes, así que 100 GB salen por unos 1,35 $. El plan gratuito permite poco tiempo de cálculo por solicitud, así que los documentos largos pueden necesitar el plan Workers Paid: 5 $ al mes, con límites mucho más altos. Consulta los precios de Cloudflare para ver las cifras actuales.
Qué necesitas
- Una cuenta de Cloudflare. Un dominio en ella es opcional: sin él, tu servidor recibe una dirección workers.dev gratuita.
- Un ordenador con Node 22.13 o posterior y pnpm, para configurarlo y actualizarlo. Después no se ejecuta nada en él.
- Una cuenta de GitHub, para crear la app de inicio de sesión. También funciona iniciar sesión con Google, Microsoft y Apple.
Configurarlo
Lleva una media hora. Cada comando se ejecuta en una terminal, desde la carpeta a la que descargues el código.
1. Consigue el código e inicia sesión en Cloudflare
Esto descarga Golem Docs, instala lo que necesita y abre tu navegador para que pueda usar tu cuenta de Cloudflare.
git clone https://github.com/davidfig/golemdocs.git cd golemdocs pnpm install pnpm --filter @golemdocs/server exec wrangler login
2. Crea la base de datos y el almacenamiento
Primero activa R2 en el panel de Cloudflare; puede que Cloudflare te pida un método de pago, incluso dentro de la parte gratuita. Después, esto crea la base de datos y el bucket de almacenamiento, y muestra el id de la base de datos.
pnpm --filter @golemdocs/server cf:setup
3. Indica la cuenta, la base de datos y la dirección
Copia server/wrangler.local.example.json a server/wrangler.local.json y rellénalo: el id de tu cuenta de Cloudflare, el id de la base de datos del paso 2 y tu dominio. Escribe workers.dev como dominio para usar la dirección gratuita.
{
"ACCOUNT_ID": "…",
"DIRECTORY_ID": "…",
"DIRECTORY_DEV_ID": "",
"DOMAIN": "docs.example.com"
}
4. Crea las tablas y ponlo en línea
El segundo comando compila la app, la sube con el servidor y muestra la dirección en la que está.
pnpm --filter @golemdocs/server cf:migrate pnpm --filter @golemdocs/server deploy:prod
5. Crea una app de inicio de sesión
En GitHub, abre Settings › Developer settings › OAuth Apps › New OAuth App. Dale la dirección de tu servidor y https://<tu dirección>/api/auth/callback/github como URL de callback. Luego genera un client secret.
6. Decide quién puede iniciar sesión
Cada comando pide un valor. Ejecútalos desde la carpeta 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 lista de documentos de todos vive en la única base de datos, así que el servidor no necesita un token de la API de Cloudflare. |
|---|---|
ALLOWED_EMAILS | Quién puede iniciar sesión: direcciones completas (me@example.com) o un dominio entero (@example.com), separados por comas. Configúralo, o cualquiera que encuentre tu dirección podrá registrarse y guardar archivos a tu costa. |
ADMIN_EMAILS | Tu propia dirección. Los administradores siempre pueden iniciar sesión y leer los comentarios que envía la gente. |
LINK_WEBSITE, LINK_SUPPORT… | Opcional: adónde enlazan el menú Ayuda y el documento de bienvenida, en lugar de golemdocs.com. La guía completa los enumera todos. |
7. Inicia sesión
Abre tu dirección e inicia sesión con GitHub. Los documentos que crees con la sesión iniciada se guardan ahora en tu servidor, y las personas de tu lista pueden compartirlos entre sí.
Mantenerlo al día
Cuando salga una versión nueva, consíguela y ponla en línea del mismo modo. Lee antes el Diario: una versión que cambie cómo se guardan los archivos o las cuentas lo dice allí.
git pull pnpm install pnpm --filter @golemdocs/server cf:migrate pnpm --filter @golemdocs/server deploy:prod
Qué cambia respecto a golemdocs.com
- Úsalo en el navegador. Por ahora, las aplicaciones de escritorio y del teléfono solo se conectan a golemdocs.com.
- No se vende nada. Todos los que dejes entrar tienen sincronización, uso compartido y edición en vivo.
- Las personas de tu servidor pueden compartir entre sí, pero no con cuentas de golemdocs.com ni de otros servidores.
- Lo cuidas tú: sus actualizaciones y las copias de seguridad de su base de datos y su almacenamiento.
La app y el servidor están bajo la AGPL-3.0: si ejecutas una versión modificada para otras personas, ofréceles su código fuente. El nombre y el logotipo de Golem Docs se quedan con este proyecto.