Skip to content

marconicivitavecchia/Web-Brogue

Repository files navigation

Web Brogue

Per il README originale, cliccare qui.

I passi che abbiamo seguito per arrivare a questa versione customizzata dall'originale sono qui.

Di seguito le istruzioni per eseguire questo repo di Web Brogue.

NOTA: c'è una versione live di questo repo al link http://broguestars.online/. Per motivi di costi del dominio e della macchina EC2, comunque, non è garantito che la versione sia live dopo luglio 2025.

Creazione macchina EC2

Andare su AWS Academy Login (https://www.awsacademy.com/SiteLogin), creare una macchina EC2 con le seguenti caratteristiche (per tutto il resto lasciare il default):

  • Ubuntu 64 bit
  • usare la chiave vockey.pem
  • aprire le porte 80 (HTTP), 443 (HTTPS), 8080

Una volta fatta partire la macchina EC2, collegatevi via SSH come abbiamo visto in classe.

Da qui, i comandi sono più o meno quelli della guida ufficiale (https://github.com/flend/web-brogue). Di seguito il dettaglio

Configurazione macchina EC2

Collegarsi via terminale ed eseguire i seguenti comandi:

# Installare mongodb
sudo apt-get install gnupg curl

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
   --dearmor

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y mongodb-org

A questo punto riavviare la macchina, quindi:

# Avviamo MongoDB
sudo systemctl start mongod
sudo systemctl enable mongod

# installs nvm (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash

# download and install Node.js (you may need to restart the terminal)
nvm install 18

# verifies the right Node.js version is in the environment
node -v # should print `v18.20.5`

# verifies the right npm version is in the environment
npm -v # should print `10.8.2`

# Installare il compilatore C++
sudo apt-get install build-essential
gcc -v # l'output dovrebbe finire con la riga "gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04)" o qualcosa di simile

# Scaricare web-brogue
git clone https://github.com/flend/web-brogue.git

# Installare le dipendenze
cd web-brogue/server
npm install

# Far partire il web server
npm start

Se tutto va bene, il server è up and running!

Lanciare il gioco dopo un riavvio

Riavvio manuale

Dopo il riavvio, se la macchina già non parte automaticamente, collegarsi nuovamente in ssh ed eseguire i seguenti comandi:

cd ~/web-brogue/server
nvm install 18 && npm start

Avvio automatico

Per avviare automaticamente l'applicazione all'avvio della macchina, per prima cosa creare un file di servizio systemd:

sudo nano /etc/systemd/system/nodeapp.service

Inserisci questo contenuto nel file:

[Unit]
Description=Node.js Web Server Brogue
After=network.target

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/web-brogue/server
ExecStart=npm start
Restart=on-failure

[Install]
WantedBy=multi-user.target

Dopo aver salvato il file, esegui questi comandi:

# Ricarica la configurazione di systemd
sudo systemctl daemon-reload

# Abilita il servizio all'avvio
sudo systemctl enable nodeapp

# Avvia il servizio
sudo systemctl start nodeapp

Per vericare lo stato dell'app:

sudo systemctl status nodeapp

Per riavviare l'app:

sudo systemctl restart nodeapp

Usare la porta 80

Per usare la porta standard HTTP, bisogna cambiare i file di configurazione sia lato server (server/config.js) che lato client (client/config.js) impostando la porta 80.

Con la porta 80 bisognerebbe eseguire npm con i permessi di amministratore, il che però è sconsigliato. Si consiglia invece di usare authbind:

# Installa authbind
sudo apt-get install authbind

# Permetti l'uso della porta 80
sudo touch /etc/authbind/byport/80
sudo chmod 500 /etc/authbind/byport/80
sudo chown ubuntu /etc/authbind/byport/80

Modifica il file del servizio per usare authbind:

[Service]
Type=simple
User=ubuntu
WorkingDirectory=/home/ubuntu/web-brogue/server
ExecStart=/usr/bin/authbind --deep npm start
Restart=on-failure

About

A Marconi's version of the Brogue game

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 8