Bonjour,
Aujourd’hui nous allons monter notre propre espace cloud personnel sur une machine Linux. Evidemment il existe plusieurs logiciels Open Source qui permettent de créer des services de stockage et d’applications diverses en ligne soi-même. D’ailleurs avant de m’intéresser à ce produit, j’ai utilisé le fameux logiciel libre Owncloud, couplé à son exécutable pour Windows client pour synchroniser certains documents de mon pc portable dont j’avais souvent besoin à l’extérieur de la maison.
Lors de mes recherches sur le Web, je suis tombé sur ce logiciel qui m’a semblé différent de ces concurrents car il se concentre plus sur le partag, la synchronisation et la sécurité des fichiers que des applications ou options tierces annexes.
A titre personnel ce qui m’intérrese sur ce logiciel c’est qu’il est multiplate-forme, disponible aussi sur mobile Apple et Android (application gratuite????) , il permet une gestion des droits, historique de version, co-edition en ligne de documents bureautiques (via Collabora Online) et bien-sur, cryptage.
En plus de tous les éléments cités plus haut son atout majeur selon mes besoins est le Drive Client qui permet d’installer un disque virtuel sur son pc et tous les documents qui sont rangés dans ce disque seront automatiquement synchronisés sur le serveur !
Vous pouvez voir toute les fonctionnalités du logiciel sur le site : https://www.seafile.com/en/home/
Il peut aussi être utilisé dans le cadre professionnel car il peut être couplé à un serveur Active Directory ou un LDAP.
Je vais vous montrer maintenant comment installer le dit logiciel, les schémas suivant expliquent comment le logiciel interagit avec les différents supports client ( et aussi pour connaitre aussi les ports à ouvrir en cas d’accès externe????)
1-Synchronisation entre les ordinateurs clients et le serveur Seafile
2-Synchronisation entre les smartphones et le serveur Seafile
a) Prérequis
Avant de se lancer dans les prérequis je vais vous présenter les différents services utilisés par le serveur Seafile et leur but
- Ccnet daemon (ccnet coté client or ccnet-server coté serveur) : Il sert en partie au transport des données entre les clients et le serveur
- Seafile daemon : Service de données
- Seahub : Service qui fournit l’application web du server seafile
- FileServer : Service qui permet d’uploader et downloader les fichiers dans le serveur
- Controller: Permet de controller les services ccnet et Seafile, en cas de souci il peut relancer les services.
Je vais lancer mon installation sur mon VPS qui tourne sous débian Jessie (8.11) avec les logiciels suivants déjà installé :
- Apache2
- Mysql
Si vous respectez ces prérequis vous pouvez lancer la mise à jour de votre système
apt-get update && apt-get upgrade
apt-get install python2.7 libpython2.7 python-setuptools python-ldap python-mysqldb python-memcache python-urllib3 python-requests
pip install Pillow==4.3.0
apt-get update
apt-get install python3 python3-setuptools python3-pip -y
pip3 install --timeout=3600 Pillow pylibmc captcha jinja2 sqlalchemy \
django-pylibmc django-simple-captcha python3-ldap
apt-get install memcached libmemcached-dev -y
pip3 install --timeout=3600 pylibmc django-pylibmc
systemctl enable --now memcached
Se rendre dans le repertoire ou vous voulez installer le logiciel
cd /votre/repertoire/
Créer le dossier Cloud
mkdir cloud
Se rendre dans le dossier cloud
cd cloud
Télécharger la dernière version de seafile. Lors de mes tests la dernière version est la 7.0
wget https://download.seadrive.org/seafile-server_7.0.0_x86-64.tar.gz
Décompressons le fichier que nous venons de télécharger
tar -xzf seafile-server_*
Il faut créer un dossier installed et déplacer le fichier compressé dans ce dossier
mkdir installed mv seafile-server_* installed
Maintenant nous allons nous connecter à notre base de données mysql afin de créer 3 nouvelles bases pour accueillir notre logiciel et un utilisateur ayant les droits d’accès à ces bases
#connexion à la base sql
mysql -u root -p
#Création des bases
create database ccnet-db character set = 'utf8';
create database seafile-db character set = 'utf8';
create database seahub-db character set = 'utf8';
#création des utilisateurs
create user 'seafile'@'localhost' identified by 'VotreMotDePasse';
#Attribution des droits à l'utilisateur sur les bases
GRANT ALL PRIVILEGES ON ccnet-db.* to seafile@localhost;
GRANT ALL PRIVILEGES ON seafile-db.* to seafile@localhost;
GRANT ALL PRIVILEGES ON seahub-db.* to seafile@localhost;
flush privileges ;
b) Installation du serveur seahub
Rendons nous dans le sous répertoire du dossier cloud pour procéder à l’installation
cd seafile-server-* démarrer le script & lance le questionnaire d'installation ./setup-seafile-mysql.sh
Il faut donner un nom a votre serveur seafile
Il faut ensuite entre le nom de domaine complet (FQDN) ou l’adresse IP qui va lui être attribué
Il faut indiquer le chemin ou vous voulez stocker vos données
Where do you want to put your seafile data? Please use a volume with enough free space [default "/votre/emplacement/seafile-data"]
Sur quel port voulez vous utiliser le serveur par défaut le 8082 mais vous pouvez le modifier
Pour les bases de données, il faut choisir l’option [2] car nous avons déjà nos bases
------------------------------------------------------- Please choose a way to initialize Seafile databases: ------------------------------------------------------- [1] Create new ccnet/seafile/seahub databases [2] Use existing ccnet/seafile/seahub databases
Pour l’emplacement de la base de données et le port laissez les paramètres par défaut sinon rentrez l’ip de votre serveur SQL et son port
rentrez le nom de l’utilisateur créé précédemment dans la base SQL “seafile” avec son mot de passe
Terminez le questionnaire avec vos informations personnalisées
c) Configuration sur service Apache
Maintenant nous allons modifier les fichiers de configuration d’apache pour activer l’interface web
Il faut commencer par installer les modules suivants d’Apache
sudo a2enmod rewrite
sudo a2enmod proxy_http
Modifier le fichier de configuration d’Apache par défaut sites-enabled/000-default
<VirtualHost *:80>
ServerName cloud.nomdedomaine.com
DocumentRoot /var/www
Alias /media /votre/emplacement/seafile-data/seahub/media
RewriteEngine On
<Location /media>
Require all granted
</Location>
#
# seafile fileserver
#
ProxyPass /seafhttp http://127.0.0.1:8082
ProxyPassReverse /seafhttp http://127.0.0.1:8082
RewriteRule ^/seafhttp - [QSA,L]
#
# seahub
#
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:8000/
ProxyPassReverse / http://127.0.0.1:8000/
</VirtualHost>
Si vous herbegez déjà des sites web sur votre débian vous devez créer un nouveau virtualhost et renseigner les informations ci-dessous
# Creer le fichier et le modifier avec les informations ci dessus
vi /etc/apache2/sites-available/cloud.nomdedomaine.conf
# Activer le nouveau virtualhost
a2ensite cloud.nomdedomaine.conf
#Redemarrer le service apache
service apache2 restart
Démarrer les services nécessaires à seafile serveur
cd /reperotire/dulogiciel/seafile
./seafile.sh start
./seahub.sh start
Maintenant vous pouvez vous connecter à la page web du serveur seafile : http://votre.ip.ou.nomdedomaine.com
Une fois connecté avec votre adresse mail et le mot de passe renseigné lors de la configuration du serveur, rendez-vous des les paramètres administrateur système
Dans “Paramètres” Modifier les deux paramètres SERVICE_URL et FILE_SERVER_ROOT
Par les informations suivantes
SERVICE_URL = http://cloud.votrenomdedomaine.com
FILE_SERVER_ROOT = 'http://cloud.votrenomdedomaine.com/seafhttp'
Redémarrez les services
sudo service apache2 restart
./seafile.sh start
./seahub.sh start
Votre serveur est maintenant prêt ???????????? vous pouvez désormais naviguer vers les options afin de le personnaliser en fonction de vos besoins
d) Installation coté client
Vous pouvez vous rendre sur le lien suivant https://www.seafile.com/en/download/ pour télécharger le Desktop Syncing Clients et ou le Desktop Drive Clients
Moi j’ai préféré installé le Desktop Drive Clients et lors de l’installation il me demande la lettre à utiliser pour le lecteur virtuel qui sera connecté à mon serveur
Renseignez les informations de connexion à votre serveur
Une fois l’installation terminée on peut constater que le nouveau lecteur S: à été ajouté
Tous les dossiers en cours de synchronisation sont marqués
Le nuage orange ci-contre indique que la bibliothèque n’est pas synchronisée. |
Tout les documents que vous mettrez dans ce lecteur seront synchronisés sur le serveur et une fois la synchronisation terminée les documents passent au vert.
Voilà c’est déjà terminé, c’était une présentation brève de l’outil Seafile mais vous pouvez aller sur leur site web car le logiciel dispose de plusieurs fonctionnalités que je n’aurais malheureusement le temps de couvrir.
Je ferais surement un article basé plus sur mon retour d’expérience avec cet outil.