Saludos amigos, en anteriores entradas os he contado cómo instalar ONLYOFFICE en un Ubuntu Server 16.04 LTS y posteriormente integrarlo dentro de Nextcloud para tener una experiencia completa de edición colaborativa de ficheros.
Topología lógica de la Infraestructura
Hoy os quiero dejar los pasos para usar un solo servidor, el de Nextcloud, donde instalaremos ONLYOFFICE Document Server como un contenedor Docker, la topología quedaría de la siguiente manera:
Tendremos un entorno en el que los equipos, en cualquier ubicación, se podrán conectar accediendo a Internet a un Nextcloud donde podrán editar ficheros xlsx, docx, pptx o .txt que tengan ubicados en su Nextcloud, sin ningún tipo de problema y usando únicamente el navegador web.
Requerimientos de Sistema
Apesar de estar instalando ONLYOFFICE Document Server en un contenedor, tenemos que tener suficiente recursos en el server donde desplegamos este contenedor, solamente para ONLYOFFICE tendremos que tener:
-
CPU dual core 2 GHz o superior
-
RAM 4 GB o superior
-
Al menos 40 GB de HDD de espacio libre
-
Requerimientos adicionales de al menos 2GB de swap
-
OS amd64 Linux distribution con kernel versión 3.10 o superior
-
Requerimientos adicionales
- Docker: versiónn 1.10 o superior
Instalandor Docker
Pre-requisitos
El primero paso, una vez hemos instalado Nextcloud, que no lo voy a cubrir aquí en este post, es instalar Docker, vamos a actualizar el sistema primero:
sudo apt-get update
Instalaremos ahora unas dependencias en caso de que no las tuvieramo:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
Añadiremos ahora la llave GPG de Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Podremos verificar que la huella es
sudo apt-key fingerprint 0EBFCD88
pub 4096R/0EBFCD88 2017-02-22
Key fingerprint = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <[email protected]>
sub 4096R/F273FCD8 2017-02-22
Por último añadiremos el repositorio estable y para Docker Community Edition para nuestro Ubuntu 16.04:
sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
Instalandor Docker
Instalaremos finalmente Docker ejecutando el siguiente comando:
sudo apt-get update && sudo apt-get install docker-ce
Si queremos verifiar que tenemos todo instalado podremos lanzar el siguiente contenedor:
sudo docker run hello-world
Y veremos algo como lo siguiente:
root@docs:~# sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
b04784fba78d: Pull complete
Digest: sha256:f3b3b28a45160805bb16542c9531888519430e9e6d6ffc09d72261b0d26ff74f
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://cloud.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
Es importante tener configurado IPv6 en vuestro docker antes de desplegar el contenedor.
docker network create --ipv6 --subnet=w:x:y:z:aaaa::/80 myfancynetwork sysctl net.ipv6.conf.eth0.proxy_ndp=1
Desplegar el contenedor de ONLYOFFICE
Es el momento de desplegar el conteneodr de ONLYOFFICE en el server de Nextcloud, para ello ejecutaremos el siguiente comando, que tomará el puerto 443 del contenedor y lo publicará al servidor de Nextcloud por el puerto 8443, además vamos a usar nuestro SSL válido:
mkdir /app/onlyoffice/DocumentServer/data/certs
Y pondremos el contenido de nuestro SSL en los siguientes ficheros:
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt
Yo he preferido usar SSL ya que queda mucho más profesional, además añadir la variable de restart always para que en caso de reinicio del nextcloud, se inicie el Host automáticamente:
sudo docker pull onlyoffice/documentserver
sudo docker run -itd -p 0.0.0.0:8443:443 --network=onlyoffice --restart=always \
-v /app/onlyoffice/DocumentServer/cache:/var/lib/onlyoffice/documentserver/App_Data/cache/files \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver
Esto hará que tengamos un contenedor con ONLYOFFICE ejecutándose en el puerto 8443 y que la caché, logs y data queden de manera estática en el servidor nextcloud, incluso aunque el container se apage o tenga alguna incidencia.
Es posible que tengáis que dar privilegios a estas nuevas carpetas, si no tenéis problemas no es necesario entonces:
chmod -R 777 /app/onlyoffice/
Si nos vamos a la IP, o fqdn con el puerto correspondiente veremos lo siguiente:
Ahora tenemos que realizar ciertas configuraciones adicionales, dentro del contenedor que podemos ver con docker ps -a
root@docs:~# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9055b77c6839 onlyoffice/documentserver "/bin/sh -c 'bash ..." 19 minutes ago Up 19 minutes 80/tcp, 0.0.0.0:8443->443/tcp romantic_kepler
Ahora entraremos en el contenedor con un attach, de la siguiente manera
docker attach 9055b77c6839
Y editaremos el fichero hosts como de costumbre, y añadiremos al final la IP del Docker Host que tiene Nextcloud en mi caso 172.18.0.1 con su fqdn (el mismo que usaremos para la integración más adelante)
vi /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 172.18.0.2 9055b77c6839 172.18.0.1 docs.zimbra.io
Instalar la integración de ONLYOFFICE y Nextcloud
Ahora tendremos que instalar la integración de ONLYOFFICE en Nextcloud, para ello seguiremos los siguientes pasos:
Una vez tenemos todo, la configuración del ONLYOFFICE en Nextcloud debe quedar así, con el puerto donde hemos puesto el ONLYOFFICE, y con la IP interna del contenedor, en mi caso la 172.18.0.2 por el puerto 8000
Resultado final
Y una vez configurado todo, ya podremos ver algo similar a lo siguiente en nuestro Nextcloud, cargando ONLYOFFICE desde un cómodo Container que hemos desplegado dentro:
Eso es todo amigos, os dejo todas las entradas sobre ONLYOFFICE hasta el momento:


