Introduction
Dans ce tuto, nous allons installer Seafile, un service de cloud auto-hébergé. Une démo est disponible
ici . Ce tutoriel a été rédigé par un noob, merci d'être indulgent

Il est très probable que je ne sache pas répondre à toutes les questions. Merci de les poser dans
cette discussion si vous en avez.
Je pense donner un bon aperçu d'une installation basique, si vous souhaitez plus de documentation, c'est par
ici.
Je pars du principe que votre serveur dispose de :
- Debian 7
- Nginx (configuration basée sur le tuto rutorrent donc faites attention à l'emplacement des certificats SSL si vous ne l'avez pas suivi)
- Mysql
1) Mise à jour de Debian
sudo apt-get update
2) Installation des dépendances (liste complète)
sudo apt-get install mysql-server mysql-client python2.7 python-setuptools python-simplejson python-imaging python-mysqldb python-flup nginx openssl
3) Création d'un user spécifique à seafile et connection
Vous pouvez passer les questions inutiles qui vont suivre.
sudo adduser seafile –disabled-password
sudo su seafile
cd
A présent, nous sommes connectés sous l'utilisateur "seafile" et nous nous trouvons dans son /home. Les commandes qui suivent ne doivent en aucun cas être précédées de « sudo » (sauf pour la partie nginx), sinon vous allez recevoir un message d'erreur.
4) Téléchargement et décompression de Seafile
mkdir mycloud && cd mycloud
Allez à
cette page
Allez dans la catégorie "Server for generic Linux" et, à l'aide d'un clic droit, copiez le lien de téléchargement de la dernière version 64bit (à ce jour la 4.3.2). Ensuite téléchargez là avant de la décompresser.
wget <lien copié à l'étape précedente>
tar -xvzf seafile-server_*
rm seafile-server_*
cd seafile-server-x.x.x
5) Installation de Seafile avec Mysql
Après avoir lancé cette commande, vous serez guidés par le script qui suit. <ENTER> signifie que vous pouvez presser la touche « entré » afin de choisir la valeur par défaut.
./setup-seafile-mysql.sh
This script will guide you to setup your seafile server using MySQL.
Make sure you have read seafile server manual at
https://github.com/haiwen/seafile/wiki
Press ENTER to continue
What is the name of the server? It will be displayed on the client.
3 - 15 letters or digits
[ server name ] <votre nom de serveur>
What is the ip or domain of the server?
For example: www.mycompany.com, 192.168.1.101
[ This server's ip or domain ] <à compléter>
Where do you want to put your seafile data?
Please use a volume with enough free space
[ default "/home/seafile/mycloud/seafile-data" ] <ENTER>
Which port do you want to use for the seafile fileserver?
[ default "8082" ] <ENTER>
-------------------------------------------------------
Please choose a way to initialize seafile databases:
-------------------------------------------------------
[1] Create new ccnet/seafile/seahub databases
[2] Use existing ccnet/seafile/seahub databases
[ 1 or 2 ] <Choisissez 1>
What is the host of mysql server?
[ default "localhost" ] <ENTER>
What is the port of mysql server?
[ default "3306" ] <ENTER>
What is the password of the mysql root user?
[ root password ] <renseignez votre mot de passe root pour Mysql>
verifying password of user root ... done
Enter the name for mysql user of seafile. It would be created if not exists.
[ default "root" ] <écrivez « seafile » >
Enter the password for mysql user "seafile":
[ password for seafile ] <renseignez un nouveau mot de passe>
Enter the database name for ccnet-server:
[ default "ccnet-db" ] <ENTER>
Enter the database name for seafile-server:
[ default "seafile-db" ] <ENTER>
Enter the database name for seahub:
[ default "seahub-db" ] <ENTER>
---------------------------------
This is your configuration
6) Mise à jour des ULRs pour Seahub,
Prenez un port non-utilisé. Pour ma part, le port 8008 convient parfaitement et modifiez SERVICE_URL pour que cela ressemble à ce qui suit. N'oubliez pas l'httpS !
nano /home/seafile/mycloud/ccnet/ccnet.conf
SERVICE_URL = https://votredomaine.tld:8008
On modifie en suite ce fichier.
nano /home/seafile/mycloud/seahub_settings.py
Ajoutez la ligne suivante juste en dessous de la première.
HTTP_SERVER_ROOT = 'https://votredomaine.tld:8008/seafhttp'
7) Démarrage de Seafile et de seahub en mode fast-cgi
/home/seafile/mycloud/seafile-server-latest/seafile.sh start
Si vous ne spécifiez pas de port, celui par défaut est le 8000
/home/seafile/mycloud/seafile-server-latest/seahub.sh start-fastcgi 8001
On quitte le user Seafile.
exit
8) Création de votre url Seafile :
Merci d'attacher une attention tout particulière à la manière dont les ports 8008 et 8001 sont spécifiés dans le fichier de configuration Nginx
sudo nano /etc/nginx/sites-enabled/seafile.conf
Copier/coller
server {
listen 8008;
ssl on;
ssl_certificate /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
server_name mondomaine.com;
error_page 497 https://$host:$server_port$request_uri;
location / {
fastcgi_pass 127.0.0.1:8001 ;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_script_name;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param HTTPS on;
fastcgi_param HTTP_SCHEME https;
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;
}
location /media {
root /home/seafile/mycloud/seafile-server-latest/seahub;
}
}
9) Redémarrage de Nginx
sudo service nginx restart
10) Fin
Normalement, vous devriez avoir accès à l'inteface de Seafile via
https://ipserveur😛ort (8008 dans mon cas)
et
https://votredomaine.tld😛ort (toujours 8008)
Si c'est bien le cas, il est temps de télécharger les différents clients pour profiter de votre nouveau cloud partout.