Important :

Le présent wiki a été migré vers wiki.archlinux.org.

Ce Wiki a été archivé. Toute contribution doit donc désormais se faire là-bas. Cette page de Wiki possède donc potentiellement des informations qui ne sont plus à jour !

Accueil wiki FR sur .org

Seafile : Différence entre versions

De ArchwikiFR
(Page créée avec « [https://fr.wikipedia.org/wiki/Seafile Seafile] est un logiciel open-source permettant de créer un service de stockage et d'applications diverses en ligne sur son propre... »)
 
m (rationalisation des catégories)
 
(6 révisions intermédiaires par un autre utilisateur non affichées)
Ligne 1 : Ligne 1 :
 +
[[Category:serveur]]
 +
[[en:Seafile]]
 +
 
[https://fr.wikipedia.org/wiki/Seafile Seafile] est un logiciel open-source permettant de créer un service de stockage et d'applications diverses en ligne sur son propre serveur. Les documents peuvent être synchronisés sur un ordinateur ou sur un smartphone par le biais d'une application. Le logiciel possède aussi une interface web. Les fonctionnalités de Seafile sont similaires à celles des populaires services Dropbox et Google Drive. La principale différence est que les fichiers sont stockés par l'administrateur lui-même, chacun peut créer sa propre instance.
 
[https://fr.wikipedia.org/wiki/Seafile Seafile] est un logiciel open-source permettant de créer un service de stockage et d'applications diverses en ligne sur son propre serveur. Les documents peuvent être synchronisés sur un ordinateur ou sur un smartphone par le biais d'une application. Le logiciel possède aussi une interface web. Les fonctionnalités de Seafile sont similaires à celles des populaires services Dropbox et Google Drive. La principale différence est que les fichiers sont stockés par l'administrateur lui-même, chacun peut créer sa propre instance.
  
= Seafile-client =
+
{{Important|Plusieurs paquets étant en conflit, le '''client''' et le '''serveur''' ne pourront pas être installés sur la même machine.}}
  
== Installation ==
+
= Serveur =
  
Installez le paquet {{AUR|seafile-client}} disponible sur [[AUR]].<br/>
+
== Prérequis ==
{{Important| Le client et le serveur devront être installés sur deux machines différentes}}
 
  
= Seafile-server =
+
Prérequis pour un déploiement en production :
 +
* Un serveur de base de données : {{pkg|mariadb}} ou {{pkg|postgresql}}.
 +
* Un serveur web : {{pkg|nginx}} ou {{pkg|apache}}.
  
 
== Installation ==
 
== Installation ==
  
Installez le paquet {{AUR|seahub}} disponible sur [[AUR]].<br/>
+
[[AUR_4.0.0#Utilisation|Installez]] le paquet {{AUR|seahub}} disponible sur [[AUR]].<br/>
 
Le script {{AUR|seafile-helper}} permet de simplifier la maintenance de l'instance.
 
Le script {{AUR|seafile-helper}} permet de simplifier la maintenance de l'instance.
  
Ligne 37 : Ligne 41 :
 
=== Avec SQLite ===
 
=== Avec SQLite ===
 
   
 
   
{{Important| Pour un usage en production il est déconseillé d'utiliser SQLite pour des raisons de sécurités}}
+
{{Important| Pour un usage en production il est déconseillé d'utiliser SQLite pour des raisons de sécurité.}}
  
Placez vous dans votre instance :
+
Placez vous dans votre instance (nommé ici example.dom) :
 
  cd ~/example.dom
 
  cd ~/example.dom
  
Ligne 66 : Ligne 70 :
 
  cd ~/example.dom
 
  cd ~/example.dom
  
{{Note| Nous n'utiliserons pas systemd dans cette partie pour démarrer le serveur, car le service n'a peut-être pas encore été créé'.}}
+
{{Note| Il est aussi possible d'utiliser le [[Seafile#Systemd_service|service]] systemd pour démarrer/stopper le serveur}}
  
 
Démarrez le serveur :
 
Démarrez le serveur :
Ligne 82 : Ligne 86 :
 
=== Seahub locale ===
 
=== Seahub locale ===
  
Pour mettre seahub en français :
+
Vous pouvez définir une locale pour votre instance en ajoutant la variable <tt>LANGUAGE</tt> dans le fichier <tt>~/example.dom/conf/seahub_settings.py</tt><br/>
cd ~/example.dom/seafile-server/seahub/locale/fr/LC_MESSAGES/
+
Pour une instance en français <tt>LANGUAGE='fr'</tt>.
msgfmt -o django.mo django.po
 
  
Vous devez ensuite ajouter la variable <tt>LANGUAGE='fr'</tt> dans le fichier <tt>~/example.dom/conf/seahub_settings.py</tt>
+
Locales disponibles :
 +
ls ~/example.dom/seafile-server/seahub/locale/
  
=== Nginx configuration ===
+
== Nginx ==
 +
 
 +
Voici un exemple de configuration utilisant <tt>https</tt> voir [https://manual.seafile.com/deploy/deploy_with_nginx.html documentation officielle].
  
 
{{Note| '''seafile.example.com''' devra être remplacé par votre nom de domaine}}
 
{{Note| '''seafile.example.com''' devra être remplacé par votre nom de domaine}}
Ligne 141 : Ligne 147 :
 
Vous pouvez utiliser le plugin {{pkg|certbot-nginx}} pour créer et valider votre certificat chez [https://fr.wikipedia.org/wiki/Let's_Encrypt Let's Encrypt] , voir page du wiki anglais [https://wiki.archlinux.org/index.php/Let%E2%80%99s_Encrypt#Plugins Let’s_Encrypt#Plugins]
 
Vous pouvez utiliser le plugin {{pkg|certbot-nginx}} pour créer et valider votre certificat chez [https://fr.wikipedia.org/wiki/Let's_Encrypt Let's Encrypt] , voir page du wiki anglais [https://wiki.archlinux.org/index.php/Let%E2%80%99s_Encrypt#Plugins Let’s_Encrypt#Plugins]
  
=== Systemd service ===
+
== Systemd service ==
  
 
Créez et éditez le fichier <tt>/etc/systemd/system/seafile-server@.service</tt>  
 
Créez et éditez le fichier <tt>/etc/systemd/system/seafile-server@.service</tt>  
Ligne 166 : Ligne 172 :
 
  systemctl start seafile-server@example.dom.service
 
  systemctl start seafile-server@example.dom.service
  
=== Mise à jour ===
+
== Memcached ==
 +
 
 +
{{Note|Par défaut <tt>seahub</tt> utilise le répertoire <tt>/tmp/seahub_cache/</tt> pour la mise en cache.<br>
 +
Utiliser <tt>Memcached</tt> améliorera fortement ses performances.}}
 +
 
 +
=== Prérequis ===
 +
 
 +
[[Pacman#Installation_de_paquets|Installez]] les paquets :
 +
* {{pkg|memcached}}.
 +
* {{AUR|python2-django-pylibmc}} disponible sur [[AUR]].
 +
 
 +
=== Configuration ===
 +
 
 +
Ajoutez ensuite cette configuration (voir [https://manual.seafile.com/deploy/add_memcached.html documentation officielle]) dans <tt>~/example.dom/conf/seahub_settings.py</tt>
 +
 
 +
CACHES = {
 +
    'default': {
 +
        'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
 +
        'LOCATION': '127.0.0.1:11211',
 +
        'OPTIONS': {
 +
            'ketama': True,
 +
            'remove_failed': 1,
 +
            'retry_timeout': 3600,
 +
            'dead_timeout': 3600
 +
        }
 +
    }
 +
}
  
Stoppez le service
+
=== Démarrage ===
 +
 
 +
Il faut ensuite démarrer le service <tt>memcached</tt>, voir [[Services]].
 +
systemctl start memcached.service
 +
 
 +
Puis redémarrer le service <tt>seafile-server</tt> :
 +
systemctl restart seafile-server@example.dom.service
 +
 
 +
== Mise à jour ==
 +
 
 +
Stoppez le service :
 
  systemctl stop seafile-server@example.dom.service
 
  systemctl stop seafile-server@example.dom.service
  
Ligne 180 : Ligne 222 :
 
  mv seahub seahub-old
 
  mv seahub seahub-old
  
{{Warning|Si les répertoires '''seahub-old''' et '''upgrade''' sont déjà présents ils devront être supprimés.}}
+
{{Warning|Si les répertoires '''seahub-old''' et '''upgrade''' sont déjà présents, ils devront être supprimés ou archivés.}}
  
 
Copiez ensuite les nouveaux répertoires :
 
Copiez ensuite les nouveaux répertoires :
Ligne 188 : Ligne 230 :
 
  ./upgrade/votre-update.sh
 
  ./upgrade/votre-update.sh
  
Votre seahub "[https://wiki.archlinux.fr/index.php?title=Discussion:Seafile&action=submit#Seahub_locale locale]" devra être redéfini après la mise à jour.
+
= Client =
 +
 
 +
== Installation ==
 +
 
 +
[[AUR_4.0.0#Utilisation|Installez]] le paquet {{AUR|seafile-client}} disponible sur [[AUR]].<br/>

Version actuelle datée du 3 février 2021 à 13:58


Seafile est un logiciel open-source permettant de créer un service de stockage et d'applications diverses en ligne sur son propre serveur. Les documents peuvent être synchronisés sur un ordinateur ou sur un smartphone par le biais d'une application. Le logiciel possède aussi une interface web. Les fonctionnalités de Seafile sont similaires à celles des populaires services Dropbox et Google Drive. La principale différence est que les fichiers sont stockés par l'administrateur lui-même, chacun peut créer sa propre instance.

Important : Plusieurs paquets étant en conflit, le client et le serveur ne pourront pas être installés sur la même machine.

Serveur

Prérequis

Prérequis pour un déploiement en production :

Installation

Installez le paquet seahub disponible sur AUR.
Le script seafile-helper permet de simplifier la maintenance de l'instance.

Préparation

Note : À titre d'exemple /home/seafile sera utilisé comme répertoire utilisateur dans cette page.

Créez un utilisateur seafile :

useradd -m -r -d /home/seafile -s /usr/bin/nologin seafile

Le groupe seafile et d'autres utilisateurs comme http, peuvent avoir besoin des droits de lecture et d’exécution :

chmod 755 /home/seafile
Important : Chaque intervention sur l'instance devra être réalisée avec l'utilisateur seafile.

Connexion avec l'utilisateur seafile :

sudo -u seafile -s
Note : example.dom sera utilisé à titre d'exemple comme nom d'instance dans cette page.

Créez et importez les répertoires nécessaires :

mkdir -p ~/example.dom/seafile-server
cp -r /usr/share/seafile-server/{runtime,seahub} ~/example.dom/seafile-server/

Déploiement

Avec SQLite

Important : Pour un usage en production il est déconseillé d'utiliser SQLite pour des raisons de sécurité.

Placez vous dans votre instance (nommé ici example.dom) :

cd ~/example.dom

Lancez le script d'installation et suivez les indications :

seafile-admin setup

Avec MySQL

Placez vous dans le répertoire seafile-server :

cd ~/example.dom/seafile-server

Copiez les scripts d'installation pour MySQL :

cp /usr/share/seafile-server/scripts/setup-seafile-mysql.* ./

Exécuter le script bash et suivez les indications

./setup-seafile-mysql.sh

Vous pouvez ensuite supprimer les scripts :

rm setup-seafile-mysql.*

Configuration

Utilisateur administrateur

Pour créer ou modifier l'administrateur, placez-vous dans votre instance

cd ~/example.dom
Note : Il est aussi possible d'utiliser le service systemd pour démarrer/stopper le serveur

Démarrez le serveur :

seafile-admin start

Créez un utilisateur administrateur :

seafile-admin create-admin

Pour modifier l'utilisateur administrateur :

seafile-admin reset-admin

Stoppez le serveur :

seafile-admin stop

Seahub locale

Vous pouvez définir une locale pour votre instance en ajoutant la variable LANGUAGE dans le fichier ~/example.dom/conf/seahub_settings.py
Pour une instance en français LANGUAGE='fr'.

Locales disponibles :

ls ~/example.dom/seafile-server/seahub/locale/

Nginx

Voici un exemple de configuration utilisant https voir documentation officielle.

Note : seafile.example.com devra être remplacé par votre nom de domaine
server {
    listen 80;
    server_name seafile.example.com;
    rewrite ^ https://$http_host$request_uri? permanent;
    server_tokens off;
}

server {
    listen 443;
    server_name seafile.example.com;
    server_tokens off;    

    ssl on;
    ssl_certificate /etc/letsencrypt/live/seafile.example.dom/fullchain.pem;   # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/seafile.example.dom/privkey.pem; # managed by Certbot
        
    location / {
        proxy_pass          http://127.0.0.1:8000;
        proxy_set_header    Host $host;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Host $server_name;
        proxy_read_timeout  1200s;  

        # used for view/edit office file via Office Online Server
        client_max_body_size 0;
        access_log      /var/log/nginx/seahub.access.log;
        error_log       /var/log/nginx/seahub.error.log;
    }

    location /seafhttp {
        rewrite ^/seafhttp(.*)$ $1 break;
        proxy_pass http://127.0.0.1:8082;
        client_max_body_size 0;

        proxy_connect_timeout  36000s;
        proxy_read_timeout  36000s;
        proxy_send_timeout  36000s;

        send_timeout  36000s;
    }

    location /media {
        root /home/seafile/example.dom/seafile-server-latest/seahub;
    }
}

Vous pouvez utiliser le plugin certbot-nginx pour créer et valider votre certificat chez Let's Encrypt , voir page du wiki anglais Let’s_Encrypt#Plugins

Systemd service

Créez et éditez le fichier /etc/systemd/system/seafile-server@.service

[Unit]
Description=Next-generation open source cloud storage.
After=syslog.target network.target

[Service]
Type=forking
WorkingDirectory=/home/seafile/%i
ExecStart=/usr/bin/seafile-admin start
ExecStop=/usr/bin/seafile-admin stop
PIDFile=/home/seafile/%i/seafile-data/pids/seaf-server.pid
User=seafile

[Install]
WantedBy=multi-user.target

Rechargez ensuite la configuration des services :

systemctl daemon-reload

Puis démarrez et/ou activez le service avec la bonne interface voir systemd units :

systemctl start seafile-server@example.dom.service

Memcached

Note : Par défaut seahub utilise le répertoire /tmp/seahub_cache/ pour la mise en cache.
Utiliser Memcached améliorera fortement ses performances.

Prérequis

Installez les paquets :

Configuration

Ajoutez ensuite cette configuration (voir documentation officielle) dans ~/example.dom/conf/seahub_settings.py

CACHES = {
    'default': {
        'BACKEND': 'django_pylibmc.memcached.PyLibMCCache',
        'LOCATION': '127.0.0.1:11211',
        'OPTIONS': {
            'ketama': True,
            'remove_failed': 1,
            'retry_timeout': 3600,
            'dead_timeout': 3600
        }
    }
}

Démarrage

Il faut ensuite démarrer le service memcached, voir Services.

systemctl start memcached.service

Puis redémarrer le service seafile-server :

systemctl restart seafile-server@example.dom.service

Mise à jour

Stoppez le service :

systemctl stop seafile-server@example.dom.service

Connectez vous avec l'utilisateur seafile :

sudo -u seafile -s

Placez vous dans le répertoire seafile-server de votre instance :

cd ~/example.dom/seafile-server/

Vous pouvez faire un backup de seahub :

mv seahub seahub-old
Attention : Si les répertoires seahub-old et upgrade sont déjà présents, ils devront être supprimés ou archivés.

Copiez ensuite les nouveaux répertoires :

cp -r /usr/share/seafile-server/{upgrade,seahub} ./

Puis lancez le script correspondant à votre mise à jour :

./upgrade/votre-update.sh

Client

Installation

Installez le paquet seafile-client disponible sur AUR.