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 refusedoconnection 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.confContenido:
<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.confAgregar:
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:
✔ 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: