Comment déployer Seafile Server avec Docker


  • Français


  • Tout d’abord, qu’est-ce que Seafile ?

    Seafile est un programme de synchronisation de fichiers auto-hébergé qui fonctionne avec le modèle serveur-client, car vous avez plusieurs appareils comme votre ordinateur portable et votre téléphone qui se connectent à un serveur central.

    Contrairement à d’autres alternatives plus populaires comme Nextcloud ou ownCloud, Seafile essaie de suivre la philosophie de “faire une seule chose, mais la faire bien”. De même, Seafile n’a pas de goodies supplémentaires intégrés comme l’intégration des contacts ou du calendrier.

    Seafile se concentre plutôt uniquement sur la synchronisation de fichiers, le partage et les choses qui l’entourent, et c’est tout. À la suite de cela cependant, il finit par le faire extrêmement bien.

    Déployer Seafile Server avec Docker et NGINX

    La plupart des tutoriels sur It’s FOSS sont destinés aux débutants. Celui-ci ne l’est pas. Il est destiné aux utilisateurs avancés qui bricolent beaucoup avec des projets de bricolage et préfèrent s’auto-héberger.
    Ce didacticiel suppose que vous êtes à l’aise avec la ligne de commande et que vous connaissez au moins décemment les programmes que nous utiliserons.

    Bien que l’ensemble du processus puisse être effectué sans utiliser NGINX du tout, l’utilisation de NGINX permettra une configuration plus facile, tout en facilitant considérablement l’auto-hébergement de plus de services à l’avenir.

    Si vous souhaitez utiliser une configuration complète de Docker, vous pouvez configurer NGINX dans Docker aussi, mais cela ne fera que rendre les choses plus complexes et n’ajoutera pas trop d’avantages, et ne sera pas non plus couvert dans ce didacticiel.

    Installation et configuration de NGINX

    J’utiliserai Ubuntu dans ce tutoriel et utiliserai donc apt pour installer des packages. Si vous utilisez Fedora ou une autre distribution non Debian, veuillez utiliser le gestionnaire de paquets de votre distribution.

    NGINX, en plus d’être un serveur Web, est ce qu’on appelle un proxy. Il fonctionnera comme la connexion entre le serveur Seafile et Internet, tout en facilitant également la gestion de plusieurs tâches.

    Pour installer NGINX, utilisez la commande suivante :

    sudo apt install nginx

    Si vous souhaitez utiliser HTTPS (ce petit cadenas dans votre navigateur), vous devrez également installer Certbot:

    sudo apt install certbot python3-certbot-nginx

    Ensuite, vous devez configurer NGINX pour vous connecter à l’instance Seafile que nous avons configurée plus tard.

    Tout d’abord, exécutez la commande suivante :

    sudo nano /etc/nginx/sites-available/seafile.conf

    Saisissez le texte suivant dans le fichier :

    server {
      server_name localhost;
      location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
      }
    }

    Important: Remplacer hôte local sur le nom du serveur ligne avec l’adresse à partir de laquelle vous accéderez à votre serveur (c’est-à-dire seafile.exemple.com ou alors 192.168.0.0). Vous ne savez pas quoi mettre ?

    • Si vous testez juste pour le plaisir, utilisez localhost. Cette configuration va vous permet uniquement d’accéder au serveur depuis votre ordinateur, et c’est tout.
    • Si vous souhaitez utiliser Seafile via votre connexion WiFi locale (n’importe quel appareil sur le même réseau WiFi que vous), vous devez entrer l’adresse IP de votre ordinateur. Vous pouvez également envisager de définir une adresse IP statique, bien que cela ne soit pas nécessaire.
    • Si vous avez une adresse IP publique dont vous savez qu’elle pointe vers votre système, utilisez-la.
    • Si vous avez un nom de domaine (c’est-à-dire exemple.com, exemple.org) et une adresse IP publique pour votre système, modifiez vos paramètres DNS pour faire pointer le nom de domaine vers l’adresse IP de votre système. Cela nécessitera également que l’adresse IP publique pointe vers votre système.

    Vous devez maintenant copier le fichier de configuration dans le répertoire que NGINX recherche les fichiers, puis redémarrer NGINX :

    sudo ln -s /etc/nginx/sites-available/seafile.conf /etc/nginx/sites-enabled/seafile.conf
    sudo systemctl restart nginx

    Si vous configurez Certbot, vous devrez également exécuter ce qui suit pour configurer HTTPS :

    sudo certbot

    Si vous êtes invité à rediriger le trafic HTTP vers HTTPS, choisissez 2.

    Ce serait le bon moment pour nous assurer que tout ce que nous avons mis en place jusqu’à présent fonctionne. Si vous visitez votre site, vous devriez obtenir un écran qui dit quelque chose du genre 502 Bad Gateway.

    mauvaise passerelle nginx

    Installer Docker et Docker Compose

    Maintenant, passons aux choses amusantes !

    Tout d’abord, vous devez avoir Docker et Docker Composer installée. Docker Compose est nécessaire pour utiliser un fichier docker-compose.yml, ce qui facilitera la gestion des différents Docker conteneurs Seafile a besoin de plus de facilité.

    Docker et Docker Compose peuvent être installés avec la commande suivante :

    sudo apt install docker.io docker-compose

    Pour vérifier si Docker est installé et en cours d’exécution, exécutez la commande suivante :

    sudo docker run --rm hello-world

    Vous devriez voir quelque chose du genre dans votre terminal s’il s’est terminé avec succès :

    docker seafile helloworld

    Si vous souhaitez éviter d’ajouter sudo au début de la docker commande, vous pouvez exécuter les commandes suivantes pour vous ajouter à la docker grouper:

    sudo groupadd docker
    sudo usermod -aG docker $USER

    Le reste de ce didacticiel suppose que vous avez exécuté les deux commandes ci-dessus. Si vous ne l’avez pas fait, ajoutez sudo à toutes les commandes commençant par docker ou alors docker-compose.

    Installation du serveur Seafile

    Cette partie est nettement plus facile que la partie précédente. Tout ce que vous avez à faire est de mettre du texte dans un fichier et d’exécuter quelques commandes.

    Ouvrez un terminal. Créez ensuite un répertoire dans lequel vous souhaitez stocker le contenu du serveur Seafile et entrez le répertoire :

    mkdir ~/seafile-server && cd ~/seafile-server
    dossier marin

    Accédez au répertoire que vous avez créé et exécutez la commande suivante :

    nano docker-compose.yml

    Ensuite, entrez le texte ci-dessous dans la fenêtre qui apparaît :

    version: '2.0'
    services:
      db:
        image: mariadb
        container_name: seafile-mysql
        environment:
          - MYSQL_ROOT_PASSWORD=password
          - MYSQL_LOG_CONSOLE=true
        volumes:
          - ./data/mariadb:/var/lib/mysql
        networks:
          - seafile-net
    
      memcached:
        image: memcached
        container_name: seafile-memcached
        entrypoint: memcached -m 256
        networks:
          - seafile-net
              
      seafile:
        image: seafileltd/seafile-mc
        container_name: seafile
        ports:
          - "8080:80"
        volumes:
          - ./data/app:/shared
        environment:
          - DB_HOST=db
          - DB_ROOT_PASSWD=password
          - TIME_ZONE=Etc/UTC
          - [email protected]
          - SEAFILE_ADMIN_PASSWORD=password
          - SEAFILE_SERVER_LETSENCRYPT=false
          - SEAFILE_SERVER_HOSTNAME=docs.seafile.com
        depends_on:
          - db
          - memcached
        networks:
          - seafile-net
    
    networks:
      seafile-net:

    Avant d’enregistrer le fichier, quelques éléments devront être modifiés :

    • MYSQL_ROOT_PASSWORD: Changez pour un mot de passe plus fort, vous ne pas devez vous en souvenir, alors n’essayez pas de choisir quelque chose de facile. Si vous avez besoin d’aide pour en créer un, utilisez un générateur de mot de passe. Je recommanderais 20 caractères et éviter les caractères spéciaux (tous les [email protected]#$%^&* symboles).
    • DB_ROOT_PASSWD: passez à la valeur que vous avez définie pour MYSQL_ROOT_PASSWORD.
    • SEAFILE_ADMIN_EMAIL: définit l’adresse e-mail du compte administrateur.
    • SEAFILE_ADMIN_PASSWORD: définit le mot de passe du compte administrateur. Évitez de faire la même chose que MYSQL_ROOT_PASSWORD ou alors DB_ROOT_PASSWD.
    • SEAFILE_SERVER_HOSTNAME: défini sur l’adresse que vous avez définie dans la configuration NGINX.

    Une fois cela fait, vous pouvez évoquer le tout avec docker-compose:

    docker-compose up -d

    Cela peut prendre une minute ou deux en fonction de votre connexion Internet, car il doit extraire plusieurs conteneurs que Seafile doit exécuter.

    Une fois que c’est fait, donnez-lui quelques minutes de plus pour terminer. Vous pouvez également vérifier l’état de celui-ci en exécutant ce qui suit :

    docker logs seafile

    Une fois terminé, vous verrez la sortie suivante :

    fichier en cours d'exécution

    Ensuite, tapez simplement l’adresse que vous avez définie pour SEAFILE_SERVER_HOSTNAME dans votre navigateur, et vous devriez être sur un écran de connexion.

    connexion au fichier Seafile

    Et voilà ! Tout est maintenant entièrement fonctionnel et prêt à être utilisé avec les clients.

    Installation des clients Seafile

    Seafile sur mobile est disponible sur jeu de Google, F-Droïde, et sur le Magasin d’applications iOS. Seafile a également des clients de bureau disponibles pour Linux, Windows et Mac, disponibles ici.

    Seafile est facilement disponible sur les systèmes Ubuntu via le seafile-gui paquet:

    sudo apt install seafile-gui

    Seafile est également dans l’AUR pour les utilisateurs d’Arch via le seafile-client paquet.

    Fermeture

    N’hésitez pas à explorer les clients et tout ce qu’ils ont à offrir. J’aborderai tout ce dont les clients Seafile sont capables dans un prochain article (restez à l’écoute 😃).

    Si quelque chose ne fonctionne pas bien, ou si vous avez juste une question en général, n’hésitez pas à la laisser dans les commentaires ci-dessous – j’essaierai de répondre chaque fois que je le peux !

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code