Parte 1 - Configuración de la Red
NOTA: Esta primera parte aplica para Raspberry Pi. Sin embargo les dejo tutoriales para hacerlo en distintas plataformas.
Windows: https://elandroidelibre.elespanol.com/2015/04/como-crear-una-red-wifi-desde-nuestro-ordenador.html
Mac: https://apple2fan.com/tutoriales/crear-red-wifi-mac
Linux: https://ubunlog.com/como-crear-un-punto-de-acceso-wifi-en-ubuntu-18-04-lts/
Para funcionar como un punto de acceso, la Raspberry Pi necesitará tener instalado un software de punto de acceso, junto con el software del servidor DHCP para proporcionar dispositivos de conexión con una dirección de red. Para crear un punto de acceso, necesitaremos DNSMasq y HostAPD. Instale todo el software requerido de una vez con este comando:
sudo apt install dnsmasq hostapd
Como los archivos de configuración aún no están listos, apague el nuevo software de la siguiente manera:
sudo systemctl stop dnsmasq
sudo systemctl stop hostapd
Configurar una IP estática Estamos configurando una red independiente para que actúe como un servidor, por lo que Raspberry Pi debe tener una dirección IP estática asignada al puerto inalámbrico. Esta documentación asume que estamos utilizando las direcciones IP estándar 192.168.x.x para nuestra red inalámbrica, por lo que asignaremos al servidor la dirección IP 192.168.4.1. También se supone que el dispositivo inalámbrico que se utiliza es wlan0. Para configurar la dirección IP estática, edite el archivo de configuración dhcpcd con:
sudo nano /etc/dhcpcd.conf
Vaya al final del archivo y edítelo para que tenga el siguiente aspecto:
interface wlan0
static ip_address=192.168.4.1/24
nohook wpa_supplicant
Ahora reinicie el demonio dhcpcd y configure la nueva configuración de wlan0:
sudo service dhcpcd restart
El servicio DHCP es proporcionado por dnsmasq. De manera predeterminada, el archivo de configuración contiene mucha información que no es necesaria y es más fácil comenzar desde cero. Cambie el nombre de este archivo de configuración y edite uno nuevo:
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
sudo nano /etc/dnsmasq.conf
Escriba o copie la siguiente información en el archivo de configuración dnsmasq y guárdela:
interface=wlan0 # Use the require wireless interface - usually wlan0
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h
Entonces, para wlan0, vamos a proporcionar direcciones IP entre 192.168.4.2 y 192.168.4.20, con un tiempo de arrendamiento de 24 horas. Si proporciona servicios DHCP para otros dispositivos de red (por ejemplo, eth0), puede agregar más secciones con el encabezado de interfaz apropiado, con el rango de direcciones que tiene la intención de proporcionar a esa interfaz. Hay muchas más opciones para dnsmasq; Consulte la documentación de dnsmasq para obtener más detalles. Inicie dnsmasq (se detuvo), ahora usará la configuración actualizada:
sudo systemctl start dnsmasq
Debe editar el archivo de configuración de hostapd, ubicado en /etc/hostapd/hostapd.conf, para agregar los diversos parámetros para su red inalámbrica. Después de la instalación inicial, este será un archivo nuevo / vacío.
sudo nano /etc/hostapd/hostapd.conf
Agregue la siguiente información al archivo de configuración. Esta configuración asume que estamos usando el canal 7, con un nombre de red de NameOfNetwork y una contraseña AardvarkBadgerHedgehog. Tenga en cuenta que el nombre y la contraseña no deben tener comillas alrededor de ellos. La frase de contraseña debe tener entre 8 y 64 caracteres de longitud.
interface=wlan0
driver=nl80211
ssid=NameOfNetwork
hw_mode=g channel=7
wmm_enabled=0
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=AardvarkBadgerHedgehog
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
Ahora necesitamos decirle al sistema dónde encontrar este archivo de configuración.
sudo nano / etc / default / hostapd
Busque la línea con #DAEMON_CONF y reemplácela con esto:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
Ahora habilite e inicie hostapd:
sudo systemctl unmask hostapd
sudo systemctl enable hostapd
sudo systemctl start hostapd
Haga una comprobación rápida de su estado para asegurarse de que estén activos y en ejecución:
sudo systemctl status hostapd
sudo systemctl status dnsmasq
Edite /etc/sysctl.conf y elimine el comentario de esta línea:
net.ipv4.ip_forward=1
Agregue una mascarada para el tráfico saliente en eth0:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Guarde la regla de iptables.
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
Edite /etc/rc.local y agregue esto justo arriba de "exit 0" para instalar estas reglas en el arranque.
iptables-restore < /etc/iptables.ipv4.nat
sudo reboot
Paso 2 - Configuracion de Kiwix server
Para Windows, linux y mac: https://wiki.kiwix.org/wiki/Kiwix-serve
Para RPI:
Descargar archivo SERVIDOR OFFLINE
Descomprimir carpeta
Una vez descargado en su Pi, cree una carpeta en su directorio de inicio llamada kiwix. Cree una carpeta dentro de ese bin llamado y coloque todos los archivos de la descarga ARM allí. Nuestra estructura de archivos en el Pi debería verse hasta ahora:
~/
kiwix/
bin/
kiwix-index
kiwix-install
kiwix-manage
kiwix-read
kiwix-search
kiwix-serve
Luego, cree una carpeta de datos también en kiwix para el siguiente paso, y en datos, cree tres subcarpetas: contenido, índice y biblioteca. Esto ahora debería darnos:
~/
kiwix/
bin/
...
data/
content/
index/
library/
Ahora, cree un archivo llamado library.xml en el directorio data / library / con el siguiente texto en el archivo:
<?xml version="1.0"?>
<library current="a8f2360d-b179-226d-a3ff-46d0fba91116" version="20110515"?>
</library>
El contenido se pone en la carpeta Content, lo pueden descargar de acá.
https://wiki.kiwix.org/wiki/Content_in_all_languages
O crear ustedes mismos y compilarlo con este tutorial
https://openzim.org/wiki/Build_your_ZIM_file
Después necesitan indexar sus archivos para que los pueda mostrar el servidor, vamos a utilizar el comando
kiwix- manage
kiwix-manage /var/www/html/library_zim.xml add /var/www/html/zim/test.zim
importante: vean el video tutorial para entender como hacer esta parte.
Ejecute el siguiente comando en su Pi:
~/kiwix/bin/kiwix-serve --library ~/kiwix/data/library/library.xml --port=8080
En el navegador de los dispositivos que conecte al servidor:
O bien, obtenga su nombre de host escribiendo hostname -I e ingrese esa dirección IP en un navegador en otra computadora conectada a su red local con el puerto agregado (por ejemplo, http://192.168.0.164:8080).
Paso 3 - Configuración de Node JS, mongodb y Juego Trivia Offline
Para comenzar instalamos “NVM”, para esto utilizamos el siguiente comando en el terminal:
curl -o- | bash
source ~/.bashrc # Rerun profile after installing nvm
Después de hacer esto podemos instalar “node” insertando el siguiente comando en el terminal:
sudo n 6.17.1
Para revisar que se haya instalado la versión correcta escribimos el siguiente comando:
node -v
Después, es necesario instalar las dependencias, esto lo hacemos con “npm” en el terminal y escribimos los siguientes comandos, esperamos a que se instale uno y ahí si instalamos el otro, y así sucesivamente, los comandos son:
npm install express
npm install moment
npm install mongodb
npm install mongoose
Aún así, después de realizar todo este proceso, la versión del MongoDB puede ser incompatible con el sistema, por lo cuál es necesario ajustar la versión a la que funciona, eso se hace con el siguiente comando:
npm install mongodb@2.2.33
Después de este proceso podemos proceder a correr el servidor y el juego previamente instalado.
Para esto primero debemos ingresar al lugar donde se encuentre la carpeta con el archivo de juego, para mí, en este caso el comando es:
cd/home/pi/Desktop/kahoot-clone-nodejs-master
Después, iniciamos el sistema & servidor:
cd server
sudo systemctl start mongodb
node server
Estoy debería automáticamente abrir nuestro servidor, lo cual ya debería permitirnos jugar, para acceder al juego nos dirigimos a cualquier buscador e ingresamos “localhost:3000” que es básicamente acceder al puerto del nuestro sistema interno dónde se encuentra el juego guardado.
Se presiona el botón de “Ser host de juego”, luego en el botón de “Crea tu propio juego”, y una vez especificadas las preguntas y respuestas se hace click en “crear juego” y automáticamente el sistema arroja un PIN para que los participantes se puedan conectar.
Para acceder al juego desde el dispositivo del jugador/participante es necesario conectarse en primer lugar a la red Wifi que haya creado el dispositivo host, en este caso se llama “Wikioffline” y después nos dirigimos a cualquier buscador e ingresamos la dirección Ip estática del sistema, en este caso “192.168.4.1”, se selecciona un nombre de jugador y se ingresa el PIN generado por el host y se comienza a jugar.