Despliegue de OnlyOffice Document Server en un VPS: tu propio editor de documentos en la nube
TL;DR
En esta guía detallada, configuraremos y desplegaremos paso a paso OnlyOffice Document Server en tu propio VPS, convirtiéndolo en una potente plataforma para la edición colaborativa de documentos, hojas de cálculo y presentaciones, totalmente bajo tu control. Aprenderás a elegir la configuración de VPS adecuada, preparar el servidor, instalar y configurar OnlyOffice usando Docker, asegurar el acceso a través de HTTPS con Nginx y Certbot, así como a implementar una estrategia robusta de copia de seguridad y mantenimiento.
- Elegiremos la configuración de VPS óptima, considerando la carga y el presupuesto.
- Prepararemos un servidor basado en Ubuntu 24.04 LTS con medidas de seguridad básicas.
- Instalaremos y configuraremos OnlyOffice Document Server versión 8.x/9.x (actualizado a 2026) usando Docker.
- Protegeremos el acceso a OnlyOffice a través de Nginx como proxy inverso y configuraremos HTTPS con certificados gratuitos de Let's Encrypt.
- Desarrollaremos una estrategia de copias de seguridad para preservar datos y configuraciones, así como un plan de mantenimiento regular.
- Obtendremos una plataforma totalmente funcional, segura y gestionada por ti para la colaboración en documentos.
Qué configuramos y por qué
En el mundo moderno, la colaboración en documentos se ha convertido en una parte integral de cualquier proyecto, ya sea el desarrollo de software, la gestión de una startup o la organización de una comunidad de juegos. Muchos están acostumbrados a las soluciones en la nube de Google o Microsoft; sin embargo, a menudo conllevan problemas de privacidad de datos, limitaciones de funcionalidad o un alto costo al escalar. OnlyOffice Document Server ofrece una potente alternativa: es un conjunto de editores en línea para documentos de texto, hojas de cálculo y presentaciones que puedes desplegar en tu propio servidor.
Al desplegar OnlyOffice Document Server en tu VPS, obtienes control total sobre tus datos e infraestructura. Esto permite garantizar un alto nivel de seguridad, adaptar el sistema a requisitos específicos y evitar la dependencia de proveedores externos. Al final, obtendrás un análogo funcional de Google Docs o Microsoft Office Online, accesible a través de un navegador web, con capacidad de edición colaborativa en tiempo real, soporte para formatos populares (DOCX, XLSX, PPTX) e integración con diversas plataformas de almacenamiento de archivos, como Nextcloud, ownCloud o SharePoint. Es la solución ideal para un fundador de SaaS en solitario que quiera configurar Mattermost para su equipo, o para un desarrollador que necesite levantar GitLab y asegurar la colaboración en la documentación.
Entre las principales alternativas a OnlyOffice Document Server se pueden destacar:
- Google Workspace (Google Docs, Sheets, Slides): Conveniente, ampliamente difundido, pero los datos se almacenan en los servidores de Google y el costo puede ser significativo para equipos grandes. Existen preocupaciones sobre la privacidad de los datos.
- Microsoft 365 (Office Online): Similar a Google Workspace, vinculación al ecosistema de Microsoft, cuestiones de soberanía de datos y control sobre la infraestructura.
- Collabora Online (basado en LibreOffice): Otra opción de código abierto que también requiere despliegue en un servidor. Tiene sus propias particularidades en la integración y el soporte de formatos, a veces inferior a OnlyOffice en compatibilidad con formatos de MS Office.
La elección de una solución self-hosted en un VPS se debe a varias ventajas clave. Primero, es la independencia. No estás atado a la política de un solo proveedor y controlas completamente el ciclo de vida de tus datos. Segundo, es la seguridad y confidencialidad. Todos los datos permanecen en tu servidor, lo cual es crucial para información sensible o para aquellos que se preocupan por la privacidad. Tercero, es la flexibilidad. Puedes configurar el sistema según tus necesidades, integrarlo con servicios internos y escalar los recursos a medida que crecen las demandas. Finalmente, para muchas tareas, puede resultar más económico a largo plazo, especialmente si ya tienes un VPS que está inactivo o no se utiliza a plena capacidad, por ejemplo, para ejecutar un nodo de Bitcoin/Ethereum o un servidor de Minecraft.
Qué configuración de VPS se necesita para esta tarea
La elección de un VPS adecuado para OnlyOffice Document Server depende de la carga prevista, el número de usuarios simultáneos y la intensidad del trabajo con documentos. OnlyOffice es una aplicación bastante intensiva en recursos, especialmente durante la edición colaborativa activa de archivos grandes. Requiere importantes recursos de CPU y RAM para procesar documentos en tiempo real.
Requisitos mínimos (para 1-5 usuarios simultáneos, uso poco frecuente):
Esta configuración es adecuada para uso personal o para un equipo muy pequeño que no trabaja con documentos de forma constante.
- Procesador (CPU): 2 núcleos (arquitectura x64). Núcleos modernos con buen rendimiento.
- Memoria RAM (RAM): 4 GB. Solo para OnlyOffice Document Server. Si el servidor ejecutará otros servicios (por ejemplo, Nextcloud, base de datos), se necesitará más.
- Disco: 50 GB SSD. El SSD es crucial para el rendimiento de E/S, ya que OnlyOffice trabaja activamente con archivos temporales.
- Red: 100 Mbps. Suficiente para el trabajo básico, pero para el intercambio intensivo de datos puede ser un cuello de botella.
Requisitos recomendados (para 5-20 usuarios simultáneos, uso activo):
Esta configuración garantizará un trabajo cómodo y estable para la mayoría de los equipos pequeños y medianos.
- Procesador (CPU): 4 núcleos. Esto proporcionará suficiente potencia de cálculo para procesar varios documentos simultáneamente.
- Memoria RAM (RAM): 8-16 GB. Esto garantizará un trabajo cómodo al editar documentos complejos, trabajar con muchas pestañas y con varios usuarios simultáneamente. OnlyOffice utiliza activamente la RAM para el almacenamiento en caché.
- Disco: 100-200 GB SSD. Suficiente para el sistema operativo, imágenes Docker, almacenamiento de archivos temporales de OnlyOffice y posible integración con otros servicios.
- Red: 1 Gbps. Un alto ancho de banda de red es importante para el intercambio rápido de datos entre clientes y el servidor, especialmente durante la edición colaborativa.
Para un trabajo cómodo con OnlyOffice Document Server para un equipo pequeño, se puede considerar un VPS con las características indicadas. Asegúrate de que el plan elegido se ajuste a tus necesidades de CPU, RAM y espacio en disco para evitar problemas de rendimiento.
¿Cuándo se necesita un servidor dedicado y no un VPS?
Un servidor dedicado se vuelve necesario cuando:
- Gran número de usuarios: Más de 50-100 usuarios simultáneos que trabajan intensivamente con documentos, o miles de usuarios con acceso periódico.
- Altos requisitos de rendimiento: Trabajo regular con documentos muy grandes (cientos de páginas, tablas complejas con miles de filas, macros), presentaciones complejas con gran cantidad de medios o fuentes específicas.
- Requisitos específicos de seguridad o cumplimiento normativo: Algunos requisitos regulatorios (por ejemplo, GDPR, HIPAA) pueden prescribir el uso de equipos físicamente aislados, donde tú eres el único inquilino.
- Necesidad de personalización completa del hardware: Por ejemplo, el uso de controladores RAID especializados, GPU para ciertas tareas de procesamiento de imágenes o video (aunque esto es raro para OnlyOffice), o tarjetas de red específicas.
- Integración con sistemas corporativos pesados: Si OnlyOffice forma parte de una gran infraestructura corporativa con altos requisitos de uptime y rendimiento, un servidor dedicado puede ser preferible.
En la mayoría de los casos, para pequeñas y medianas empresas, así como para necesidades personales, un VPS bien configurado será más que suficiente. Si planeas ejecutar OnlyOffice junto con otros servicios que consumen muchos recursos (por ejemplo, una gran instancia de GitLab o múltiples servidores de juegos), entonces un servidor dedicado puede estar justificado.
Ubicación del VPS: ¿qué factores influye?
La elección de la ubicación geográfica de tu VPS también tiene importancia:
- Latencia (Latency): Cuanto más cerca esté el servidor de los usuarios principales, menor será la latencia y más rápida la respuesta. Esto es especialmente importante para la edición colaborativa interactiva, donde cada milisegundo afecta la experiencia del usuario. Una alta latencia puede hacer que la colaboración sea incómoda.
- Legislación y soberanía de datos: En algunas jurisdicciones existen reglas estrictas para el almacenamiento y procesamiento de datos. La elección de la ubicación del servidor permite cumplir con estos requisitos y permanecer dentro del marco legal. Esto es crítico para proyectos relacionados con información confidencial.
- Peering de red: La calidad de las conexiones de red del proveedor en la ubicación elegida puede afectar la velocidad de acceso general y la estabilidad de la conexión. Un buen peering con grandes proveedores garantiza un acceso rápido y fiable.
- Costo: En algunas regiones, el costo de un VPS puede ser mayor o menor debido a las diferencias en los precios de la electricidad, los bienes raíces y los impuestos.
Se recomienda elegir una ubicación lo más cercana posible a tu audiencia principal o al lugar de trabajo del equipo para minimizar las latencias y garantizar el máximo rendimiento.
Preparación del servidor
Antes de proceder con la instalación de OnlyOffice Document Server, es necesario realizar la configuración básica de su nuevo VPS. Utilizaremos Ubuntu Server 24.04 LTS, ya que es un sistema operativo popular, estable y bien soportado, que seguirá siendo relevante en 2026, ofreciendo soporte a largo plazo y actualizaciones de seguridad.
1. Actualización del sistema
En primer lugar, conéctese al servidor por SSH (normalmente como usuario root o el proporcionado por el proveedor) y actualice todos los paquetes a sus versiones más recientes. Esto asegurará que esté trabajando con las últimas correcciones de seguridad y versiones estables del software.
sudo apt update && sudo apt upgrade -y
Este comando actualizará la lista de paquetes disponibles desde los repositorios e instalará todas las actualizaciones disponibles. La bandera -y confirma automáticamente la instalación para no requerir confirmación para cada paquete.
2. Creación de un nuevo usuario con permisos sudo
Trabajar como usuario root es inseguro, ya que otorga derechos ilimitados y aumenta el riesgo de daños accidentales o malintencionados al sistema. Crearemos un nuevo usuario y le daremos permisos sudo para realizar tareas administrativas.
sudo adduser onlyuser
Siga las instrucciones en pantalla para establecer una contraseña segura y (opcionalmente) completar la información del usuario. Luego, añada el nuevo usuario al grupo sudo para que pueda ejecutar comandos con privilegios administrativos:
sudo usermod -aG sudo onlyuser
Salga de la sesión actual de root e inicie sesión como el nuevo usuario onlyuser para asegurarse de que los permisos estén configurados correctamente.
exit
ssh onlyuser@your_vps_ip
Ahora, todas las acciones futuras se realizarán como el usuario onlyuser utilizando sudo.
3. Configuración de claves SSH (recomendado)
Para mejorar la seguridad y la comodidad, se recomienda utilizar claves SSH en lugar de contraseñas para iniciar sesión en el servidor. Esto reduce significativamente el riesgo de ataques de fuerza bruta. Si aún no las ha configurado, hágalo ahora.
En su máquina local genere un par de claves SSH (si no tiene uno):
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Siga las instrucciones para guardar la clave (normalmente en ~/.ssh/id_rsa) y establecer una frase de contraseña (passphrase) para protección adicional. Luego, copie la clave pública al servidor:
ssh-copy-id onlyuser@your_vps_ip
Este comando copiará su clave pública al archivo ~/.ssh/authorized_keys en el servidor. Después de esto, podrá iniciar sesión sin contraseña (o utilizando la frase de contraseña, si la estableció). Para deshabilitar completamente el inicio de sesión con contraseña en el servidor, edite el archivo de configuración del servidor SSH:
sudo nano /etc/ssh/sshd_config
Busque la línea #PasswordAuthentication yes (o simplemente PasswordAuthentication yes) y cámbiela a:
PasswordAuthentication no
También se recomienda asegurarse de que la línea PubkeyAuthentication yes no esté comentada. Guarde los cambios y reinicie el servicio SSH para que surtan efecto:
sudo systemctl restart sshd
Importante: Antes de deshabilitar la autenticación por contraseña, asegúrese de poder iniciar sesión con la clave SSH. De lo contrario, corre el riesgo de perder el acceso al servidor.
4. Configuración del firewall (UFW)
UFW (Uncomplicated Firewall) es una interfaz fácil de usar para gestionar el firewall netfilter en Linux. Lo configuraremos para permitir el acceso solo a los puertos necesarios y bloquear todo el demás tráfico, aumentando la seguridad del servidor.
sudo apt install ufw -y
Permitiremos el acceso a SSH (puerto 22), HTTP (puerto 80) y HTTPS (puerto 443). Estos puertos son necesarios para la administración remota del servidor y el funcionamiento de los servicios web.
sudo ufw allow OpenSSH # Permite SSH en el puerto 22
sudo ufw allow http # Permite HTTP en el puerto 80
sudo ufw allow https # Permite HTTPS en el puerto 443
sudo ufw enable # Habilita el firewall
Confirme la activación del firewall (introduciendo y si se le solicita). Verifique el estado del firewall para asegurarse de que las reglas se hayan aplicado:
sudo ufw status verbose
La salida debería mostrar que SSH, HTTP y HTTPS están permitidos.
5. Instalación de Fail2Ban
Fail2Ban es un servicio que escanea archivos de registro (por ejemplo, /var/log/auth.log) en busca de actividad sospechosa, como múltiples intentos fallidos de inicio de sesión. Al detectar dicha actividad, Fail2Ban bloquea automáticamente las direcciones IP de los atacantes durante un tiempo determinado, lo que ayuda a proteger contra ataques de fuerza bruta.
sudo apt install fail2ban -y
Fail2Ban comienza a funcionar inmediatamente después de la instalación con la configuración predeterminada, que incluye protección SSH. Para una configuración más detallada, puede copiar el archivo de configuración /etc/fail2ban/jail.conf a /etc/fail2ban/jail.local y realizar cambios allí para que no sean sobrescritos al actualizar el paquete Fail2Ban.
sudo systemctl enable fail2ban # Habilita el inicio automático de Fail2Ban al arrancar el sistema
sudo systemctl start fail2ban # Inicia el servicio Fail2Ban
Ahora su servidor está listo para la instalación de OnlyOffice Document Server. Está actualizado, protegido con medidas de seguridad básicas y listo para el despliegue de aplicaciones.
Instalación de software - paso a paso
Instalaremos OnlyOffice Document Server utilizando Docker y Docker Compose. Este es el método más flexible, escalable y recomendado, que permite aislar la aplicación del sistema principal, gestionar fácilmente sus versiones y dependencias. Utilizaremos la versión de OnlyOffice Document Server, relevante para 2026, que corresponderá a las últimas versiones estables (presumiblemente, será v8.x o v9.x).
1. Instalación de Docker Engine y Docker Compose
Para empezar, instalaremos Docker Engine — el entorno de ejecución de contenedores, y Docker Compose — la herramienta para definir y ejecutar aplicaciones Docker multi-contenedor. Seguiremos las recomendaciones oficiales para la instalación de Docker.
# Paso 1: Eliminar versiones antiguas de Docker (si las hay) para evitar conflictos
for pkg in docker.io docker-doc docker-compose docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin; do sudo apt remove $pkg; done
# Paso 2: Actualizar la lista de paquetes
sudo apt update
# Paso 3: Instalar las dependencias necesarias para trabajar con repositorios HTTPS
sudo apt install ca-certificates curl gnupg -y
# Paso 4: Añadir la clave GPG oficial de Docker. Esto es necesario para verificar la autenticidad de los paquetes Docker.
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Paso 5: Añadir el repositorio de Docker a la lista de fuentes de APT
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Paso 6: Actualizar la lista de paquetes con el nuevo repositorio de Docker
sudo apt update
# Paso 7: Instalar Docker Engine, Docker CLI, containerd y Docker Compose Plugin
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
Después de la instalación, añada su usuario (onlyuser) al grupo docker para ejecutar comandos Docker sin necesidad de usar sudo:
sudo usermod -aG docker ${USER}
Salga de la sesión SSH actual y vuelva a iniciar sesión para que los cambios en los grupos de usuario surtan efecto:
exit
ssh onlyuser@your_vps_ip
Verifique que Docker esté instalado y funcionando correctamente, ejecutando el contenedor de prueba "hello-world":
docker run hello-world
Debería ver un mensaje de bienvenida de Docker, confirmando la instalación exitosa.
2. Despliegue de OnlyOffice Document Server con Docker Compose
Ahora que Docker está instalado, podemos desplegar OnlyOffice Document Server. Crearemos un directorio separado para nuestro proyecto y un archivo docker-compose.yml, que describirá la configuración del contenedor de OnlyOffice.
mkdir -p ~/onlyoffice # Creamos el directorio para el proyecto
cd ~/onlyoffice # Nos movemos al directorio creado
nano docker-compose.yml # Creamos y abrimos el archivo docker-compose.yml para editarlo
Pegue el siguiente contenido en el archivo docker-compose.yml. Utilizamos la imagen onlyoffice/documentserver:latest, que siempre apuntará a la versión estable más reciente, relevante también en 2026. En este ejemplo, OnlyOffice escuchará en los puertos 80 (HTTP) y 443 (HTTPS) dentro del contenedor, los cuales proxyaremos a los puertos 8000 y 8443 de su VPS respectivamente. Esto permite evitar conflictos con Nginx, que escuchará en los puertos 80 y 443 en el host.
version: '3.8'
services:
documentserver:
image: onlyoffice/documentserver:latest
container_name: onlyoffice-documentserver
hostname: onlyoffice
environment:
# OBLIGATORIO: REEMPLACE 'YOUR_VERY_STRONG_SECRET_KEY' por una cadena aleatoria larga y compleja.
# Esta clave se utiliza para proteger el JWT (JSON Web Token) que OnlyOffice usa para autenticar solicitudes
# de aplicaciones cliente (por ejemplo, Nextcloud). Sin esta clave, su instalación será vulnerable.
- JWT_SECRET=YOUR_VERY_STRONG_SECRET_KEY
- JWT_ENABLED=true
- JWT_HEADER=Authorization
- JWT_IN_BODY=false
# Variables de entorno adicionales para configurar OnlyOffice (descomente si es necesario)
# - DB_TYPE=postgres # Si desea utilizar una base de datos PostgreSQL externa
# - DB_HOST=localhost # Host de su DB
# - - DB_PORT=5432 # Puerto de la DB
# - DB_NAME=onlyoffice # Nombre de la base de datos
# - DB_USER=onlyoffice # Usuario de la DB
# - DB_PWD=your_db_password # Contraseña del usuario de la DB
ports:
- "8000:80" # Proxy del puerto HTTP interno de OnlyOffice al puerto 8000 del host
- "8443:443" # Proxy del puerto HTTPS interno de OnlyOffice al puerto 8443 del host (para acceso directo por HTTPS, si Nginx no se usa)
volumes:
- /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data # Para datos de OnlyOffice (caché, archivos temporales)
- /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice # Para los logs de OnlyOffice
- /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice # Para librerías y archivos de servicio
- /app/onlyoffice/DocumentServer/fonts:/usr/share/fonts/truetype # Para fuentes personalizadas
restart: always # Reinicio automático del contenedor en caso de fallos o reinicio del servidor
healthcheck: # Verificación del estado del contenedor
test: ["CMD-SHELL", "wget -q --no-check-certificate https://localhost/healthcheck || exit 1"]
interval: 30s
timeout: 10s
retries: 5
IMPORTANTE: No olvide reemplazar YOUR_VERY_STRONG_SECRET_KEY por una cadena secreta larga, aleatoria y compleja. Puede generarla, por ejemplo, con openssl rand -base64 32. Esta clave es críticamente importante para la seguridad de su instalación de OnlyOffice y para protegerla del acceso no autorizado. Anótela en un lugar seguro.
Guarde el archivo (presione Ctrl+X, luego Y, luego Enter).
3. Inicio de OnlyOffice Document Server
Ahora que el archivo docker-compose.yml está listo, inicie el contenedor Docker Compose:
docker compose up -d
Este comando descargará la imagen de OnlyOffice Document Server (si no está localmente), creará los volúmenes definidos en el archivo y ejecutará el contenedor en segundo plano (-d). El proceso puede tardar varios minutos dependiendo de la velocidad de su conexión a internet y el rendimiento del VPS.
Verifique que el contenedor esté en ejecución y funcionando correctamente:
docker ps
Debería ver el contenedor con el nombre onlyoffice-documentserver y el estado Up, así como información sobre los puertos redirigidos.
4. Verificación de la disponibilidad básica
OnlyOffice Document Server ahora debería estar accesible a través de la dirección IP de su VPS en el puerto 8000 (para HTTP). Abra en su navegador http://your_vps_ip:8000. Debería ver la página de bienvenida de OnlyOffice Document Server con instrucciones de integración. Esto significa que el servidor está funcionando y responde a las solicitudes.
En esta etapa, OnlyOffice Document Server está instalado y funcionando, pero aún no está protegido con HTTPS ni es accesible por nombre de dominio. Nos ocuparemos de esto en la siguiente sección.
Configuración
Después de una instalación exitosa de OnlyOffice Document Server en un contenedor Docker, el siguiente paso crucial es su configuración adecuada para un acceso seguro y conveniente. Esto incluye la configuración de un proxy inverso para el acceso por nombre de dominio, la provisión de cifrado HTTPS con Let's Encrypt y la protección básica.
1. Configuración del nombre de dominio y DNS
Antes de configurar HTTPS, necesitará un nombre de dominio (por ejemplo, docs.yourdomain.com) que apunte a la dirección IP de su VPS. Agregue el registro A correspondiente en la configuración DNS de su dominio. Asegúrese de que el registro se haya propagado completamente a través de los servidores DNS (esto puede tardar desde unos minutos hasta varias horas) antes de pasar al siguiente paso.
Ejemplo de registro DNS:
| Tipo de registro | Nombre/Host | Valor | TTL |
|---|---|---|---|
| A | docs | Su_dirección_IP_de_VPS | 3600 |
2. Instalación y configuración de Nginx como proxy inverso
Nginx actuará como un servidor proxy inverso. Recibirá solicitudes en los puertos estándar (80 para HTTP y 443 para HTTPS) para su nombre de dominio y las reenviará al contenedor Docker de OnlyOffice (que hemos configurado en los puertos 8000 y 8443). Esto nos permitirá usar un solo nombre de dominio, configurar HTTPS y mejorar la seguridad al ocultar los puertos internos de OnlyOffice.
# Instalación de Nginx
sudo apt install nginx -y
Cree un nuevo archivo de configuración de Nginx para su dominio. Este será un host virtual para OnlyOffice:
sudo nano /etc/nginx/sites-available/onlyoffice.conf
Pegue el siguiente contenido en el archivo, reemplazando docs.yourdomain.com con su nombre de dominio real. Esta configuración manejará primero las solicitudes HTTP y luego será actualizada por Certbot para HTTPS.
server {
listen 80;
server_name docs.yourdomain.com; # Reemplace con su nombre de dominio
# La redirección de HTTP a HTTPS será configurada automáticamente por Certbot
# location / {
# return 301 https://$host$request_uri;
# }
location / {
proxy_pass http://localhost:8000; # Redirigimos al puerto HTTP de OnlyOffice Docker
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade; # Importante para WebSocket
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
# OnlyOffice specific headers
proxy_read_timeout 1800s; # Aumentamos el tiempo de espera para archivos grandes
proxy_send_timeout 1800s;
}
# Agregamos un mapa para el encabezado Connection para manejar correctamente WebSocket
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
}
Cree un enlace simbólico a este archivo desde el directorio sites-enabled para activar la nueva configuración:
sudo ln -s /etc/nginx/sites-available/onlyoffice.conf /etc/nginx/sites-enabled/
Elimine la configuración predeterminada de Nginx para evitar posibles conflictos con la suya nueva:
sudo rm /etc/nginx/sites-enabled/default
Verifique la sintaxis de la configuración de Nginx en busca de errores y reinicie Nginx para aplicar los cambios:
sudo nginx -t # Verificación de sintaxis
sudo systemctl restart nginx # Reinicio de Nginx
Ahora podrá acceder a OnlyOffice a través de su nombre de dominio mediante HTTP (http://docs.yourdomain.com). Sin embargo, para la seguridad y la integración con otros servicios, necesitamos HTTPS.
3. Configuración de HTTPS con Certbot (Let's Encrypt)
Usaremos Certbot para obtener e instalar automáticamente certificados SSL/TLS gratuitos de Let's Encrypt. Certbot se integra con Nginx y lo configura automáticamente para trabajar con HTTPS.
# Instalación de Certbot y el plugin para Nginx
sudo apt install certbot python3-certbot-nginx -y
Ejecute Certbot para su dominio. Certbot modificará automáticamente la configuración de Nginx para usar HTTPS, creará nuevos bloques server para el puerto 443 y configurará la redirección de HTTP a HTTPS.
sudo certbot --nginx -d docs.yourdomain.com
Siga las instrucciones de Certbot:
- Ingrese una dirección de correo electrónico para recibir notificaciones sobre la caducidad del certificado.
- Acepte los términos de servicio de Let's Encrypt.
- Elija cómo Certbot debe redirigir el tráfico HTTP a HTTPS (se recomienda "2: Redirect" - esto redirigirá automáticamente todo el tráfico HTTP a HTTPS).
Una vez que Certbot se haya completado con éxito, su configuración de Nginx se actualizará y OnlyOffice estará disponible a través de HTTPS.
Verifique la renovación automática de los certificados de Let's Encrypt. Certbot agrega una tarea a cron que renueva automáticamente los certificados antes de su vencimiento. Puede probar este proceso:
sudo certbot renew --dry-run
Si el comando se ejecuta sin errores, la renovación automática funciona correctamente.
4. Configuración de JWT_SECRET en OnlyOffice (revisión)
En el archivo docker-compose.yml ya hemos establecido la variable de entorno JWT_SECRET. Asegúrese de que este secreto coincida con el que se utilizará en su sistema de gestión de documentos (por ejemplo, Nextcloud), si planea una integración. Esto es fundamental para la seguridad y el correcto funcionamiento de la integración. Si decide cambiar el secreto, no olvide actualizarlo tanto en el archivo docker-compose.yml (reiniciando el contenedor) como en la configuración de la plataforma integrable.
Para actualizar el secreto en el contenedor Docker, edite docker-compose.yml y reinicie el contenedor:
cd ~/onlyoffice
nano docker-compose.yml # Cambie el valor de JWT_SECRET
docker compose down # Detener el contenedor actual
docker compose up -d # Iniciar un nuevo contenedor con la configuración actualizada
5. Verificación de la funcionalidad
Abra la dirección https://docs.yourdomain.com en su navegador. Debería ver la página de bienvenida de OnlyOffice Document Server. Asegúrese de que la conexión sea segura (esto generalmente se muestra en el navegador como un "candado verde" o "Seguro").
Para una verificación más profunda, puede usar la utilidad curl en su VPS:
curl -I https://docs.yourdomain.com/healthcheck
En los encabezados de respuesta, debería ver HTTP/1.1 200 OK, lo que indica que el servidor OnlyOffice funciona correctamente y es accesible a través de Nginx y HTTPS.
En este punto, su OnlyOffice Document Server está completamente configurado, protegido y listo para integrarse con su sistema de gestión de documentos preferido.