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é à ltape 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.
Répondre…