Por qué autoalojar Outline en un VPS
Outline suele almacenar lo más estratégico que tiene una empresa: procedimientos internos, runbooks, decisiones de arquitectura, incorporación de nuevos empleados. En la versión SaaS, usted paga por usuario y sus contenidos viven en una infraestructura de terceros. Al instalarlo en su propio VPS, es usted quien fija las reglas: autenticación SSO a través de su proveedor, copias de seguridad de la base PostgreSQL según su política, retención ilimitada y número de usuarios sin facturar. Outline se mantiene ligero en lectura, pero se apoya en una stack precisa (PostgreSQL para los documentos, Redis para las sesiones y los websockets en tiempo real, un almacenamiento compatible con S3 para los archivos adjuntos). Un VPS dedicado le permite dimensionar cada uno de esos componentes y desplegar la pila completa con un solo archivo docker-compose.yml.
Lo que gana en concreto
- Usuarios ilimitados sin facturación por puesto, a diferencia de las ofertas SaaS.
- SSO integrado con su identidad corporativa (Google Workspace, OIDC, Azure AD) bajo su control.
- Búsqueda de texto completo eficaz servida directamente por su PostgreSQL, sin dependencia externa.
- Archivos adjuntos y exportaciones almacenados en su propio bucket S3 o en un MinIO autoalojado.
- Edición colaborativa en tiempo real gracias a Redis, sin que ningún dato pase por un tercero.
- Copias de seguridad y restauración bajo control: un
pg_dumpbasta para archivar toda la base documental.
Requisitos de hardware y software
Outline funciona con holgura con 2 vCPU y 4 GB de RAM para un equipo de 20 a 50 personas: PostgreSQL y Redis consumen poco en reposo, pero la edición en tiempo real y la búsqueda generan picos de carga puntuales. Calcule 20 GB de disco para la base y los registros, y más si almacena los archivos adjuntos localmente en lugar de en S3. En cuanto al software: Docker Engine y el plugin docker compose v2, un nombre de dominio apuntando a la IP del VPS (por ejemplo wiki.suempresa.com) y una cuenta SMTP para los correos de invitación. Outline exige obligatoriamente un proveedor de autenticación: prepare las credenciales OAuth (Google, Slack o un servidor OIDC) antes de empezar, porque no existe el inicio de sesión con simple contraseña.
Desplegar Outline paso a paso
Preparar el VPS y Docker
Actualice el sistema con
apt update && apt upgrade -y, instale Docker mediante el script oficial y compruebe el resultado condocker compose version. Cree una carpeta/opt/outlineque alojará su configuración.Generar los secretos y el archivo de entorno
Outline necesita dos claves: genérelas con
openssl rand -hex 32paraSECRET_KEYyUTILS_SECRET. Indique en el.envlas variablesDATABASE_URL,REDIS_URL,URL=https://wiki.suempresa.comy las credenciales OAuth de su proveedor.Definir la stack PostgreSQL, Redis y Outline
En
docker-compose.yml, declare tres servicios:postgres(imagenpostgres:15con un volumen persistente),redis(imagenredis:7) youtline(imagenoutlinewiki/outline:latest). Enlace Outline con ambos backends mediante las variables de entorno y exponga el puerto3000únicamente en la red interna.Inicializar la base de datos
Ejecute las migraciones antes del primer arranque con
docker compose run --rm outline yarn db:migrate --env=production-ssl-disabled. Este comando crea el esquema documental en PostgreSQL; sin él, Outline se negará a arrancar.Colocar un reverse proxy con SSL
Ponga Caddy o Traefik delante del servicio
outline. Con Caddy, una líneawiki.suempresa.com { reverse_proxy outline:3000 }genera y renueva automáticamente el certificado Let's Encrypt. Asegúrese de transmitir las cabeceras WebSocket para la edición en tiempo real.Arrancar y crear el primer espacio
Levante la pila con
docker compose up -dy abrahttps://wiki.suempresa.com. Inicie sesión con su proveedor OAuth: la primera cuenta autenticada se convierte en administradora del espacio de trabajo.
Active el almacenamiento S3 en lugar del local para los archivos adjuntos: apunte AWS_S3_UPLOAD_BUCKET_URL a un MinIO autoalojado en el mismo VPS. Así desacopla el volumen de los archivos de la base PostgreSQL, lo que hace que los pg_dump sean rápidos y ligeros, y le permite escalar sin engordar el contenedor de la aplicación.