Comment j’ai installé Ubooquity sur Yunohost
Pourquoi Ubooquity
Afin de pouvoir facilement télécharger mon ebooks, BD ou Manga sur ma liseuse j’avais besoin de les rendre accessible via internet.
En fouillant un peu, j’ai fini par choisir d’utiliser Ubooquity.
Avantages
- facile à installer
- supporte tous les formats qui m’intéresse (ebooks, manga et BD)
- permet de lire ses livres en ligne
- a une interface suffisamment minimale pour être lisible sur une liseuse
Inconvénients
- pas open source
- en java (je ne vois pas exactement ce qu’il y a dedans)
- contient son propre serveur
Prérequis
Ubooquity a besoin d’avoir accès aux documents que vous voulez partager.
En ce qui me concerne, je stock tous mes bouquins chez moi, sur mon NAS. Mon Yunohost, en revanche, se trouve sur mon serveur Kimsuffi.
Pour synchroniser les deux, j’ai opté pour Syncthing, qui était déjà installé pour d’autres usages.
Pour faire tourner Ubooquity, vous aurez également besoin du JRE 8. Attention, les versions supérieurs ne sont pas encore supportées.
Pour le nom de domaine, j’ai organisé mes services comme telle: nomDuService.monDomaine.tld
.
J’ai donc ajouté ubooquity.monDomaine.tld
dans mes DNS.
Enfin, je n’ai pas beaucoup d’expérience en tutorial pour linux, aussi ce document s’adresse aux personnes qui savent ce qu’elles font sur leur serveurs !
L’Installation proprement dite
Mon but final est le suivant: avoir Ubooquity qui tourne en local sur le serveur. Passer par Nginx pour accéder à Ubooquity, en étant identifié par Yunohost.
Pour cela, j’utiliserai donc la Redirect App.
Tester ubooquity en ligne de commande
En suivant les instructions sur le site officiel j’'ai fait comme suit.
- Connectez vous à votre serveur en ssh
- Allez dans votre répertoire home en faisant
cd ~
- Créez un nouveau dossier pour Ubooquity:
mkdir ubooquity
, puis aller dedanscd ./ubooquity
- Téléchargez Ubooquity en faisant
wget http://vaemendis.net/ubooquity/service/download.php -O ubooquity.zip
- Dézippez l’archive
unzip ubooquity
, que vous pouvez ensuite supprimerrm ubooquity.zip
Vous devez maintenant avoir le fichier Ubooquity.jar
présent.
Vous pouvez maintenant lancer Ubooquity en faisant ceci:
java -jar Ubooquity.jar --headless --libraryport 2202 --adminport 2203 --host 127.0.0.1
Qu’est-ce que cela signifie?
-
-jar Ubooquity.jar
vous demandez à Java de lancer Ubooquity -
--headless
Ubooquity sera lancé sans interface graphique -
--libraryport
et--adminport
Ubooquity écoute les requêtes clients sur deux ports, un pour afficher vos livre, et l’autre pour accéder à l’administration. Les ports par défaut sont 2202 et 2203, mais vous pouvez choisr ceux que vous souhaiter. -
--host 127.0.0.1
Ubooquity n’écouter les requêtes que depuis la machine local.
Vous devriez voir une série de log apparaître, vous confirmant qu’ubooquity a bien démarré.
Tant que votre terminal sera ouvert, Ubooquity continuera à fonctionner. Pour l’arrêter, appuyez simplement sur q
puis Enter
.
Accéder à Ubooquity depuis l’extérieur
Section “Library”
Pour le moment, Ubooquity n’est pas accessible. Nous allons utiliser la Redirect App pour pouvoir régler ce problème.
Aller dans votre administration de Yunohost, installer l’app sur le nom de domaine que vous avez choisi.
Voici comment l’app est configurée dans mon cas:
- Redirect Path: je choisis ici d’avoir Ubooquity accessible directement depuis mon sous domaine
- Redirect destination path: faites bien attention à utiliser le même port que celui choisit pour
--libraryport
plus haut - Redirect Type: Nous utilisons Nginx comme proxy, c’est donc le premier choix qui nous intéresse
Une fois cela fait, rendez vous sur l’url que vous avez choisi. Vous devriez avoir accès à Ubooquity.
Section “Administration”
Comme j’ai installé l’App Redirect au root de mon sous domaine, je ne peux pas installer d’autre app dessus. Pour accéder à l’administration via ubooquity.monDomaine.tld/admin
il me faut donc aller bidouiller la configuration Nginx de l’app.
Dans un nouveau terminal (souvenez vous, dans l’autre terminal, Ubooquity est toujours en train de tourner!), rendez vous dans la configuration nginx de l’app.
- Faites
cd /etc/nginx/conf.d/ubooquity.monDomaine.tld.d
(remplacez mondDomaine.tld par votre propre domaine. - Vous trouverez ici le fichier de onfiguration de l’App Redirect,
redirect.conf
- Faites en une copie:
sudo cp redirect.conf redirect-admin.conf
- Éditez ce nouveau fichier via votre éditeur de choix, par exemple:
sudo nano redirect-admin.conf
- Changez la premiére ligne, remplaçant
location /
parlocation /admin
- Changez le port du proxy_pass, remplaçant
proxy_pass http://127.0.0.1:2202;
parproxy_pass http://127.0.0.1:2203;
. Attention, utilisez bien le port que vous avez spécifié dans--adminport
plus haut!
Ensuite, rechargé la configuration de Nginx par la commande sudo service nginx reload
.
Allez sur ubooquity.monDomaine.tld/admin
: vous devriez avoir accès à Ubooquity. Vous pouvez commencer à faire vos réglages si vous le souhaitez.
Transformer Ubooquity en service
Tout ça c’est bien, mais pour l’instant Ubooquity tourne uniquement lorsque vous le démarrer depuis votre terminal.
Pour pouvoir le laisser tourner tout le temps, il suffit de créer un service, qui tournera en même temps que tous les autres déjà présents sur votre serveur.
Pour ce faire, je me suis inspiré de ce document.
Déplacer Uboooquity
Pour l’instant, Ubooquity se trouve dans votre dossier home. Nous allons le déplacer ailleurs.
- Arrêtez ubooquity s’il tourne encore dans votre terminal (tapez
q
puisenter
) - Allez dans votre dossier home
cd ~
- Déplacer le dossier d’Ubooquity dans le dossier opt:
sudo mv ./ubooquity /opt
- Assurez vous que le dossier ubooquity soit bien attribué à l’utilisateur et au groupe
root
, en faisantls -l /opt
Créer un service
Nous allons créer un service qui se chargera de lancer Ubooquity au démarrage de votre serveur, et permettra l’utilisation des commandes suivantes
service ubooquity start
service ubooquity stop
service ubooquity status
- Allez dans votre dossier init/d:
cd /etc/init/d
- Créez un nouveau fichier :
sudo touch ubooquity
- Rendez ce fichier exécutable
sudo chmod 755 ubooquity
- Utilisez votre éditeur préféré, et ajouter ceci dans votre fichier:
Fichier du service Ubooquity
#!/bin/sh
### BEGIN INIT INFO
# Provides: ubooquity
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Start/stop ubooquity server
### END INIT INFO
UBOOQUITY_PORT=2202
UBOOQUITY_ADMIN_PORT=2203
# Uncomment the following line to allocate more memory to Ubooquity
#MEM_OPT=-Xmx512m
cd /opt/ubooquity
case "$1" in
start)
count=`pgrep -fc Ubooquity.jar`
if [ "$count" -gt "0" ];
then
echo Ubooquity is already running;
else
rm nohup.out
nohup java -jar /opt/ubooquity/Ubooquity.jar $MEM_OPT --headless --libraryport $UBOOQUITY_PORT --adminport $UBOOQUITY_ADMIN_PORT --host 127.0.0.1 2>&1 &
echo Ubooquity has been started;
fi
;;
stop)
count=`pgrep -fc Ubooquity.jar`
if [ "$count" -gt "0" ];
then
echo stopping Ubooquity...
pkill -f "Ubooquity.jar"
echo Waiting 10 seconds before checking the server stopped...;
sleep 10
count=`pgrep -fc Ubooquity.jar`
if [ "$count" -gt "0" ];
then
echo Failed to stop Ubooquity: you can either wait a few more seconds or kill it manually;
else
echo Ubooquity has been stopped;
fi
else
echo Ubooquity is NOT running, no need to stop it;
fi
;;
status)
count=`pgrep -fc Ubooquity.jar`
if [ "$count" -gt "0" ];
then
echo Ubooquity is RUNNING;
else
echo Ubooquity is NOT running;
fi
;;
*)
echo $"Usage: $0 {start|stop|status}"
exit 1
esac
Pensez bien à remplacer, au début du fichier, les ports que vous souhaitez utiliser pour la partie principale et l’administration d’Ubooquity.
- Ajouter votre nouveau service en faisant
sudo insserv ubooquity
- Puis installez le en faisant
sudo update-rc.d ubooquity defaults
- Enfin, démarrez le avec
sudo service ubooquity start
Vous devriez de nouveau avoir accès à Ubooquity via ubooquity.monDomaine.tld !
Conclusion
J’espère que ceci pourra être utile à tous ceux qui veulent accéder à leurs eBooks, Manga, BD et Comics de n’importe ou.
Je n’ai pas spécialement de connaissance en matière de script init.d, aussi, si vous avez des conseils je suis tout ouïe.
Par exemple, pour le moment les logs sont écrits dans /var/log/daemon.log
. S’il y a moyen de les mettre ailleurs, je suis preneur!
De la même manière, Ubooquity tourne directement avec root. S’il y a moyen de sécuriser un peu tout ça, ça m’intéresse.