Una bibliobox es un dispositivo que crea una red WLAN para poder conectarte y navegar un sitio estático que contiene una biblioteca digital.
o podés comenzar por aqui:
¿Querés tener una biblioteca portátil para compartir libros? en la siguiente entrada se detalla como crear una bibliobox usando el código de biblioteca-guerrilla una raspberry pi y una celda de carga.
Una bibliobox es un dispositivo que crea una red WLAN para poder conectarte y navegar un sitio estático que contiene una biblioteca digital.
Si bien el software puede utilizarce en varios dispositivos, esta instancia de biblioteca guerrilla será montada en una raspberry pi. En esta documentación se detallará ese procedimimiento *al estilo receta de cocina: ¿Qué necesitamos?
Editar metadata de los libros y asegurarnos que tienen todos portadas [tapas], en el buscador de calibre podemos poner: cover:false
para filtrar los libros que no tengan una tapa, y podemos crearle una en Modificar metadatos > Generar portada
git clone https://github.com/elKaZe/biblioteca-guerrilla.git
Biblioteca-guerrilla es un script escrito en python que utiliza la base de datos de calibre y los libros de la biblioteca para crear un sitio estático. para ejecutar el script que esta en ./biblioteca-guerrilla/app/freeze.py son necesarias algunas herramientas:
pip install pipenv --user
pipenv install
[1]pipenv shell
CONECTOR_OPCIONES = {
"ruta": "ruta/a/la/bibliotecaDeCalibre/metadata.db"
}
RUTA_BASE_LIBROS = "ruta/a/la/bibliotecaDeCalibre/"
FREEZER_DESTINATION = "/tmp/biblioteca-guerrilla/"
[1] Aquí cree el directorio mkdir miaubox
y clone el repositorio allí dentro.
[2] Editando con nano el archivo settings.py
[3] Ejecutando pipenv shell
[4] Luego de editar y guardar settings.py podemos crear el sitio estático con
make generate-static-website
si no tenes make
podes hacer apt/pacman/dnf install make dependiendo de tu dsitribución Gnu/linux
Ejecutando make generate-static-website
[5] Para ejecutar un servidor de pruebas ejecutamos
make start-test-server
y podemos acceder a el vía http://localhost:5000/
[6] Con esto tenemos el sitio en /tmp/biblioteca-guerrilla/ ahora lo siguiente es preparar el equipo donde se alojará el sitio estático!
-Estos pasos recomiendo hacerlos con un monitor enchufado a la raspberrypi.
sudo apt-get update
sudo apt-get upgrade
sudo passwd
cambiamos la contraseña por defecto e introducimos 2 veces la nueva.sudo /etc/init.d/apache2 stop
Luego le decimos con systemd
que no este enabled como servicio:
sudo systemctl disable apache2
Instalamos nginx y php-fpm
sudo apt install nginx php-fpm
sudo apt-get install dnsmasq hostapd
sudo systemctl stop dnsmasq
sudo systemctl stop hostapd
#DAEMON_OPTS="/etc/hostapd/hostapd.conf"
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Luego reiniciamos la raspberrypi con sudo reboot
sudo nano /etc/dhcpcd.conf
(nano es el editor de texto que viene por defecto en raspbian)
alli podremos lo siguiente al final del archivo:
interface wlan0
static ip_address=192.168.100.1/24
nohook wpa_supplicant
static ip_address es la ip con la cual nos conectaremos via ssh luego
ssh pi@192.168.100.1
sudo service dhcpcd restart
y tendremos una ip estática en wlan0sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
y dejamos un backup del archivo de configuraciónLuego iniciamos uno nuevo con sudo nano /etc/dnsmasq.conf
y pegamos las siguentes lineas:
interface=wlan0 # Use the require wireless interface - usually wlan0
dhcp-range=192.168.100.2,192.168.100.24,255.255.255.0,24h
sudo nano /etc/hostapd/hostapd.conf
en este archivo pondremos el nombre de la red inalámbrica y si queremos que tenga contraseña o no.usar lo siguiente:
interface=wlan0
driver=nl80211
ssid=Biblio.box
hw_mode=g
channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=biblioteca
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
sudo nano /etc/default/hostapd
buscamos #DAEMON_CONF y escribimos DAEMON_CONF="/etc/hostapd/hostapd.conf"
sudo systemctl start hostapd
sudo systemctl start dnsmasq
luego usamos
sudo update-rc.d hostapd enable´
para dejar el servicio hostapd seteado en el inicio de la RPi.
17 Para no tener que ponerla ip 192.168.100.1 para entrar a la biblioteca vamos a editar el archivo sudo nano /etc/hosts
e ingresar la siguiente linea:
192.168.100.1 biblio.box
ahora podremos entrar desde el navegador escribiendo biblio.box
Antes de reiniciar vamos a chequear tener el puerto 22 (SSH) abierto para poder comunicarnos via Wireless. Lo más fácil es utilizar el comando sudo raspi-config
> 5 Interfacing Options > P2 SSH > Sí.
scp
.
Escribimos -r para que copie los directorios y subdirectorios.
scp -r /tmp/biblioteca-guerrilla/ pi@192.168.100.1:/home/pi/
mv
para mover los directorios del home a la carpeta host.
sudo mv -r /home/pi/biblioteca-guerrilla /var/www/html
Por último nos conectamos a la red vía movil o con una computadora y tecleamos en el navegador 192.168.100.1
e ingresamos a la biblioteca portátil. si ingresamos desde un celular, es necesario que desactivemos los datos móviles, ya que al ingresar la ip, el navegador intentará hacer una petición fuera de la red wlan0.
[Void]
#Lugares donde participé con la bibliobox