Este artículo está traducido por IA

Instalación de ONLYOFFICE Docs para Docker en KylinOS

Introducción

Developer Edition te permite instalar ONLYOFFICE Docs en tu servidor local e integrar los editores en línea con tu aplicación web, plataforma de colaboración de ONLYOFFICE, o otros sistemas populares.

ONLYOFFICE Docs es una suite ofimática en línea que incluye visores y editores para textos, hojas de cálculo y presentaciones, totalmente compatible con los formatos Office Open XML: .docx, .xlsx, .pptx y que permite la edición colaborativa en tiempo real.

Funcionalidades

  • Editor de Documentos
  • Editor de Hojas de Cálculo
  • Editor de Presentaciones
  • Visores web móviles
  • Editores web móviles
  • Edición colaborativa
  • Soporte para jeroglíficos
  • Compatibilidad con todos los formatos populares: DOC, DOCX, TXT, ODT, RTF, ODP, EPUB, ODS, XLS, XLSX, CSV, PPTX, HTML

Consulta la lista detallada de características disponibles para ONLYOFFICE Docs Developer Edition.

Usándolo dentro de ONLYOFFICE Workspace, podrás:

  • compartir archivos;
  • gestionar derechos de acceso a documentos;
  • incrustar documentos en un sitio web;
  • ver y editar archivos almacenados en Drive, Box, Dropbox, OneDrive, OwnCloud conectados a ONLYOFFICE.

A partir de la versión 7.2, las imágenes Docker de ONLYOFFICE Docs se han reestructurado para ejecutarse en el sistema operativo Kylin Linux Advanced Server OS release V10. Esta guía te mostrará cómo instalar la versión Docker de ONLYOFFICE Docs Developer Edition en KylinOS.

Requisitos del sistema
  • CPU
    doble núcleo 2 GHz o mejor
  • RAM
    4 GB o más
  • HDD
    al menos 40 GB de espacio libre
  • SWAP
    al menos 4 GB, pero depende del sistema operativo anfitrión. Más es mejor
  • OS
    Distribución de Linux amd64 con versión de kernel 3.10 o posterior
  • Docker: cualquier versión soportada por KylinOS

Instalación de ONLYOFFICE Docs

Docker especifica los servidores DNS de Google por defecto. Si tu ONLYOFFICE Docs no va a tener acceso a Internet, te recomendamos que cambies la dirección DNS predeterminada de Docker a la dirección de tu servidor DNS local. Para hacerlo, ve al archivo /etc/default/docker y cambia la dirección IP en la siguiente línea por la dirección IP de un servidor DNS en tu red local:
docker_OPTS="--dns 8.8.8.8"

Para los sistemas operativos basados en RPM como CentOS:

  1. Crea el archivo de configuración /etc/docker/daemon.json con el siguiente contenido:
    { "dns" : [ "8.8.8.8" ] }
  2. Reinicia el servicio Docker:
    
    sudo systemctl restart docker.service
Desactivar SELinux

Necesitas desactivar SELinux en el archivo de configuración /etc/selinux/config.

Abre el archivo /etc/selinux/config usando cualquier editor de texto, reemplaza la cadena SELINUX=enforcing o SELINUX=permissive por SELINUX=disabled, y guarda los cambios.

Reinicia tu servidor para que los cambios surtan efecto. Asegúrate de que SELinux esté desactivado:

[root@test ~]# sestatus
SELinux status:                 disabled
Instalar ONLYOFFICE Docs

Ejecuta el siguiente comando para instalar ONLYOFFICE Docs:

sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
Importante A partir de la versión 7.2, hemos añadido una generación aleatoria del secreto JWT. Si el secreto JWT no se especifica con la variable de entorno, se generará nuevamente durante cada reinicio de las VMs o del servidor físico, lo que podría causar problemas en las integraciones. Para evitar este problema, especifica tu propio valor en -e JWT_SECRET=my_jwt_secret.

Si no vas a usar JWT en tu instalación, usa -e JWT_ENABLED=false.

La clave --security-opt seccomp=unconfined es necesaria para desactivar los perfiles de seguridad para el contenedor. Puedes encontrar más detalles aquí.

