Discussion: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.
Sommaire
Seafile-client
Installation
Installez le paquet seafile-client disponible sur AUR.
Seafile-server
Installation
Installez le paquet seahub disponible sur AUR.
Le script seafile-helper permet de simplifier la maintenance de l'instance.
Préparation
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
Connexion avec l'utilisateur seafile :
sudo -u seafile -s
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
Placez vous dans votre instance :
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
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
Pour mettre seahub en français :
cd ~/example.dom/seafile-server/seahub/locale/fr/LC_MESSAGES/ msgfmt -o django.mo django.po
Vous devez ensuite ajouter la variable LANGUAGE='fr' dans le fichier ~/example.dom/conf/seahub_settings.py
Nginx configuration
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
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
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
Votre seahub "locale" devra être redéfini après la mise à jour.