Tutoriel : comment créer une bibliobox à partir d’une piratebox sur un raspberry pi 3

jeudi 4 mai 2017
par  Frédéric Gautier
popularité : 1%

Matériel :

  • raspberrypi 3 (rpi3) car la carte wifi est intégrée (et très bien gérée par l’image de la piratebox pour raspberrypi 2 et 3)
  • alimentation pour raspberry 3 = 5V et 2,5 A mini.
  • boîtier pour raspberry Pi (boîtier officiel rouge et blanc ou autre)
  • carte microSD rapide Classe 10 minimum qui recevra le système d’exploitation et les applications
  • clé USB formatée en fat 32 et qui servira à stocker les livres numériques.

Le rpi3 a tendance à chauffer donc prévoir éventuellement un ensemble radiateur + ventilateur.
Pour avoir un confort d’utilisation maximal, il est utile de prévoir un interrupteur sur le câble d’alimentation pour éteindre le rpi3. Il faut alors opter pour une alimentation avec ports USB afin d’y connecter le câble avec interrupteur cf https://www.kubii.fr/1807-bouton-po...

Tous ce matériel est disponible chez des commerçants en ligne, par exemple :
http://www.kubii.fr

Une fois le rpi3 monté dans son boîtier, il faut récupérer l’image d’un système pour piratebox et le transférer sur la carte microSD.

Tout est expliqué dans cette page :
https://piratebox.cc/raspberry_pi:d...

Pour la suite, c’est-à-dire la transformation de la piratebox en bibliobox, il est utilise de lire le contenu des pages suivantes :
https://piratebox.cc/raspberry_pi:mods => pour savoir où changer le ssid du réseau wifi de la piratebox
https://piratebox.cc/raspberry_pi:d...