También puedes usar nuestro perfil de seguridad personalizado: kylin-seccomp7.json.

Por defecto, ONLYOFFICE Docs escucha las conexiones entrantes usando el puerto 80. A partir de la versión 4.3, puedes cambiar el puerto para ONLYOFFICE Docs si planeas usarlo en lugar del predeterminado. Esto se puede hacer fácilmente cambiando el puerto de mapeo durante la instalación:
sudo docker run -i -t -d -p <PORT_NUMBER>:80 --security-opt seccomp=unconfined --restart=always -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
Donde <PORT_NUMBER> es el número de puerto que deseas que use ONLYOFFICE Docs.

Esto instalará ONLYOFFICE Docs y todas las dependencias que necesita (la lista de lo que hace el script se puede encontrar aquí).

Agregar una excepción al firewall

También necesitas agregar una excepción al servicio firewalld.service:

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

Una vez que la configuración esté terminada, puedes ingresar http://localhost en la barra de direcciones de tu navegador para abrir la página de bienvenida de ONLYOFFICE Docs, donde encontrarás más instrucciones sobre cómo habilitar ejemplos de documentos o integrar los editores en línea en tu aplicación web utilizando la API proporcionada.

Almacenamiento de datos fuera de los contenedores

Todos los datos se almacenan en directorios especialmente designados, volúmenes de datos, en la siguiente ubicación:

  • /var/log/onlyoffice para los registros de ONLYOFFICE Docs
  • /var/www/onlyoffice/Data para certificados
  • /var/lib/onlyoffice para la caché de archivos
  • /var/lib/postgresql para la base de datos
Recomendamos Recomendamos encarecidamente que almacenes los datos fuera de los contenedores Docker en la máquina anfitriona, ya que te permite actualizar fácilmente ONLYOFFICE Docs una vez que se lance la nueva versión sin perder tus datos.

Para acceder a tus datos ubicados fuera del contenedor, necesitas montar los volúmenes. Esto se puede hacer especificando la opción -v en el comando docker run.

sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always \
    -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice  \
    -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  \
    -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \
    -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de
Ten en cuenta que si intentas montar carpetas que aún no están creadas, estas carpetas se crearán, pero el acceso a ellas será limitado. Necesitarás cambiar sus permisos de acceso manualmente.

Normalmente, no necesitas almacenar datos del contenedor porque el funcionamiento del contenedor no depende de su estado. Guardar datos será útil:

  • para un acceso fácil a los datos del contenedor, como los registros;
  • para eliminar el límite en el tamaño de los datos dentro del contenedor;
  • cuando se utilizan servicios lanzados fuera del contenedor como PostgreSQL, Redis, RabbitMQ.

Ejecutar ONLYOFFICE Docs usando HTTPS

sudo docker run -i -t -d -p 443:443 --security-opt seccomp=unconfined --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de

El acceso a la aplicación onlyoffice puede asegurarse usando SSL para prevenir accesos no autorizados. Mientras que un certificado SSL certificado por una CA permite la verificación de confianza a través de la CA, los certificados autofirmados también pueden proporcionar un nivel igual de verificación de confianza siempre que cada cliente tome algunos pasos adicionales para verificar la identidad de tu sitio web. Las instrucciones para lograr esto se proporcionan a continuación.

Para asegurar la aplicación mediante SSL, básicamente se necesitan dos cosas:

  • Clave privada (.key)
  • Certificado SSL (.crt)

Por lo tanto, necesitas crear e instalar los siguientes archivos:

/app/onlyoffice/DocumentServer/data/certs/onlyoffice.key
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt

