Outils pour utilisateurs

Outils du site


Installation d'un service de stockage en ligne (Dropbox like)

Seafile est un logiciel libre permettant de construire un service de stockage.
Il a été cité dans les médias comme un système permettant de « mieux protéger sa vie privée sur Internet ».
La société qui développe le logiciel a développé une offre commerciale en mode SaaS sous le nom de Seacloud.

Seafile est constitué de trois composants :

  • un serveur, Seafile (sous licence GPLv2)
  • une interface web, SeaHub (sous licence Apache), permettant de consulter les fichiers gérés par Seafile directement via le web
  • un client de synchronisation (disponible sur Android/Linux/MAC OS/Windows).

Le projet utilise un modèle inspiré de Git pour la gestion de fichiers, avec certaines adaptations, permettant par exemple de gérer de façon plus performante les gros fichiers.

Je vais décrire une installation de Seafile sur Debian.

Prérequis :

Pour commencer il faut installer certain package, pour cela j'ai choisi d'installer seafile avec mysql comme SGBD:

aptitude install python2.7 libpython2.7 python-setuptools python-imaging python-ldap python-urllib3 ffmpeg python-pip python-mysqldb python-memcache python-urllib3
pip install pillow moviepy

Mois, j'ai installé cela dans le répertoire opt, j'ai créé un répertoire seafile dans le répertoire opt.

mkdir /opt/seafile
cd /opt/seafile

Récupérez l'archive ici.
Déplacez l'archive dans le répertoire /opt/seafile, puis décompressez l'archive.

tar -xvzf seafile-server*.tar.gz
cd seafile-server*

Installation des services :

L'installation va commencer, il faut juste exécuter le script setup-seafile-mysql.sh.
Pendant l'installation des questions vous seront posés, vous devrez répondre au questions (création de la base, nom, etc).
Je vous proposent mon exemple qui suit:

# ./setup-seafile-mysql.sh
Checking python on this machine ...
Checking python module: setuptools ... Done.
Checking python module: python-imaging ... Done.
Checking python module: python-mysqldb ... Done.

-----------------------------------------------------------------
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 ] myfile

What is the ip or domain of the server?
For example: www.mycompany.com, 192.168.1.101
[ This server's ip or domain ] 172.10.4.102

Where do you want to put your seafile data?
Please use a volume with enough free space
[ default "/opt/seafile/seafile-data" ]

Which port do you want to use for the seafile fileserver?
[ default "8082" ]

-------------------------------------------------------
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 ] 1

What is the host of mysql server?
[ default "localhost" ]

What is the port of mysql server?
[ default "3306" ]

What is the password of the mysql root user?
[ root password ]

verifying password of user root ...  done

Enter the name for mysql user of seafile. It would be created if not exists.
[ default "root" ] seafile

Enter the password for mysql user "seafile":
[ password for seafile ]

Enter the database name for ccnet-server:
[ default "ccnet-db" ]

Enter the database name for seafile-server:
[ default "seafile-db" ]

Enter the database name for seahub:
[ default "seahub-db" ]

---------------------------------
This is your configuration
---------------------------------

    server name:            myfile
    server ip/domain:       172.10.4.102

    seafile data dir:       /opt/seafile/seafile-data
    fileserver port:        8082

    database:               create new
    ccnet database:         ccnet-db
    seafile database:       seafile-db
    seahub database:        seahub-db
    database user:          seafile



---------------------------------
Press ENTER to continue, or Ctrl-C to abort
---------------------------------

Generating ccnet configuration ...

done
Successly create configuration dir /opt/seafile/ccnet.
Generating seafile configuration ...

Done.
done
Generating seahub configuration ...

----------------------------------------
Now creating seahub database tables ...
----------------------------------------

creating seafile-server-latest symbolic link ...  done

-----------------------------------------------------------------
Your seafile server configuration has been finished successfully.
-----------------------------------------------------------------

run seafile server:     ./seafile.sh { start | stop | restart }
run seahub  server:     ./seahub.sh  { start <port> | stop | restart <port> }

-----------------------------------------------------------------
If you are behind a firewall, remember to allow input/output of these tcp ports:
-----------------------------------------------------------------