una pregunta es el puerto 8000 o el puerto 8443?
Depende de lo que configures 🙂 En mi caso he usado el 8443 y lo he nateado al 443
sudo docker run -itd -p 0.0.0.0:8443:443Un saludo
Creo que se refiere a cuando indicas en nextcloud la ip 172.18.0.2. No entiendo por qué hay que poner esa ip (supongo que es la del adaptador de red del contenedor) y tampoco sé por qué ese puerto
Saludos, es muy sencillo, la IP 172.18.0.2 es la del contendor con ONLYOFFICE, que ademas publica su aplicacion por el puerto 8000 y 443 como ya sabemos.
Lo que hago en este tutorial es nateo el 443 de dentro del container de ONLYOFFICE al puerto 8443 del propio Nextcloud (el docker server), con lo que el propio Nextcloud que es docs.zimbra.io si se consulta al él mismo por el puerto 8443 verá ONLYOFFICE, pero además es importante ya que usuarios externos verán también que docs.zimbra.io por el puerto 8443 responde ONLYOFFICE, luego ya a Nextcloud le decimos que las peticiones internas las pase a la IP del contenedor.
Espero que quede claro ahora 🙂
Tengo dos consultas:
1.- Cuando ejecuto la siguiente linea:
“sudo docker run -itd -p 0.0.0.0:8443:443 –network=onlyoffice –restart=always \….”
Me dá la siguiente respuesta
docker: Error response from daemon: network onlyoffice not found.
Y he obviado “–network=onlyoffice” y funciona correctamente.
Mi pregunta es ¿que significa este parámetro y que es lo que realiza?
2.-Para la instalacion de ssl en el docker solo es necesario pegar el certificado en la ruta que describes (mkdir /app/onlyoffice/DocumentServer/data/certs ) o tengo que seguir las pautas que siguen en el post “https://www.jorgedelacruz.es/2017/04/27/onlyoffice-instalando-document-server-sobre-ubuntu-16-04-lts/#ssl”
Como siempre , saludos desde Perú y excelente trabajo !!
Saludos Luis,
El comando de Network es la red que he creado anteriormente para ello, aqui el ejemplo:
docker network create --ipv6 --subnet=w:x:y:z:aaaa::/80 myfancynetworksysctl net.ipv6.conf.eth0.proxy_ndp=1
Para el SSL solamente como menciono en este post para docker, el fichero .key y .crt
Un saludo
Excelente!, despejó mis dudas..!, ahora cuando realizo docker attach (id) y realizo el cambio al /etc/hosts , cambia . Pero al reiniciar y/o al entrar de nuevo al docker veo que se pierde el cambio realizado..alguna sugerencia?..
Saludos
entonces sería:
docker network create –ipv6 –subnet=w:x:y:z:aaaa::/80 onlyoffice
para crear la red con ese nombre.
saludos.
Hola Jorge.
Ante todo, se agradece de sobremanera tus publicaciones. Espero me puedas ayudar con un tema.
He seguido tu publicación para integrar Onlyoffice con NextCloud (Usando Docker) en una maquina de prueba. Claro que se tuve que realizar algunos ajustes de a tu publicación adaptándolo a mi realidad y mis configuraciones. Debo mencionar que primera ves escucho de docker, lo cual me obligo a leer del tema. Y me parece una herramienta con mucho potencial.
Bueno, al punto. Logré hacer correr Onlyoffice y ya sale por el puerto 8443 real del host (Redireccionar el puerto 443 virtual al 8443 del real). Y al entrar a la web https://:8443 me redirige a la pagina https://:8443/welcome/ mostrandome el mensaje “Document Server is running” y funcionando correctamente con https.
Hasta aquí, todo correcto, y yo emocionado de que después de mucho intento, al fin se me hizo.
Luego, para integrarlo con NextCloud, instalo el plugin para Onlyoffice. Luego voy a [Administracion / Configuracion adicional] y voy a la sección de OnlyOffice.
Ingreso los parametros solicitados [Dirección del Servicio de Edición de Documentos: https://:8443/ y al presionar , inmediatamente sale un mensaje arriba que dice “Error al intentar establecer la conexión (Solicitud Mala o error de límite de tiempo)”.
Sin embargo, desde NextCloud puedo crear documentos (docx, xlsx, pptx) sin problemas. Se abre el editor y guardan los cambios.
El problema surge que, las modificaciones realizadas a los documentos estan en la nube, pero no se reflejan en descarga.
Por ejemplo, ya he creado el documento prueba.xls, lo abrí con Onlyoffice y lo edito creo filas y columnas, le pongo formato, etc etc. Se guardan los cambios. Cuando abro el documento guardado desde la web NexCloud (click sobre el archivo), lo abre Onlyoffice correctamente. Se ven los cambios realizados.
Pero…. cuando descargo el archivo en local, y abro el documento, no se ven reflejados los cambios. Los mismo sucede con el cliente de Android, descargo el archivo pero no se reflejan los cambios realizados en Onlyoffice.
Tambien con el cliente de PC. El archivo se sincroniza normal, pero al abrir el documento sincronizado en local, no se reflejan los cambios.
Vuelvo nuevamente a abrir el archivo usando web NexCloud, y Onlyoffice si ve los cambios.
Es como si Onlyoffice realmente sacara una copia del archivo original en un segundo espacio, lo trabaja en este segundo espacio pero viculándolo al archivo original en NextCloud. Cuando realiza los cambios los guarda en este segundo espacio, pero no en el archivo original de Nexcloud.
Asi que, al descargar el archivo de NexCloud, baja el archivo sin cambios. Y al abrirlo desde NexCloud con OnlyOffice, como ya lo tiene vinculado al segundo espacio, OnyOffice abre el archivo del segundo espacio.
Debo suponer que falta alguna configuración o permiso adicional, para que OnlyOffice vuelque los cambios de forma efectiva sobre el archivo original alojado en NextCloud.
Espero me disculpes lo extenso de mi mensaje. Y mas aun, espero me ayudes.
Ha llegado bien el comentario, luego lo ojeo, un saludo!
Hola Jorge.
Disculpa que te vuelva a molestar. Publico la solución al problema.
Editamos el archivo /srv/www/htdocs/nextcloud/config/config.php y le agregamos la siguiente linea dentro del bloque CONFIG:
‘onlyoffice’ => array (‘verify_peer_off’ => TRUE, ),
Con esa cadena, ya estará funcionando sin problemas.
Pero.. igual las gracias por tu publicacion.
Que buenas noticias UnderUp, siento no haberte respondido antes.
un saludo y gracias por publicar la solución
Espero me disculpes por emitir una consulta que no va con el tema, pero… ¿Hay alguna forma de restringir los tipos de archivos que suben los usuarios al servidor NextCloud? Indistintamente si lo suben por el cliente web, Android, PC, etc.
Ejemplo: Prohibir la subida de archivos exe, js, etc.
Respuesta corta, necesitas el app File Access control de Nextcloud, respuesta larga, he preparado un Blog con detalles de como instalarla y configurarla para el próximo martes.
Ok, muchas gracias.
Hola Jorge
Disculpa que te moleste nuevamente. Ya imagino que te estaré cayendo pesado. Pero tengo otra consulta adicional respecto a la integración de OnlyOffice con NextCloud. Aun estoy en etapa de pruebas aprendiendo del tema, aunque aveces uno se queda corto de tiempo.
Pero bueno, he podido crear, modificar y editar archivos docs, pptx y xlsx usando OnlyOffice sobre Google Chrome. Pero al intentar realizar la edicion con OnlyOffice sobre otros navegadores, me salta el mensaje de error “No se puede acceder al ONLYOFFICE. Por favor, contacte con admin”. He probado con Firefox, Edge, IE, Opera; y en todos muestra el mismo mensaje de error. Solo funciona con Chrome.
¿Es un tema de compatibilidad de OnlyOffice con los navegadores? ¿O es tema de configuracion?
Saludos UnderUp,
Puedes preguntar siempre que quieras por supuesto, muy agradecido de tener feedback sobre las entradas. ONLYOFFICE tiene que funcionar en cualquier navegador, a mi me funciona y en su web no dicen nada de browsers no soportados. Cuando te sale ese error mira en los logs de nextcloud, o en el propio debug de navegador, a ver donde está queriendo acceder, etc.
Un saludo
Si usás un certificado creado con openssl (autofirmado) tenés que ingresar a la ip del document server (donde aparece “Document Server is Running”) con el navegador que querés utilizar y añadir la excepción de seguridad, de otra manera no te va a dejar ingresar desde Nextcloud.
Gracias por el comentario Luis, un saludo
Hola, estoy intentando configurar la instalación del DocumentServer vía Docker ya que la integración de NC y DocumentServer en el mismo host (puertos 8443 para NC y 443 para DS) no llegan a funcionar correctamente. Ambos usando el mismo certificado SSL válido.
El problema con el que me encuentro es que comparando el proceso de instalación documentado en onlyoffice ( https://helpcenter.onlyoffice.com/server/docker/document/docker-installation.aspx) y el que expones aquí, utilizas una red ipv6 para configurar el host docker, algo que yo no puedo utilizar o no sé como encauzar. Realmente no sé si puedo implementar ipv6 en el servidor (está detrás de un IPS).
Sería factible asignar una red ipv4 privada (local) al host docker que contendrá el DocumentServer?
Un saludo
J.
Actualmente el servidor cuenta con una ip pública (p.ej: 123.123.123.20/24)
Saludos Javier,
Podrias configurar una red IPv4 sin problema, en mi caso usé IPv6, ya que el container docker se autoasignaba una IP de IPV6, prueba con IPv4. Un saludo
Hola jorge como estas.
haber si podes darme una luz, tenho nextcloud en una vps y onlyoffice en otra, todo funcionando perfecto o casi.
estoy con el siguiente caso, un usuario edita una planilla, trabaja sobre ella, y otros usuarios editan la misma planilla, pero este primer usuario no los ve logados, y los otros no la ven a este primer usuario, como se cada un trabajase en planilhas difere tes, lo que este primer usuario todo lo que hace no se guarda.
que tendria que ver para tener idea de lo que pasa.
Saludos Marcelo, si miras los logs de onlyoffice, ves que los usuarios editan que id de fichero?
Un saludo
Hola Jorge,
He llegado hasta aquí, vía el comentario que publicaste en github:
https://github.com/ONLYOFFICE/onlyoffice-owncloud/issues/9
Tengo una web (red social), en la que almaceno los documentos a editar (angularjs)
Mediante una app de node (que hace las funciones de proxy), descargo el .doc y lo envío a OnlyOffice, para que lo edite, lo “devuelva” a Node, y este lo publique de nuevo en la web. (Espero que me hayas entendido).
Tras 130 mil pruebas (no exagero), he conseguido que se abra el documento, se edite y se guarde correctamente.
El único problema que tengo es que, al abrir el documento el Onlyoffice, aparece el mensaje:
“Warning. the document could not be saved. Please check connection settings or contact your administrator.”
Y eso, como te digo, edito, guardo y demás sin problemas. Pero aparece este molesto mensaje.
Añadí, por cierto, en el etc/hosts del docker de Onlyoffice, la IP del comentado servicio en Node.
¿Sabrías decirme por qué es?
También la pregunta sería: ¿Quién no “ve” ese documento para poderlo guardar? Si es onlyoffice hacía el Node o al revés.
Muchas gracias de antemano y un saludo,
Saludos Alvaro, que te dicen los logs de onlyoffice cuando te sale el error? Y de Nextcloud?
Un saludo
El error que me aparece en Onlyoffice es:
2018/02/23 10:26:34 [crit] 414#0: *2373 connect() to [::1]:8000 failed (99: Cannot assign requested address) while connecting to upstream, client: 172.18.0.1, server: , request: “GET /2018-01-11-13-33/plugins.json HTTP/1.1”, upstream: “http://[::1]:8000/plugins.json”, host: “172.18.0.11”, referrer: “http://172.18.0.11/2018-01-11-13-33/web-apps/apps/documenteditor/main/index.html?_dc=2018-01-11-13-33&lang=en&customer=ONLYOFFICE&frameEditorId=iframeEditor”
Gracias por tu rápida respuesta
Parece un tema de IPv6
Estoy intentando montar esto en casa para hacer pruebas.
Tengo tres errores que no sé si están relacionados:
1.- Al poner “docker network create –ipv6 –subnet=w:x:y:z:aaaa::/80 myfancynetwork” me dice “Error response from daemon: Invalid subnet w:x:y:z:aaaa:::/80 : invalid CIDR address: w:x:y:z:aaaa:::/80”.
No sé si hay que sustituir w, x, y, z y aaaa por algún valor determinado.
2.- Al salvar la configuración del ONLYOFFICE en NextCloud me sale “Error al intentar establecer la conexión (Se ha producido un error en el servicio de documentos: Error while downloading the document file to be converted.)”
Tengo NextCloud 14.0.4.2 y le he añadido al config.php la línea ‘onlyoffice’ => array (‘verify_peer_off’ => TRUE),
3.- En la configuración del ONLYOFFICE en NextCloud me sale el aviso “Aplicación de encriptación está activada, esta aplicación no puede funcionar. Usted puede seguir trabajando con la aplicación si activa la clave maestra.” No sé dónde se puede hacer eso, tengo en “Seguridad”, activado “Habilitar cifrado en el servidor” y Default encryption module
Hola Jorge muchas felicitaciones por la elaboración de tus artículos. Me he complementado tanto acá como en la documentación oficial de Onlyoffice. Quisiera consultarte algunas cosas, ya que no he logrado integrar Onlyoffice con nextcloud por que al salvar la configuración en este último me arroja un mensaje “error al intentar establecer la conexión (solicitud mala o error de límite de tiempo)” Por lo que tengo la duda de si acaso realiza la búsqueda por internet o solo basta con tener DNS locales? Quedo atento a tus comentarios. Muchos saludos.
Comparto los problemas del compeñero paco..
Tengo tres errores que no sé si están relacionados:
1.- Al poner “docker network create –ipv6 –subnet=w:x:y:z:aaaa::/80 myfancynetwork” me dice “Error response from daemon: Invalid subnet w:x:y:z:aaaa:::/80 : invalid CIDR address: w:x:y:z:aaaa:::/80”.
No sé si hay que sustituir w, x, y, z y aaaa por algún valor determinado o a voleo :como por ejemplo.
docker network create –ipv6 –subnet=172:17:0:2:9999::/80 onlyofficenetwork
( x,y,z son valores aleatorios, a voleo vamos)
El error se reproduce en Ubuntu 18.04
2.- Ejecuto un docker attach, se me queda “tirado”: sin hacer nada
Cordial saludo, tengo unas dudas respecto a la instalación. Como puedo configurarle una ipv4 en vez de una dirección ipv6 y la otra es que la ruta mkdir /app/onlyoffice/DocumentServer/data/certs no me aparece, no se si tengo que crearla o como puedo hacer en ese cao ?