Herramientas Informaticas

Etiqueta: ONLYOFFICE

🚀 Solución definitiva al error “ONLYOFFICE Document Server is unavailable” en Nextcloud (Snap + Docker)

Entrada fija

¿Tu integración de ONLYOFFICE en Nextcloud se desconecta sola y tienes que estar guardando la configuración a cada rato? 😤
Tranquilo, no eres el único. Después de muchas pruebas, encontré un script automático que simula hacer clic en “Guardar” y mantiene la conexión viva. Y lo mejor: se ejecuta solo a la medianoche para no molestar a los usuarios. 🌙

🔍 ¿Qué causa el error?

Si usas Nextcloud instalado como Snap y el ONLYOFFICE Document Server en Docker (con dominio DDNS y puerto personalizado), el problema suele ser que el servidor de documentos no puede descargar los archivos desde la URL pública. Al guardar manualmente la configuración, todo vuelve a funcionar… hasta que falla otra vez.

✅ La solución: un script + cron nocturno

Este script hace exactamente lo mismo que tú harías en la interfaz web: establece la URL del Document Server, la URL interna (StorageUrl), desactiva la verificación SSL y verifica la conexión. Lo programamos con cron para que se ejecute cada noche a las 12:00 AM, cuando nadie está usando el sistema.

📝 Paso 1: Crear el script

Abre una terminal en tu servidor Ubuntu y crea el archivo:

sudo nano /usr/local/bin/onlyoffice_refresh.sh

Copia y pega este contenido (ajusta las URLs a las tuyas):

#!/bin/bash

# Script para guardar la configuración de ONLYOFFICE exactamente como en la interfaz web
# Esto simula hacer clic en "Save"

NEXTCLOUD_OCC="/snap/bin/nextcloud.occ"

# Valores según tu configuración (¡cámbialos si es necesario!)
DOCUMENT_SERVER_URL="https://tudominio.dyndns.org:4445/"
STORAGE_URL="https://tudominio.dyndns.org:444/"   # O usa la IP interna si funciona mejor
VERIFY_PEER_OFF="true"

# Establecer DocumentServerUrl
$NEXTCLOUD_OCC config:app:set onlyoffice DocumentServerUrl --value="$DOCUMENT_SERVER_URL"

# Establecer StorageUrl (dirección para peticiones internas desde ONLYOFFICE Docs)
$NEXTCLOUD_OCC config:app:set onlyoffice StorageUrl --value="$STORAGE_URL"

# Desactivar verificación de certificados
$NEXTCLOUD_OCC config:app:set onlyoffice verify_peer_off --value="$VERIFY_PEER_OFF"

# Limpiar InternalServerUrl (lo dejamos vacío)
$NEXTCLOUD_OCC config:app:delete onlyoffice InternalServerUrl >/dev/null 2>&1

# Verificar conexión
echo "Configuración aplicada. Verificando conexión..."
$NEXTCLOUD_OCC onlyoffice:documentserver --check

echo "Listo. Configuración guardada."

⚠️ Importante: Reemplaza tudominio.dyndns.org y los puertos por los tuyos. Si tu Nextcloud usa HTTP, cambia https por http. Si no usas puerto 444, ajústalo.

🔧 Paso 2: Dar permisos de ejecución

sudo chmod +x /usr/local/bin/onlyoffice_refresh.sh

🧪 Paso 3: Probar manualmente

sudo /usr/local/bin/onlyoffice_refresh.sh

Deberías ver un mensaje como Document Server is reachable. Si falla, revisa las URLs.

⏲️ Paso 4: Programar la tarea nocturna (cron)

sudo crontab -e

Agrega esta línea para que se ejecute todos los días a las 12:00 AM:

0 0 * * * /usr/local/bin/onlyoffice_refresh.sh >> /var/log/onlyoffice_refresh.log 2>&1

Con esto, cada medianoche el script se ejecutará y dejará la conexión lista para el día siguiente. Además, guarda un log en /var/log/onlyoffice_refresh.log por si quieres revisar que todo vaya bien.

🎯 ¿Por qué funciona?

El script fuerza la reescritura de los parámetros clave (DocumentServerUrl, StorageUrl, verify_peer_off) exactamente como lo harías desde el panel de administración de Nextcloud. Al ejecutarse una vez al día, evita que la conexión se caiga durante la jornada laboral. Es una solución sencilla, automática y sin impacto en el rendimiento.

