Instalar SeaTable Enterprise Edition en Ubuntu Server 20.04 LTS

Gracias a Docker, la instalación de SeaTable Enterprise Edition es muy sencilla y se realiza en unos instantes. Ubuntu Server, como sistema operativo Linux ampliamente utilizado y bien documentado, es una base excelente para SeaTable. Si ya tienes un servidor Ubuntu, aprende a instalar SeaTable en él en 10 minutos aquí.

Requisitos

Para que la configuración de SeaTable se lleve a cabo sin problemas como se describe aquí, deben cumplirse algunos requisitos previos. Estos son:

  • Servidor VServer / Dedicado con 4 núcleos, 8GB de RAM y unos 10GB de memoria para el sistema operativo Ubuntu, SeaTable y otros requisitos
  • Acceso de raíz al servidor (a través de SSH o de la consola)
  • Subdominio que hace referencia a la dirección IP del servidor mediante el registro A (IPv4) o el registro AAAA (IPv6).
  • Servidor accesible en los puertos 80 y 443 a través del subdominio
  • Ningún otro servicio escucha en los puertos 80 y 443

Por supuesto, debe prever más espacio en el disco que el especificado anteriormente, para poder almacenar sus propios datos en el disco además del sistema operativo y SeaTable. Especialmente si tiene la intención de organizar los archivos en SeaTable también, debe planificar muy generosamente para el espacio de disco adicional.

No es un requisito previo, pero sí útil, que se pueda acceder al servidor a través de una dirección IPv4 estática. Esto maximiza la accesibilidad del servidor mientras está de viaje. En Europa, todavía hay redes móviles que no soportan IPv6. No se puede acceder a su servidor SeaTable a través de una red de este tipo si no tiene una dirección IPv4.

En caso de que el puerto 80 y/o 443 ya estén en uso en su servidor, vea el artículo Instalando SeaTable Enterprise en su propio servidor detrás de un servidor web para todo lo que necesita saber para instalarlo en su situación.

¿Están listos? ¡Vamos! Suponemos que tiene un shell de root abierto en su servidor.

Preparación

En primer lugar, actualizamos el sistema para tener todos los paquetes al día:

apt update
apt upgrade -y

Por supuesto, estos y todos los comandos posteriores deben ser ejecutados con privilegios de root a menos que se especifique lo contrario.

SeaTable utiliza docker-compose y es necesario instalar este paquete. Como está disponible a través de las fuentes de paquetes de Ubuntu, el comando es suficiente:

apt install docker-compose -y

Los paquetes docker.io y containerd, así como numerosas bibliotecas de Python3, forman parte de las dependencias de docker-compose. Por lo tanto, se instalan al mismo tiempo. El sistema está listo para SeaTable.

Descargar SeaTable Enterprise

La imagen Docker de SeaTable Enterprise Edition se encuentra en un repositorio en Docker Hub. Utilice el siguiente comando para iniciar la descarga de la imagen de SeaTable:

docker pull seatable/seatable-ee:latest

Pasemos a la única parte ligeramente más difícil de la configuración de SeaTable. Sin embargo, con las explicaciones ampliadas, este paso también resulta bastante factible.

Individualización del docker-compose.yml

Para introducir esta sección, un poco de conocimiento básico sobre la instalación de SeaTable: SeaTable proporciona sus servicios a través de varios contenedores Docker. Además del propio contenedor SeaTable, que ejecuta el servidor SeaTable, hay otros tres contenedores en juego. En concreto, se trata de la base de datos MariaDB, el servicio de caché Memcached y el servidor de diccionario Redis.

El archivo docker-compose.yml, que se discutirá en un momento, es la receta que Docker utiliza para instalar y configurar el SeaTable y los otros contenedores. Contiene la configuración central de seguridad (por ejemplo, la contraseña de la base de datos) y permite personalizar la instalación según sus propios deseos y necesidades (por ejemplo, la configuración de SSL/TLS).

Primero crea el directorio seatable en /opt. Desde la instalación de containerd, el directorio /opt ya contiene el directorio con el mismo nombre. A continuación, descargue el docker-compose.yml en este directorio y abra el archivo con un editor de texto. El ejemplo de código que sigue describe el procedimiento en detalle. Usamos el editor de texto nano para editar el docker-compose.yml. Lógicamente, sin embargo, vim o cualquier otro editor de texto también funcionará.

mkdir /opt/seatable
cd /opt/seatable
wget -O "docker-compose.yml" "https://docs.seatable.io/f/58f1f83e5ac34258806b/?dl=1"
nano docker-compose.yml

Este es el aspecto del archivo YAML después de la descarga:
archivo docker-compose.yml

A primera vista, puedes ver los cuatro contenedores que Docker configura cuando ejecutas la receta: db, memcached, redis y seatable. Para cada contenedor se declara la imagen a utilizar ("image") y el nombre del contenedor ("container_name"). El nombre del contenedor es el nombre que se puede utilizar posteriormente para gestionar el contenedor a través de la Consola Docker.

Además, cada contenedor tiene algunos ajustes individuales, algunos de los cuales necesitan su atención ahora.

En el contenedor db tienes que cambiar la contraseña de la base de datos. Sustituya "YOUR_PASSWORD" por una contraseña alfanumérica de varios caracteres. Además, puedes ajustar la ruta donde se pone a disposición el directorio /opt/seatable/mysql-data/ en el contenedor seatable-mysql. Por defecto es la ruta /var/lib/mysql. Esto no es necesario.

El contenedor memcached y el contenedor redis no requieren ninguna personalización. Si ya está ejecutando memcached o redis, puede eliminar estos dos contenedores del archivo de composición. Sin embargo, para que SeaTable funcione, tendrá que hacer ajustes manuales en los archivos de configuración más adelante.