Cuando se utilizan certificados certificados por CA (por ejemplo, Let's Encrypt), estos archivos te son proporcionados por la CA. Si estás utilizando certificados autofirmados, necesitas generar estos archivos tú mismo.

Cambiar ONLYOFFICE Docs a HTTPS usando certbot

La forma más fácil de cambiar ONLYOFFICE Docs a HTTPS es obtener automáticamente certificados SSL de Let's Encrypt usando certbot.

Ejecuta el contenedor Docker de ONLYOFFICE Docs, especificando los puertos 80 y 443 y estableciendo tus propios valores para las variables:

sudo docker run -i -t -d -p 80:80 -p 443:443 --security-opt seccomp=unconfined --restart=always \
    -e LETS_ENCRYPT_DOMAIN=yourdomain.com -e LETS_ENCRYPT_MAIL=email@example.com -e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de

Dónde:

  • LETS_ENCRYPT_DOMAIN - un nombre de dominio para usar en el certificado.
  • LETS_ENCRYPT_MAIL - un correo electrónico utilizado para el registro y contacto de recuperación.

El certificado firmado por la CA de letsencrypt.org se generará e instalará automáticamente en tu servidor. Ahora, tu ONLYOFFICE Docs debería estar disponible en la dirección https://yourdomain.com.

Generación de certificados autofirmados

La generación de certificados SSL autofirmados implica un procedimiento simple de 3 pasos

PASO 1: Crear la clave privada del servidor

openssl genrsa -out onlyoffice.key 2048

PASO 2: Crear la solicitud de firma de certificado (CSR)

openssl req -new -key onlyoffice.key -out onlyoffice.csr

PASO 3: Firmar el certificado usando la clave privada y CSR

openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt

Ahora has generado un certificado SSL válido por 365 días.

Fortalecimiento de la seguridad del servidor

Esta sección te proporciona instrucciones para fortalecer la seguridad de tu servidor.

Para lograr esto, necesitas generar parámetros DHE más fuertes.

openssl dhparam -
  
out dhparam.pem 2048
Instalación de los certificados SSL

De los cuatro archivos generados anteriormente, necesitas instalar los archivos onlyoffice.key, onlyoffice.crt y dhparam.pem en el servidor de onlyoffice. El archivo CSR no es necesario, pero asegúrate de hacer una copia de seguridad del archivo de manera segura (en caso de que lo necesites nuevamente).

La ruta predeterminada donde la aplicación onlyoffice está configurada para buscar los certificados SSL es /var/www/onlyoffice/Data/certs, sin embargo, esto se puede cambiar utilizando las opciones de configuración SSL_KEY_PATH, SSL_CERTIFICATE_PATH y SSL_DHPARAM_PATH.

La ruta /var/www/onlyoffice/Data/ es la ruta del almacén de datos, lo que significa que debes crear una carpeta llamada certs dentro de /app/onlyoffice/DocumentServer/data/ y copiar los archivos en ella y, como medida de seguridad, actualizarás el permiso en el archivo onlyoffice.key para que solo sea legible por el propietario.

mkdir -p /app/onlyoffice/DocumentServer/data/certs
cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key

Y reinicia el contenedor de Docker:

sudo docker restart {{DOCUMENT_SERVER_ID}}

Ahora estás a solo un paso de tener nuestra aplicación asegurada.

Parámetros de configuración disponibles
Por favor, consulta las opciones del comando docker run para el flag --env-file, donde puedes especificar todas las variables de entorno requeridas en un solo archivo. Esto te ahorrará escribir un comando docker run potencialmente largo.

A continuación se muestra la lista completa de parámetros que se pueden configurar utilizando variables de entorno.

  • ONLYOFFICE_HTTPS_HSTS_ENABLED: Opción de configuración avanzada para desactivar la configuración HSTS. Aplicable solo cuando se utiliza SSL. Por defecto es true.
  • ONLYOFFICE_HTTPS_HSTS_MAXAGE: Opción de configuración avanzada para establecer el tiempo máximo de HSTS en la configuración vHost de onlyoffice NGINX. Aplicable solo cuando se utiliza SSL. Por defecto es 31536000.
  • SSL_CERTIFICATE_PATH: La ruta al certificado SSL a utilizar. Por defecto es /var/www/onlyoffice/Data/certs/tls.crt.
  • SSL_KEY_PATH: La ruta a la clave privada del certificado SSL. Por defecto es /var/www/onlyoffice/Data/certs/tls.key.
  • SSL_DHPARAM_PATH: La ruta al parámetro Diffie-Hellman. Por defecto es /var/www/onlyoffice/Data/certs/dhparam.pem.
  • SSL_VERIFY_CLIENT: Habilita la verificación de certificados de cliente utilizando el archivo CA_CERTIFICATES_PATH. Por defecto es false.
  • DB_TYPE: El tipo de base de datos. Los valores soportados son postgres, mariadb o mysql. Por defecto es postgres.
  • DB_HOST: La dirección IP o el nombre del host donde se está ejecutando el servidor de base de datos.
  • DB_PORT: El número de puerto del servidor de base de datos.
  • DB_NAME: El nombre de una base de datos que se creará al iniciar la imagen.
  • DB_USER: El nuevo nombre de usuario con permisos de superusuario para la cuenta de base de datos.
  • DB_PWD: La contraseña establecida para la cuenta de base de datos.
  • AMQP_URI: La URI AMQP para conectarse al servidor de broker de mensajes.
  • AMQP_TYPE: El tipo de broker de mensajes. Los valores soportados son rabbitmq o activemq. Por defecto es rabbitmq.
  • REDIS_SERVER_HOST: La dirección IP o el nombre del host donde se está ejecutando el servidor Redis.
  • REDIS_SERVER_PORT: El número de puerto del servidor Redis.
  • NGINX_WORKER_PROCESSES: Define el número de procesos de trabajo de NGINX.
  • NGINX_WORKER_CONNECTIONS: Establece el número máximo de conexiones simultáneas que puede abrir un proceso de trabajo de NGINX.
  • SECURE_LINK_SECRET: Define el secreto para la directiva de configuración de nginx secure_link_md5. Por defecto es random string.
  • JWT_ENABLED: Especifica la habilitación de la validación del token web JSON por ONLYOFFICE Docs. Por defecto es true.
  • JWT_SECRET: Define la clave secreta para validar el token web JSON en la solicitud a ONLYOFFICE Docs. Por defecto es un valor aleatorio.
  • JWT_HEADER: Define el encabezado HTTP que se utilizará para enviar el token web JSON. Por defecto es Authorization.
  • JWT_IN_BODY: Especifica la habilitación de la validación del token en el cuerpo de la solicitud a ONLYOFFICE Docs. Por defecto es false.
  • WOPI_ENABLED: Especifica la habilitación de los manejadores wopi. Por defecto es false.
  • USE_UNAUTHORIZED_STORAGE: Establece true si se utilizan certificados autofirmados para tu servidor de almacenamiento, por ejemplo, Nextcloud. Por defecto es false.
  • GENERATE_FONTS: Cuando es true, regenera la lista de fuentes y las miniaturas de fuentes, etc., en cada inicio. Por defecto es true.
  • METRICS_ENABLED: Especifica la habilitación de StatsD para ONLYOFFICE Docs. Por defecto es false.
  • METRICS_HOST: Define el host de escucha de StatsD. Por defecto es localhost.
  • METRICS_PORT: Define el puerto de escucha de StatsD. Por defecto es 8125.
  • METRICS_PREFIX: Define el prefijo de métricas de StatsD para los servicios de backend. Por defecto es ds..
  • LETS_ENCRYPT_DOMAIN: Define el dominio para el certificado de Let's Encrypt.
  • LETS_ENCRYPT_MAIL: Define la dirección de correo del administrador del dominio para el certificado de Let's Encrypt.

Registro de tu versión Developer Edition

Si compraste Developer Edition y recibiste el archivo license.lic, puedes colocarlo en tu instalación para obtener la versión completa del software.

Cuando estás utilizando el contenedor de docker, el archivo license.lic puede colocarse en cualquier carpeta (por ejemplo, /app/onlyoffice/DocumentServer/data/license.lic), pero necesitarás montar esta carpeta cuando inicie el contenedor:

sudo docker run -i -t -d -p 80:80 --security-opt seccomp=unconfined --restart=always \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-e JWT_SECRET=my_jwt_secret onlyoffice/documentserver-de

Después de eso, tu versión de Developer Edition estará registrada y con todas las funciones.

Artículos con etiqueta:
Ver todas las etiquetas