Installer SeaTable Enterprise Edition sur le serveur Ubuntu 20.04 LTS

Grâce à Docker, l'installation de SeaTable Enterprise Edition est très facile et se fait en quelques instants. Le serveur Ubuntu, en tant que système d'exploitation Linux largement utilisé et bien documenté, est une excellente base pour SeaTable. Si vous avez déjà un serveur Ubuntu, apprenez comment installer SeaTable sur celui-ci en 10 minutes ici.

Exigences

Pour que la mise en place de SeaTable se déroule aussi bien que décrit ici, quelques conditions préalables doivent être remplies. C'est le cas :

  • VServer / Serveur dédié avec 4 cœurs, 8 Go de RAM et environ 10 Go de mémoire pour le système d'exploitation Ubuntu, SeaTable et d'autres exigences.
  • Accès racine au serveur (via SSH ou console)
  • Sous-domaine qui fait référence à l'adresse IP du serveur via un enregistrement A (IPv4) ou un enregistrement AAAA (IPv6).
  • Serveur accessible sur les ports 80 et 443 via le sous-domaine
  • Aucun autre service n'écoute sur les ports 80 et 443.

Bien sûr, vous devez prévoir plus d'espace disque que celui spécifié ci-dessus, afin de pouvoir stocker vos propres données sur le disque en plus du système d'exploitation et de SeaTable. En particulier si vous avez l'intention d'organiser des fichiers dans SeaTable également, vous devez prévoir un espace disque supplémentaire très généreux.

Il n'est pas indispensable, mais utile, que le serveur puisse être joint par une adresse IPv4 statique. Cela permet de maximiser l'accessibilité du serveur lorsque vous êtes en déplacement. En Europe, il existe encore des réseaux mobiles qui ne prennent pas encore en charge l'IPv6. Votre serveur SeaTable ne peut pas être atteint via un tel réseau s'il n'a pas d'adresse IPv4.

Au cas où les ports 80 et/ou 443 sont déjà utilisés sur votre serveur, consultez l'article Installer SeaTable Enterprise sur votre propre serveur derrière un serveur web pour tout ce que vous devez savoir pour l'installer dans votre situation.

Vous êtes prêts ? Allons-y ! Nous supposons que vous avez un shell root ouvert sur votre serveur.

Préparation

Tout d'abord, nous mettons à jour le système pour que tous les paquets soient à jour :

apt update
apt upgrade -y

Bien entendu, ces commandes et toutes les suivantes doivent être exécutées avec les privilèges de l'administrateur (root), sauf indication contraire.

SeaTable utilise docker-compose et vous devez installer ce paquet. Comme elle est disponible via les sources du paquet Ubuntu, la commande est suffisante :

apt install docker-compose -y

Les paquets docker.io et containerd ainsi que de nombreuses bibliothèques Python3 font partie des dépendances de docker-compose. Ils sont donc installés en même temps. Le système est prêt pour SeaTable !

Télécharger SeaTable Enterprise

L'image Docker de SeaTable Enterprise Edition est située dans un dépôt sur Docker Hub. Utilisez la commande suivante pour lancer le téléchargement de l'image SeaTable :

docker pull seatable/seatable-ee:latest

Passons maintenant à la seule partie un peu plus difficile de la mise en place de SeaTable. Toutefois, grâce aux explications détaillées, cette étape devient également tout à fait réalisable.

Individualisation du fichier docker-compose.yml

Pour introduire cette section, quelques connaissances de base sur l'installation de SeaTable : SeaTable fournit ses services via plusieurs conteneurs Docker. En plus du conteneur SeaTable lui-même, qui fait fonctionner le serveur SeaTable, il y a trois autres conteneurs en jeu. Il s'agit plus précisément de la base de données MariaDB, du service de mise en cache Memcached et du serveur de dictionnaire redis.

Le fichier docker-compose.yml, qui sera discuté dans un instant, est la recette que Docker utilise pour installer et configurer la SeaTable et les autres conteneurs. Il contient des paramètres de sécurité centraux (par exemple le mot de passe de la base de données) et permet d'adapter l'installation à vos propres souhaits et besoins (par exemple la configuration SSL/TLS).

Créez d'abord le répertoire pouvant être placé dans /opt. Depuis l'installation de containerd, le répertoire /opt contient déjà le répertoire du même nom. Téléchargez ensuite le fichier docker-compose.yml dans ce répertoire et ouvrez le fichier avec un éditeur de texte. L'exemple de code ci-dessous décrit la procédure en détail. Nous utilisons l'éditeur de texte nano pour éditer le fichier docker-compose.yml. Logiquement, cependant, vim ou tout autre éditeur de texte fonctionnera également.

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

Voici à quoi ressemble le fichier YAML après le téléchargement :
fichier docker-compose.yml

Au premier coup d'œil, vous pouvez voir les quatre conteneurs que Docker met en place lorsque vous exécutez la recette : db, memcached, redis et seatable. Pour chaque conteneur, l'image à utiliser ("image") et le nom du conteneur ("nom_du_conteneur") sont déclarés. Le nom du conteneur est le nom qui peut être utilisé ultérieurement pour gérer le conteneur via la Docker Console.

En outre, chaque conteneur possède quelques paramètres individuels, dont certains nécessitent votre attention dès maintenant.

Dans le conteneur db, vous devez changer le mot de passe de la base de données. Remplacez "YOUR_PASSWORD" par un mot de passe alphanumérique à plusieurs caractères. De plus, vous pouvez ajuster le chemin où le répertoire /opt/seatable/mysql-data/ est rendu disponible dans le conteneur seatable-mysql. Par défaut, il s'agit du chemin /var/lib/mysql. Ce n'est pas nécessaire.