Los ajustes más amplios deben realizarse en el contenedor asentable: En primer lugar, hay que introducir la MYSQL_ROOT_PASSWORD. De lo contrario, SeaTable no puede comunicarse con la base de datos. Por lo tanto, introduzca en "DB_ROOT_PASSWD" la contraseña especificada anteriormente para el contenedor db.

Luego es cuestión de decidir si quieres que Let's Encrypt solicite un certificado SSL por ti y lo incluya en la configuración del servidor web. Si quiere hacer esto - que es probablemente la recomendación para la mayoría de los usuarios - entonces cambie el valor de la clave SEATABLE_SERVER_LETSENCRYPT a "True" e introduzca el subdominio que utiliza para SEATABLE_SERVER_HOSTNAME. El Certbot de Let's Encrypt solicitará entonces un certificado SSL como parte del proceso de configuración y lo tendrá en cuenta en la configuración del servidor web.

Puedes dejar la zona horaria en Etc/UTC para Europa Central. Si se encuentra fuera de Europa Central, utilice los códigos de zona horaria habituales.

Inicialización de la base de datos

Ahora que el archivo YAML ha sido personalizado según sus necesidades, el siguiente paso es inicializar la base de datos. Para ello, introduzca los siguientes comandos:

cd /opt/seatable
docker-compose up

El comando docker-compose ejecuta la receta contenida en el archivo YAML: Se descargan múltiples imágenes Docker desde Docker Hub y se extraen. Primero MariaDB, luego Memcached, luego redis, y finalmente el propio SeaTable - en el orden prescrito en el docker-compose.yml. Tras la descarga, se inicia el contenedor de base de datos seatable-mysql. Puedes ver la actividad en la pantalla (ver abajo). Cuando finalmente el contenedor sentable toma el control y aparece en la pantalla el mensaje "Este es un script inactivo (bucle infinito) para mantener el contenedor en funcionamiento", entonces puede abortar el proceso con la combinación de teclas CTRL + C.

¿Ha funcionado hasta ahora? Entonces está muy cerca de tener su propia instancia de SeaTable. Si no es así, consulte los consejos para la solución de problemas al final de este artículo.

Lanzamiento de SeaTable

Ejecute de nuevo el docker-compose.yml. A diferencia del paso anterior, docker-compose se ejecuta ahora en segundo plano o "detached". Después, el servidor SeaTable puede iniciarse en el contenedor Docker seatable. Por último, sólo es necesario crear un usuario administrador. Su servidor SeaTable está entonces listo para sus tareas!

docker-compose up -d
docker exec -d seatable /shared/seatable/scripts/seatable.sh start
docker exec -it seatable /shared/seatable/scripts/seatable.sh superuser

Después del último comando, se le pedirá una dirección de correo electrónico y una contraseña. Bravo, ha creado el primer usuario en su sistema SeaTable on-premise.

Puesta en marcha

Ahora llame a la URL que especificó en el docker-compose.yml bajo SEATABLE_SERVER_HOSTNAME. Llegará a la página de inicio de sesión de su servidor SeaTable. Instalación realizada con éxito.

Si has votado por usar Let's Encrypt en el docker-compose.yml, entonces tu petición debería ser redirigida directamente a https y por tanto la comunicación con tu servidor debería estar encriptada. Si no es así, deberá añadir su propio certificado SSL. Copie el certificado en la carpeta /opt/seatable/ssl/ y ajuste la configuración del servidor web nginx. También hay que cambiar las direcciones de http a https en los archivos de configuración ccnet.conf, dtable_web_seetings.py y el dtable_server_config.json. Después de eso, nginx, SeaTable y Memcached necesitan ser reiniciados. Esto se hace con estos tres comandos:

docker exec -it seatable /shared/seatable/scripts/seatable.sh restart
docker restart seatable-memcached
docker exec -it seatable /usr/sbin/nginx -s reload

Puede encontrar más información sobre la integración de su propio certificado SSL en el Manual de SeaTable.

Menú de usuarios en la administración del sistema de SeaTable

Activación de la licencia de SeaTable

Puede utilizar SeaTable Enterprise Edition con todas las funciones sin necesidad de una licencia de pago con hasta tres usuarios, tanto privados como comerciales, y también de forma permanente. Por esta razón, no necesitas una licencia para empezar.

Sin embargo, si quiere crear más de tres usuarios en SeaTable, éste se negará a hacerlo. Puede obtener una licencia a través de nuestro departamento de ventas. Puede encontrar más información sobre los precios de SeaTable Enterprise en nuestra página de precios.

Para activar la licencia, guarde el archivo de licencia, un archivo TXT, en la carpeta /opt/seatable/seatable-data/seatable y reinicie SeaTable:

docker exec -d seatable /shared/seatable/scripts/seatable.sh restart

Los usuarios adicionales estarán disponibles inmediatamente y se mostrarán en el panel de control.

Solución de problemas

Si algo ha ido mal durante la instalación, basta con borrar el directorio /opt/seatable y volver a empezar. Pero tenga cuidado: los datos almacenados en SeaTable se perderán.

Si ha olvidado su contraseña de administrador, ejecute el comando

docker exec -it seatable /shared/seatable/scripts/seatable.sh superuser

simplemente ejecutarlo de nuevo. El comando crea otro usuario con derechos de administrador. Si el comando produce un error, entonces su licencia de SeaTable no permite la creación de usuarios adicionales. (Esto también se aplica al modo de prueba con un máximo de tres usuarios.) En este caso, debe establecer un usuario como inactivo en la base de datos MySQL y luego ejecutar el comando de nuevo.