Un solo archivo docker compose ejecuta en tu propia máquina el mismo servidor que hay detrás de cloud.foliowriter.app: coedición en vivo, proyectos cifrados de extremo a extremo, vista previa compuesta y exportación a PDF / Word / LaTeX (Pandoc y Typst vienen dentro de la imagen). Gratis para uso personal.
mkdir folio && cd folio
curl -fsSLO https://foliowriter.app/selfhost/docker-compose.yml
FOLIO_DOMAIN=folio.example.com docker compose up -d
El Caddy incluido obtiene y renueva el certificado de Let’s Encrypt para tu dominio y hace de proxy para HTTPS y los websockets de colaboración. Después abre https://folio.example.com. ¿Aún no tienes dominio? Ejecuta docker compose up folio-web y abre http://localhost:8787.
foliowriter/folio-web se publica para amd64 y arm64.Inicia el servidor con tu correo en FOLIO_ADMIN_EMAILS:
FOLIO_DOMAIN=folio.example.com FOLIO_ADMIN_EMAILS=you@example.com \
docker compose up -d
Cada dirección que figure ahí es siempre administradora: sin cuotas, y con acceso al panel /admin (cuentas, proyectos, almacenamiento, tráfico). Inicia sesión con ese correo; si no hay SMTP configurado, el enlace mágico de inicio de sesión se imprime en el registro del servidor en lugar de enviarse por correo:
docker compose logs folio-web | grep -i http
Abre el enlace impreso y ya estás dentro. Para enviar correos de verdad, define las variables SMTP_* (sirve cualquier relay) y PUBLIC_BASE_URL, para que los enlaces enviados usen tu dominio.
Todo son variables de entorno. Ponlas en un archivo .env junto a docker-compose.yml (Compose lo lee automáticamente):
FOLIO_DOMAIN=folio.example.com
PUBLIC_BASE_URL=https://folio.example.com
FOLIO_ADMIN_EMAILS=you@example.com
FOLIO_LIMIT_PROJECTS=0 # 0 = unlimited
FOLIO_LIMIT_STORAGE_MB=0 # 0 = unlimited
FOLIO_ENC_KEY=… # openssl rand -hex 32
| Variable | Qué hace |
|---|---|
FOLIO_DOMAIN | Dominio que Caddy sirve y para el que obtiene certificados (por omisión, localhost). |
PUBLIC_BASE_URL | Origen absoluto que se usa en los correos de inicio de sesión y en los enlaces para compartir. |
FOLIO_ADMIN_EMAILS | Correos separados por comas que siempre son administradores: exentos de cuota, pueden usar /admin. |
SMTP_HOST / PORT / USER / PASS / SECURE / FROM | Correo saliente para el inicio de sesión con enlace mágico. Sin definir → los enlaces se imprimen en el registro del contenedor. |
FOLIO_LIMIT_PROJECTS | Proyectos por cuenta (por omisión, 2). 0 = ilimitados: es lo que configura la mayoría de quienes lo alojan. |
FOLIO_LIMIT_STORAGE_MB | Almacenamiento por cuenta en MB (por omisión, 50). 0 = ilimitado. |
FOLIO_DEMOS | Ids de proyecto separados por comas que se ofrecen como espacios de demostración que se restablecen solos. |
FOLIO_ALLOW_GUEST_PROJECTS | Pon 1 para que los visitantes puedan crear proyectos sin iniciar sesión (por omisión, crear requiere una cuenta; las demostraciones siempre están abiertas). |
FOLIO_ENC_KEY | Clave de 64 caracteres hexadecimales que cifra en reposo los secretos de autenticador almacenados. |
Para actualizar: docker compose pull && docker compose up -d. Hay versiones etiquetadas (foliowriter/folio-web:0.2.0) si prefieres fijar una versión en lugar de seguir latest.
Todo (proyectos, cuentas, sesiones) vive en ./data, junto al archivo de Compose. La copia de seguridad es esa carpeta:
docker compose stop folio-web
tar czf folio-backup-$(date +%F).tgz data
docker compose start folio-web
Para restaurar, o cambiar de servidor, vuelve a poner data/ en su sitio y ejecuta docker compose up -d.
El uso personal es gratuito. La imagen es propietaria, pero alojarla no cuesta nada si es para ti, tu familia y tus colaboradores personales.
Los equipos y las organizaciones necesitan una licencia comercial. Ejecutarla para o dentro de una empresa, un centro educativo u otra organización, o con fines comerciales, requiere una; así es como se financia el nivel gratuito. Ponte en contacto y lo resolveremos enseguida.
No se permite redistribuirla, cambiarle la marca ni crear obras derivadas; los términos completos acompañan a la documentación de la imagen. ¿Prefieres no tener que ejecutar un servidor? cloud.foliowriter.app es la versión alojada, gratis para empezar.