La solution Seafile précédemment utilisée par l'entreprise était devenue obsolète et ne pouvait plus être mise à jour, ce qui posait des problèmes de sécurité, de maintenance et de pérennité du service.
Il a donc été décidé de mettre en place une nouvelle instance Seafile 13, déployée via Docker, afin de disposer d'une solution à jour, maintenable et évolutive.
Conteneurisation de l'application
Orchestration multi-conteneurs
Plateforme de stockage cloud
Reverse proxy avec SSL automatique
Installation de Docker en utilisant le dépôt APT officiel pour garantir une version à jour.
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Vérification de l'installation :
sudo docker run hello-world
Résultat attendu de la commande hello-world
Téléchargement des fichiers de configuration officiels pour Seafile 13.
sudo su
mkdir /opt/seafile
cd /opt/seafile
wget -O .env https://manual.seafile.com/13.0/repo/docker/ce/env
wget https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.yml
wget https://manual.seafile.com/13.0/repo/docker/seadoc.yml
wget https://manual.seafile.com/13.0/repo/docker/caddy.yml
Fichiers de configuration téléchargés
Note : Seuls trois fichiers sont visibles car le fichier .env est un fichier caché
contenant les informations sensibles (variables d'environnement).
Modification du fichier .env avec les paramètres de l'environnement.
nano .env
Les valeurs à modifier obligatoirement :
SEAFILE_SERVER_HOSTNAME=
SEAFILE_SERVER_PROTOCOL=
SEAFILE_MYSQL_DB_PASSWORD=
INIT_SEAFILE_MYSQL_ROOT_PASSWORD=
INIT_SEAFILE_ADMIN_EMAIL=
INIT_SEAFILE_ADMIN_PASSWORD=
CACHE_PROVIDER= # redis ou memcached au choix
La clé JWT est nécessaire pour sécuriser les communications. On utilise OpenSSL pour la générer.
Installation d'OpenSSL si nécessaire :
apt install openssl
Génération de la clé (minimum 32 caractères requis par Seafile) :
openssl rand -base64 32
Exemple de clé générée par OpenSSL
Copier la clé générée et l'ajouter dans le fichier .env à la ligne JWT_PRIVATE_KEY=
Après avoir effectué les modifications nécessaires dans le fichier .env, lancement de la stack Docker.
docker compose up -d
Téléchargement des images Docker (pulling)
Installation terminée - conteneurs démarrés
Attendre la fin du téléchargement des images (pulling). Une fois l'installation terminée, l'application est accessible via l'adresse IP ou le nom d'hôte configuré.
Une fois les conteneurs démarrés, Seafile est accessible via l'adresse configurée
dans SEAFILE_SERVER_HOSTNAME. Se connecter avec les identifiants admin
définis dans le fichier .env.
Interface de connexion Seafile