Skip to main content

Mise en place de Seafile Community

Prérequis :
    Avoir une base de donnée MariaDB déployé en local 
      Voir déploiement MariaDB Avoir un nom de domaine
        Dans notre cas le nom de domaine utilisé est : miraceti.net


        Il existe plusieurs manière de mettre en place Seafile Docker. Dans notre cas nous allons utiliser une base de données MariaDb déjà déployé avec Docker car nous allons utilisé la version community de Seafile

        Configuration nom de domaine

        Grâce à notre nom de domaine, nous allons pouvoir créer des sous domaine (en CNAME A).

        Sur le site de nom de domaine respectif, dans la section DNS, ajouter l'entrée suivante : 

          drive.miraceti.net      A       ip.adress.server


          Configuration Docker Compose

          Pour accéder à notre base de données externe, nous devons importer le network  lié à la base de donnée (dans notre cas le network est "bddnetwork"). 

          Fichier docker-compose.yaml : 

          services:
           
            # Service de cache pour Seafile
            memcached:
              image: memcached:1.6
              container_name: seafile-memcached
              restart: unless-stopped
              networks:
                - seafile-net
              entrypoint: memcached -m 256
          
            seafile:
              image: seafileltd/seafile-mc:latest
              container_name: seafile
              restart: unless-stopped
              depends_on:
                - memcached
              ports:
                - "8082:80"   # Port HTTP Seafile (interface web)
                - "8086:8080" # Port WebDAV (SeafDAV)
              environment:
                DB_HOST: mariadb	# Nom du conteneur de MariaDB
                DB_ROOT_PASSWD: myRootPasswordMariaDB   # Mot de passe admin de MariaDB
                SEAFILE_SERVER_LETSENCRYPT: "false"
                SEAFILE_SERVER_HOSTNAME: drive.miraceti.net
                SEAFILE_MYSQL_DB_USER: seafile
                SEAFILE_MYSQL_DB_PASSWORD: myPasswordDBSeafile
                SEAFILE_MYSQL_DB_HOST: mariadb
                INIT_SEAFILE_MYSQL_ROOT_PASSWORD: myRootPasswordMariaDB
                TIME_ZONE: Europe/Paris
                MEMCACHED_HOST: seafile-memcached  # Nom du conteneur de cache
              volumes:
                - /my/path/to/seafile/data:/shared  # Emplacement des conf + data
              networks:
                - bddnetwork
                - seafile-net
          
            onlyoffice:
              image: onlyoffice/documentserver:latest
              container_name: onlyoffice
              restart: unless-stopped
              depends_on:
                - seafile
              ports:
                - "8081:80"
              environment:
                - JWT_ENABLED=true
                - JWT_SECRET=MyJwtTokenSecretGenerateByOnlyOffice
                - JWT_HEADER=Authorization
              volumes:
                - /my/path/to/onlyoffice/data:/var/www/onlyoffice/Data
                - /my/path/to/onlyoffice/logs:/var/log/onlyoffice
              networks:
                - seafile-net
          
          networks:
            seafile-net:  # Réseau interne de seafile
            bddnetwork:
              external: true

           

          Fichier .env :

           

          Démarrer le docker compose devrait rendre Nextcloud accessible en local, ou sur l'adresse IP de votre serveur sur le réseau local, sur le port 8082.  


          Configuration Apache2

          Création d'un nouveau host dans /etc/apache2/sites-available avec le nom suivant "cloud.miraceti.net.conf": 



          
          



          1
          <VirtualHost *:80>
          2
                  ServerName cloud.miraceti.net
          3
          ​
          4
              ErrorLog ${APACHE_LOG_DIR}/cloud.miraceti.net.log
          5
                  CustomLog ${APACHE_LOG_DIR}/cloud.miraceti.net.log combined
          6
          ​
          7
              ProxyPreserveHost On
          8
              ProxyRequests Off        
          9
                  ProxyPass / http://localhost:8082/          # Port Used by container Nextcloud
          10
                  ProxyPassReverse / http://localhost:8082/   # Port Used by container Nextcloud
          11
          ​
          12
                  <IfModule mod_dav.c>
          13
                     Dav off
          14
                  </IfModule>
          15
          ​
          16
                <Proxy *>
          17
                    Order deny,allow
          18
                    Allow from all
          19
                  </Proxy>
          20
          </VirtualHost>



          Vérification de la nouvelle configuration  : 


          
          



          1
          apachectl configtest


          Activation de la nouvelle configuration : 


          
          



          1
          sudo a2ensite cloud.miraceti.net.conf