port of seafile fileserver:   8082
port of seahub:               8000

When problems occur, Refer to

        https://github.com/haiwen/seafile/wiki


for information.

Lancement des services :

Ensuite, il faut lancer le service seafile-server :

# ./seafile.sh start

[04/09/16 19:22:57] ../common/session.c(132): using config file /opt/seafile/conf/ccnet.conf
Starting seafile server, please wait ...
Seafile server started

Done.

Puis, le serveur web, comme c'est le premier lancement, vous allez créer votre login d'administration, répondez correctement au questionnaire, mais aussi choisir le port du serveur web (voici, mon exemple) :

# ./seahub.sh start 8000

Starting seahub at port 8000 ...

----------------------------------------
It's the first time you start the seafile server. Now let's create the admin account
----------------------------------------

What is the email for the admin account?
[ admin email ] root@mydomain.com

What is the password for the admin account?
[ admin password ]

Enter the password again:
[ admin password again ]

----------------------------------------
Successfully created seafile admin
----------------------------------------
Seahub is started

Done.

Voici, votre serveur Seafile est prêt, vous pouvez l'administrer au travers de l'interface web dans mon exemple http://172.10.4.102:8000

Pour arrèter le service seafile :

./seahub.sh stop
./seafile.sh stop

puis, le relancer :

./seafile.sh start
./seahub.sh start

Automatisation :

Si, vous voulez automatiser le lancement des services au démarrage, je vais vous montrez comment faire.

Création du login seafile :

groupadd seafile
useradd -g seafile -s /bin/sh -c "seafile" seafile

Changer le propriétaire des fichiers seafile :

chown -R seafile:seafile /opt/seafile/*

puis, faire le script de lancement suivant (avec les privilèges root) :

# vim /etc/init.d/seafile

Voici, le contenu du script

#! /bin/sh

### BEGIN INIT INFO
# Provides:             seafile
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Default-Start:        2 3 4 5
# Default-Stop:
# Short-Description:    seafile
### END INIT INFO

SEAFILE_REP=/opt/seafile/seafile-server-latest
SEAFILE_BIN=${SEAFILE_REP}/seafile.sh
SEAHUB_BIN=${SEAFILE_REP}/seahub.sh
USER=seafile
. /lib/lsb/init-functions

if [ ! -x $SEAFILE_BIN ]; then
        log_daemon_msg "${SEAFILE_BIN} does not exist."
        err=1
        case "$err" in
                0) log_end_msg 0;;
                *) log_end_msg 1; exit 1;;
        esac
fi
if [ ! -x $SEAHUB_BIN ]; then
        log_daemon_msg "${SEAHUB_BIN} does not exist."
        err=1
        case "$err" in
                0) log_end_msg 0;;
                *) log_end_msg 1; exit 1;;
        esac
fi

start() {
        log_daemon_msg "lancement de $SEAFILE_BIN"
        su $USER -c "$SEAFILE_BIN start"
        case "$?" in
                0) log_end_msg 0;;
                *) log_end_msg 1; exit 1;;
        esac
        log_daemon_msg "lancement de $SEAHUB_BIN"
        su $USER -c "$SEAHUB_BIN start"
        case "$?" in
                0) log_end_msg 0;;
                *) log_end_msg 1; exit 1;;
        esac
}
stop() {
        log_daemon_msg "lancement de $SEAFILE_BIN"
        su $USER -c "$SEAFILE_BIN stop"
        case "$?" in
                0) log_end_msg 0;;
                *) log_end_msg 1; exit 1;;
        esac
        log_daemon_msg "lancement de $SEAHUB_BIN"
        su $USER -c "$SEAHUB_BIN stop"
        case "$?" in
                0) log_end_msg 0;;
                *) log_end_msg 1; exit 1;;
        esac
}
case "$1" in
        start)
                start
        ;;
        stop)
                stop
        ;;
        restart)
                stop
                start
        ;;
        *)
                echo $"Usage: seafile {start|stop|restart}"
        ;;
esac       

Attribuer les droit suivants :

chmod 755 /etc/init.d/seafile

Lancement des services au démarrage de linux, saisir la commande suivante :

update-rc.d seafile defaults

0 Comments

Comments :