FoundryVTT + Raspberry Pi 3
Notas para la instalación de FoundryVTT en la Raspberry, por si pasa lo peor.
Sistema Operatio:
Instalar Pi OS en una tarjeta SD o disco duro externo. El Raspberry Pi Imager facilita bastante las cosas y permite descargar la última versión de Raspbery Pi OS en 64 bits.
Instalamos la imagen y entramos en el sistema, donde aprovechamos para conectarnos a internet y activar el SSH desde ajustes.
Instalación
- Creamos la carpeta
data
, donde seguardarán todos los datos de Foundry.cd $HOME mkdir foundry/data
Ahora tenemos dos opciones: vitualizar Foundry usando Docker o la instalación local tradicional.
Usando Docker
- Seguimos los pasos para instalar Docker aprovechando el script oficial.
- Lo iniciamos
systemctl start docker
- E instalamos docker-compose usando
sudo apt install docker-compose
. - Permitimos a usuarios no-root lanzar contenedores de docker por comodidad con:
sudo usermod -aG docker [user_name]
Para el usuario por defecto sería:
sudo usermod -aG docker pi
- Ahora creamos el fichero
~/foundry/docker-compose.yml
:
---
version: "3.3"
services:
foundry:
image: felddy/foundryvtt:release
restart: "unless-stopped"
hostname: [url]
volumes:
- type: bind
source: ./data
target: /data
environment:
- FOUNDRY_USERNAME=[username]
- FOUNDRY_PASSWORD=[password]
- FOUNDRY_ADMIN_KEY=[admin-key]
- FOUNDRY_LICENSE_KEY=[license]
- CONTAINER_CACHE=/data/container_cache
ports:
- target: 30000
published: 30000
protocol: tcp
-
Terminamos lanzando el contenedor con:
docker-compose up -d
-
Para actualizar el contenedor en el futuro podemos utilizar:
docker-compose pull //o docker pull felddy/foundryvtt:release
Y volvemos a lanzar el contenedor con
docker-compose up -d
Instalación local con NodeJS
- Instalar dependencias
sudo apt install -y libssl-dev curl -sL https://deb.nodesource.com/setup_14.x | sudo bash - sudo apt install -y nodejs
-
Descargar y configurar FoundryVTT siguiendo los pasos instalación de la web oficial.
- Creación del servicio en
/etc/systemd/system/foundryvtt.service
:
[Unit]
Description=Foundry VTT
After=network.target
[Service]
ExecStart=/usr/bin/node /home/pi/foundry/resources/app/main.js --dataPath=/home/pi/foundry/data/
WorkingDirectory=/home/pi/foundry
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi
[Install]
WantedBy=multi-user.target
Y podremos lanzar y parar FoundryVTT con:
sudo service foundryvtt start
sudo service foundryvtt stop
Servidor
- Instalamos nginx:
sudo apt-get update sudo apt-get install nginx
- Creamos el fichero de configuración para nuestro dominio en
/etc/nginx/sites-available/your.hostname.com
:server { # Enter your fully qualified domain name or leave blank server_name your.hostname.com; # Listen on port 80 without SSL certificates listen 80; # Sets the Max Upload size to 300 MB client_max_body_size 300M; # Proxy Requests to Foundry VTT location / { # Set proxy headers proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; # These are important to support WebSockets proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; # Make sure to set your Foundry VTT port number # This should match the published port in your docker-compose file proxy_pass http://0.0.0.0:30000; } }
- Activamos el sitio y revisamos la configuración:
# Enable new site
cd /et c/nginx/sites-enabled
sudo ln -s ../sites-available/your.hostname.com .
# Test your configuration file
sudo service nginx configtest
# View configuration errors (if the configtest was not OK)
sudo nginx -t
# Restart Nginx
sudo service nginx restart
Y si todo va bien, ha llegado la hora de instalar un certificado SSL usando Certbot.
DNS dinámicas
Gracias a un pequeño script podemos actualizar las dns de un dominio de gandi automáticamente.
Seguridad
- Instalamos el cortafuegos con
sudo apt -y install ufw
- Permitimos el tráfico web:
sudo ufw allow 80 sudo ufw allow 443 #En las nuevas versiones el SSH ya debería estar permitido.
- Activamos el cortafuegos
sudo ufw enable
. - Instalamos el servicio Fail2ban:
apt install fail2ban
- Copiamosla configuración por defecto
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
- Lo lanzamos:
sudo service fail2ban start
Copias de seguridad
Problemas
Evitar que la WiFi de la Raspberry se desconecte
El controlador WiFi de la Raspberry tiene activado por defecto el ahorro de energía.
Comando para leer el valor actual:
sudo iw wlan0 get power_save
Comando para desactivarlo:
sudo iw wlan0 set power_save off
Para hacer el cambio permanente hay que añadir lo siguiente al fichero /etc/rc.local
(antes del exit 0!):
/sbin/iw dev wlan0 set power_save off