🧠 Consejos adicionales

  • Si la conexión se sigue cayendo varias veces al día, puedes aumentar la frecuencia del cron a cada hora (0 * * * *) o cada 30 minutos (*/30 * * * *). El script es muy liviano.
  • Para una solución definitiva (sin cron), configura correctamente la variable StorageUrl apuntando a la IP interna de tu servidor (ej. http://192.168.0.1). Pero este script es un gran parche mientras encuentras la IP perfecta.
  • Mantén actualizados Nextcloud Snap, el conector ONLYOFFICE y el contenedor Docker del Document Server.

📢 ¿Te funcionó?
Si este tutorial te ayudó, comparte y comenta. Entre todos podemos hacer que Nextcloud + ONLYOFFICE funcione de maravilla. 💪


Etiquetas SEO sugeridas: Nextcloud ONLYOFFICE error, Document Server unavailable, Snap Nextcloud, Docker ONLYOFFICE, cron job, solución Nextcloud

Meta descripción: ¿El ONLYOFFICE de Nextcloud se desconecta solo? Aprende a crear un script automático que guarda la configuración cada noche y olvídate del error. Paso a paso para Snap y Docker.

🔥 Cómo configurar ONLYOFFICE en Docker con SSL y Nextcloud Snap (guía práctica sin errores) 🔥

Entrada fija

Después de varios intentos y errores típicos (puertos, certificados, Docker, etc.), finalmente logré dejar funcionando ONLYOFFICE Document Server en Docker con acceso HTTPS y listo para integrarse con Nextcloud instalado vía Snap. Aquí te dejo el proceso completo con datos genéricos 👇


🚧 Problemas comunes

  • Error de conexión (connection refused o connection reset)
  • Certificados SSL no detectados
  • Confusión entre Apache, Nginx y Docker
  • Intentar usar HTTPS dentro del contenedor (mala idea 😅)

🧠 Lo importante que debes entender

  • ONLYOFFICE usa Nginx interno, no Apache
  • Docker debe correr en HTTP interno
  • El SSL se maneja mejor fuera del contenedor
  • Nextcloud Snap ya trae su propio Apache (aislado)

👉 La solución correcta: usar Apache HTTP Server del sistema como proxy inverso


⚙️ Configuración final

🐳 1. Ejecutar ONLYOFFICE en HTTP

docker run -d -p 8080:80 onlyoffice/documentserver

🔐 2. Generar certificado SSL con Certbot

sudo snap stop nextcloud
sudo certbot certonly --standalone -d tudominio.com
sudo snap start nextcloud

👉 Los certificados quedarán en algo como:

/etc/letsencrypt/live/tudominio.com-0001/

🌐 3. Configurar Apache como proxy SSL

Archivo:

/etc/apache2/sites-available/onlyoffice.conf

Contenido:

<VirtualHost *:4443>
    ServerName tudominio.com

    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/tudominio.com-0001/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/tudominio.com-0001/privkey.pem

    ProxyPreserveHost On
    ProxyPass / http://localhost:8080/
    ProxyPassReverse / http://localhost:8080/

    RequestHeader set X-Forwarded-Proto "https"
</VirtualHost>

🔌 4. Habilitar el puerto en Apache

Editar:

/etc/apache2/ports.conf

Agregar:

Listen 4443

⚡ 5. Activar módulos necesarios

sudo a2enmod ssl proxy proxy_http headers

🚀 6. Activar sitio y reiniciar

sudo a2ensite onlyoffice.conf
sudo apachectl configtest
sudo systemctl restart apache2

🔥 7. Abrir firewall

sudo ufw allow 4443

✅ Resultado

Acceso funcionando en:

👉 https://tudominio.com:4443

✔ SSL válido
✔ Proxy funcionando
✔ Docker respondiendo correctamente
✔ Listo para integrarse con Nextcloud


🧪 Pruebas clave

curl http://localhost:8080/healthcheck   # → true
curl -k https://localhost:4443           # → 302 (correcto)

🧠 Conclusión

  • ❌ No uses SSL dentro de Docker
  • ✅ Usa proxy inverso en el host
  • ✅ Mantén servicios separados
  • ✅ Evita conflictos con Snap

🚀 Siguiente paso

Integrar ONLYOFFICE con Nextcloud usando JWT correctamente 🔐


Si estás montando tu propio entorno, esta arquitectura te va a ahorrar horas de debugging 💻🔥

Apóyame

Si esta guía te fue útil y quieres apoyar más contenido como este:

👉 https://www.patreon.com/u74078772?

Creado con WordPress & Tema de Anders Norén