Le conteneur memcached et le conteneur redis ne nécessitent aucune personnalisation. Si vous utilisez déjà memcached ou redis, vous pouvez supprimer ces deux conteneurs du fichier de composition. Cependant, pour que SeaTable fonctionne, vous devrez faire des ajustements manuels dans les fichiers de configuration plus tard.

Les ajustements les plus importants doivent être effectués dans le conteneur assis: Tout d'abord, le MYSQL_ROOT_PASSWORD doit y être saisi. Sinon, SeaTable ne peut pas communiquer avec la base de données. Donc entrez dans "DB_ROOT_PASSWD" le mot de passe spécifié ci-dessus pour le conteneur db.

Il s'agit ensuite de décider si vous voulez que Let's Encrypt vous demande un certificat SSL et l'inclue dans la configuration du serveur web. Si vous voulez le faire - ce qui est probablement la recommandation pour la plupart des utilisateurs - alors changez la valeur de la clé SEATABLE_SERVER_LETSENCRYPT en "True" et entrez le sous-domaine que vous utilisez pour SEATABLE_SERVER_HOSTNAME. Le Certbot de Let's Encrypt demandera alors un certificat SSL dans le cadre du processus d'installation et le prendra en compte dans la configuration du serveur web.

Vous pouvez laisser le fuseau horaire réglé sur Etc/UTC pour l'Europe centrale. Si vous êtes en dehors de l'Europe centrale, utilisez les codes de fuseau horaire habituels.

Initialisation de la base de données

Maintenant que le fichier YAML a été adapté à vos besoins, l'étape suivante consiste à initialiser la base de données. Pour ce faire, entrez les commandes suivantes :

cd /opt/seatable
docker-compose up

La commande docker-compose exécute la recette contenue dans le fichier YAML : Plusieurs images Docker sont téléchargées depuis Docker Hub et extraites. D'abord MariaDB, puis Memcached, puis redis, et enfin SeaTable lui-même - dans l'ordre prescrit dans le docker-compose.yml. Après le téléchargement, le conteneur de base de données seatable-mysql démarre. Vous pouvez observer l'activité sur l'écran (voir ci-dessous). Lorsque finalement le conteneur assis prend le relais et que le message "This is an idle script (infinite loop) to keep container running." apparaît à l'écran, vous pouvez alors interrompre le processus avec la combinaison de touches CTRL + C.

Cela a-t-il fonctionné jusqu'à présent ? Vous êtes donc très proche de votre propre instance SeaTable autogérée ! Si ce n'est pas le cas, veuillez consulter les conseils de dépannage à la fin de cet article.

Lancement de SeaTable

Exécutez à nouveau le fichier docker-compose.yml. Contrairement à l'étape précédente, le docker-compose est désormais exécuté en arrière-plan ou "détaché". Ensuite, le serveur SeaTable peut être démarré dans le conteneur Docker seatable. Enfin, il vous suffit de créer un utilisateur admin. Votre serveur SeaTable est alors prêt pour ses tâches !

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

Après la dernière commande, vous serez invité à saisir une adresse électronique et un mot de passe. Bravo, vous avez créé le premier utilisateur dans votre système SeaTable on-premises.

Mise en service

Appelez maintenant l'URL que vous avez spécifié dans le docker-compose.yml sous SEATABLE_SERVER_HOSTNAME. Vous atterrirez sur la page de connexion de votre serveur SeaTable. Installation réussie !

Si vous avez choisi d'utiliser Let's Encrypt dans le fichier docker-compose.yml, votre demande devrait être redirigée directement vers https et la communication avec votre serveur devrait donc être chiffrée. Si ce n'est pas le cas, vous devez maintenant ajouter votre propre certificat SSL. Copiez le certificat dans le dossier /opt/seatable/ssl/ et ajustez la configuration du serveur web nginx. Vous devez également changer les adresses de http à https dans les fichiers de configuration ccnet.conf, dtable_web_seetings.py et dtable_server_config.json. Après cela, nginx, SeaTable et Memcached doivent être redémarrés. Vous faites cela avec ces trois commandes :

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

Plus d'informations sur l'intégration de votre propre certificat SSL peuvent être trouvées dans le manuel SeaTable.

Menu Utilisateurs dans l'administration du système de SeaTable

Activation de la licence SeaTable

Vous pouvez utiliser SeaTable Enterprise Edition avec toutes les fonctions sans licence payante avec un maximum de trois utilisateurs - privés comme commerciaux et aussi en permanence. Pour cette raison, vous n'avez pas besoin de licence pour commencer.

Cependant, si vous souhaitez créer plus de trois utilisateurs dans SeaTable, alors SeaTable refusera de le faire. Vous pouvez obtenir une licence par l'intermédiaire de notre service commercial. Vous pouvez trouver plus d'informations sur les prix de SeaTable Enterprise sur notre page de prix.

Pour activer la licence, enregistrez le fichier de licence, un fichier TXT, dans le dossier /opt/seatable/seatable-data/seatable et redémarrez SeaTable :

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

Les utilisateurs supplémentaires seront alors disponibles immédiatement et seront affichés dans le panneau de contrôle.

Dépannage

Si quelque chose s'est mal passé pendant l'installation, il suffit de supprimer le répertoire /opt/seatable et de recommencer. Mais attention : les données stockées dans SeaTable seront perdues.

Si vous avez oublié le mot de passe de votre administrateur, exécutez la commande

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

Il suffit de le relancer. La commande crée un autre utilisateur avec des droits d'administrateur. Si la commande produit une erreur, alors votre licence SeaTable n'autorise pas la création d'utilisateurs supplémentaires. (Cela s'applique également au mode test avec un maximum de trois utilisateurs.) Dans ce cas, vous devez mettre un utilisateur en mode inactif dans la base de données MySQL et ensuite exécuter à nouveau la commande.