Le système Linux d’une piratebox est une archLinux (http://https://wiki.archlinux.fr/Accueil).
Afin de rendre l’affichage des fichiers et des dossiers stockés sur la clé USB de la bibliobox, il faut installer un outil plus ergonomique que celui qui est intégré par défaut (un simple affichage en liste). Le script php h5ai (https://larsjung.de/h5ai/) permet d’apporter des options très intéressantes : moteur de recherche, filtre pour cacher certains fichiers tels que README.txt, désactivation de la lecture automatique des vidéos, interface en français, etc.

La méthode :

Lors du premier démarrage, une fois que modifié la configuration par défaut de la piratebox cf le fichier /etc/motd (mot de passe, date et activation de l’utilisation de la clé USB), il faut activer php.

Il faut se connecter en ssh sur la piratebox. On peut en profiter changer certains paramètres dans les fichiers du répertoire /opt/piratebox/conf/, piratebox.conf, json.conf par exemple ou chat-init.txt.

Personnellement, je conseille de commenter les modifications. C’est très utile pour déboguer par la suite.

Extrait de piratebox.conf ----------------

#Start droopy? - Enable upload?
# modif par Fred yes->no
DROOPY_ENABLED="no"
#Image-SRC
IMAGENAME="piratebox-logo-small.png"
IMAGE="$PIRATEBOX_FOLDER/src/$IMAGENAME"
DROOPY_TXT=""
DROOPY_PORT="8080"
# Set correct permissions for an uploaded file
#   The following line needs to be commented for FAT32 / vfat partitions
# modif par Fred ->#
#DROOPY_CHMOD="755"

----------------Extrait de piratebox.conf

Pour relancer la config de la piratebox (à effectuer après chaque modification des fichiers de configuration) :

sudo systemctl restart piratebox

Pour activer php, il faut modifier 2 fichiers : lighttpd.conf et pour utiliser h5ai, fastcgi-php.conf.

sudo nano /opt/piratebox/conf/lighttpd/lighttpd.conf

Dans /opt/piratebox/conf/lighttpd/lighttpd.conf (à la fin du fichier), il faut décommenter la ligne d’include qui active le php.

# modif par Fred # →
include "/opt/piratebox/conf/lighttpd/fastcgi-php.conf"

Pour relancer la config de la piratebox (à effectuer après chaque modification des fichiers de configuration)

sudo systemctl restart piratebox

cf https://piratebox.cc/raspberry_pi:m... pour avoir des idées sur le fonctionnement de la piratebox. mais il ne faut pas tout prendre au pied de la lettre.

Puis, dans fastcgi-php.conf, il faut indiquer les dossiers dans lesquels php doit être actif. Par défaut, c’est le dossier /content/ (dans /opt/piratebox/www) dans lequel les scripts php peuvent s’exécuter.

sudo nano /opt/piratebox/conf/lighttpd/fastcgi-php.conf

Et il faut remplacer "/content/" par "/" afin d’obtenir :

#-------------------- FAST CGI stuff
# modif par Fred content->Shared->/
$HTTP["url"] =~ "^/" {
        fastcgi.server = (
                ".php" => ((
                                "bin-path" => "/usr/bin/php-cgi",
                                "socket" => "/tmp/php.socket",
                                "max-procs" => 1
                        ))
        )
}

Et oui, on voit que j’ai tenté de remplacer /content/ par /Shared/ grâce au commentaire.

On relance le service piratebox (mais en fait, je crois que ce n’est pas nécessaire pour la modification de fastcgi-php.conf).

sudo systemctl restart piratebox

Sur un PC, il faut récupérer ensuite h5ai sur le site de Larsjung.de https://release.larsjung.de/h5ai/. La dernière version, h5ai-0.29.0.zip fonctionne très bien. On copie le fichier sur la piratebox dans le répertoire de l’utilisateur alarm via scp ou sftp.

On dézippe h5ai-0.29.0.zip dans le répertoire d’alarm.

sudo unzip h5ai-0.29.0.zip

On obtient un dossier _h5ai/. On copie ensuite ce répertoire dans /opt/piratebox/www/.

sudo cp -r _h5ai/ /opt/piratebox/www/

Il faut ensuite configurer h5ai afin de personnaliser le "montreur" de fichiers ;-)

sudo nano /opt/piratebox/www/_h5ai/private/conf/options.json

Voici les parties, surlignées en jaune, à modifier dans le fichier /opt/piratebox/www/_h5ai/private/conf/options.json :

 /* modif par Fred hideParentFolder false -> true-> false modetoggle false-> true */
    "view": {    
        "binaryPrefix": false,
        "disableSidebar": false,
        "fallbackMode": false,
        "fastBrowsing": true,
        "fonts": ["Ubuntu", "Roboto", "Helvetica", "Arial", "sans-serif"],
        "fontsMono": ["Ubuntu Mono", "Monaco", "Lucida Sans Typewriter", "monospace"],
        "hidden": ["^\\.", "^_h5ai"],
        "hideFolders": false,
        "hideIf403": true,
        "hideParentFolder": false,
        "maxIconSize": 40,
        "modes": ["details", "grid", "icons"],
        "modeToggle": true,
        "setParentFolderLabels": true,
        "sizes": [20, 40, 60, 80, 100, 140, 180, 220, 260, 300],
        "theme": "comity",
        "unmanaged": ["index.html", "index.htm", "index.php"],
        "unmanagedInNewWindow": false
    },

/* modif par Fred enabled true->false */
    "autorefresh": {
        "enabled": false
        "interval": 5000
    },

/* modif par Fred enabled true->false */
    "custom": {
        "enabled": false
    },

  /* modif par Fred en->fr */
    "l10n": {
        "enabled": true,
        "lang": "fr",
        "useBrowserLang": true
    },

/* modif par Fred enabled true -> false autoplay true -> false */
    "preview-aud": {
        "enabled": false,
        "autoplay": false,
        "types": ["aud"]
    },

 /* modif par Fred enabled true -> false */
    "preview-img": {
        "enabled": false,
        "size": false,
        "types": ["img", "img-bmp", "img-gif", "img-ico", "img-jpg", "img-png", "img-raw", "img-svg"]
    },

  /* modif par Fred enabled true -> false */
    "preview-txt": {
        "enabled": false,
        "styles": {
            "txt": 1,
            "txt-authors": 1,
            "txt-c": 3,
            "txt-cpp": 3,
            "txt-css": 3,
            "txt-diff": 1,
            "txt-go": 3,
            "txt-h": 3,
            "txt-hpp": 3,
            "txt-install": 1,
            "txt-js": 3,
            "txt-json": 3,
            "txt-less": 3,
            "txt-license": 1,
            "txt-log": 1,
            "txt-makefile": 1,
            "txt-md": 2,
            "txt-py": 3,
            "txt-rb": 3,
            "txt-readme": 1,
            "txt-rtf": 1,
            "txt-rust": 3,
            "txt-script": 3,
            "txt-xml": 1
        }
    },

 /* modif par Fred enabled true->false autoplay true→false*/
    "preview-vid": {
        "enabled": false,
        "autoplay": false,
        "types": ["vid-avi", "vid-flv", "vid-mkv", "vid-mov", "vid-mp4", "vid-mpg", "vid-webm"]
    },

   /* modif par Fred enabled false->true */
    "search": {
        "enabled": true,
        "advanced": true,
        "debounceTime": 300,
        "ignorecase": true
    },

/* modif par Fred enabled true -> false */
    "thumbnails": {
        "enabled": false,
        "img": ["img-bmp", "img-gif", "img-ico", "img-jpg", "img-png"],
        "mov": ["vid-avi", "vid-flv", "vid-mkv", "vid-mov", "vid-mp4", "vid-mpg", "vid-webm"],
        "doc": ["x-pdf", "x-ps"],
        "delay": 1,
        "size": 240,
        "exif": false,
        "chunksize": 20
    },

/* modif par Fred enable true -> false */
    "tree": {
        "enabled": false,
        "show": true,
        "maxSubfolders": 50,
        "naturalSort": true,
        "ignorecase": true
    },

Bon amusement ;-) Car il est possible de modifier pas mal de choses dans h5ai autrement que dans le fichier json : couleur, icônes, etc.

Il suffit ensuite de repérer le réseau wifi de la bibliobox (ou piratebox) avec un PC équipé d’une carte wifi ou d’un smartphone puis de s’y connecter avec un navigateur Web. Il suffit de taper http://piratebox.lan (ou un autre nom de domaine si vous l’avez modifié, mais toujours avec http:// devant) pour accéder à la page d’accueil de la bibliobox.

Remarque : il est possible de se connecter sur le rpi3 via un câble Ethernet. L’adresse IP de la bibliobox est alors http://192.168.77.1 depuis un navigateur Web (ou un client SSH).

PNG - 108.6 ko
Le gestionnaire de fichiers h5ai, avec un moteur de recherche intégré.

Webographie :

https://bibliobox.net/blog/post/201...
https://forum.bibliobox.net/
http://www.pearltrees.com/t/pirateb...


Commentaires

Annonces

Annuaire LibreNord

Retrouvez l’annuaire de logiciels libres créé par l’association Club Linux Nord-Pas de Calais sur le site suivant http://www.librenord.org