Pubblicato un nuovo aggiornamento per RAWeb, la piattaforma di RetroAchievements.org che gestisce obiettivi, dati di gioco e funzionalità per la community.
L’applicazione, sviluppata con Laravel (TALL stack), permette agli utenti di interagire con il sistema di RetroAchievements per tracciare i progressi nei giochi e condividerli con altri membri della community.
https://twitter.com/RetroCheevos/status/1915395040622367233
L’aggiornamento introduce un’importante novità sul fronte dell’interfaccia utente, con la migrazione della sezione Forum a React, offrendo un’esperienza più fluida e moderna nella navigazione dei topic.
Contestualmente, è stata risolta una regressione legata alla modalità scura, che influenzava la leggibilità degli eventi, e sono stati sistemati problemi legati ai filtri nella lista dei giochi: ora l’uso del filtro “Retail” non sovrascrive le altre tipologie di gioco già selezionate.
Nel pannello di amministrazione, sono stati corretti alcuni errori di validazione dei form nella sezione dedicata agli eventi e migliorata la gestione degli hash dei giochi: ora è possibile associare un utente a un hash di gioco bypassando i controlli di compatibilità.
Corretto anche un errore lato server che si presentava durante il collegamento tra giochi simili. Inoltre, per i contenuti all’interno degli “Hub”, è stato implementato un avviso qualora il titolo non venga racchiuso tra parentesi quadre, migliorando la consistenza visiva e tecnica della piattaforma.
A livello di API, la funzione API_GetUserSummary
ora restituisce anche un identificativo univoco di tipo ULID, mentre le chiamate relative a Connect
offrono una gestione più accurata degli ID virtualizzati nei giochi restituiti dopo una patch.
Dal punto di vista del database, è stata eliminata la tabella “GameAlternatives”, ormai obsoleta, e sono stati preparati gli ambienti per la futura migrazione delle pagine dei giochi a interfaccia React.
Introdotto anche il supporto per la conversione dell’evento “Find the Pixel 2025”, una delle attività speciali che coinvolge la community.
Subito dopo, un aggiornamento successivo ha risolto una serie di problematiche minori, tra cui un errore 404 che si verificava nei forum in presenza di topic privi di commenti, problemi di formattazione legati ai tag URL nei post, la gestione dei video con tag spoiler, collegamenti errati nelle ricerche dei forum e la corretta decodifica dei testi nei commenti.
Inoltre, sono stati migliorati i meccanismi interni per la sincronizzazione dei contenuti dinamici con le proprietà delle pagine.
Requisiti
Per eseguire RAWeb localmente, sono necessari i seguenti componenti:
- Server web locale: È necessario un server web per eseguire l’applicazione.
- PHP 8.2: La piattaforma richiede PHP 8.2, con diverse estensioni abilitate (come
curl
,gmp
,mysqli
,pdo_mysql
,gd
,intl
,sockets
). - Composer: Il gestore di dipendenze PHP, necessario per installare le librerie richieste da RAWeb.
- MariaDB 10: Il database supportato per memorizzare i dati.
- Node.js 20 e pnpm 9: Questi strumenti sono utilizzati per la gestione dei pacchetti frontend e la build degli asset.
RAWeb è compatibile con i seguenti sistemi operativi e configurazioni:
- Windows, macOS, Linux.
- Diverse opzioni di configurazione sono disponibili: Docker (con Laravel Sail), XAMPP e Laravel Valet per macOS.
Opzioni di configurazione
Esistono diverse opzioni per configurare RAWeb:
- Docker Compose (Windows, Linux, macOS):
Utilizzando Laravel Sail, l’ambiente di sviluppo viene creato automaticamente con i container Docker. La documentazione di Laravel Sail descrive i passaggi dettagliati. Una volta configurato, è possibile avviare i container con il comandosail up
o in modalità demone consail up -d
. - XAMPP (Windows, Linux, macOS):
È necessario installare XAMPP con PHP 8.2, che include un server Apache, MySQL/MariaDB e PHP. Si dovranno abilitare alcune estensioni inphp.ini
(comecurl
,gmp
,mysqli
, ecc.) per garantire la compatibilità con le dipendenze di RAWeb. - Laravel Valet (macOS):
Se si utilizza Laravel Valet su macOS, è possibile configurare facilmente l’ambiente locale. Valet agisce come driver per l’ambiente di sviluppo e fornisce una configurazione web locale senza complicazioni.
Installazione di RAWeb
Una volta che il server e le dipendenze sono configurati, l’installazione di RAWeb avviene in due fasi principali:
- Installazione delle dipendenze: Dopo aver clonato il repository di RAWeb, eseguire
composer install
per installare tutte le librerie necessarie. Se si desidera utilizzare la versione locale di composer.phar invece di una globale, si può eseguirephp composer.phar install
. - Configurazione dell’ambiente: È necessario eseguire il comando
composer setup
per configurare correttamente l’ambiente. Questo script imposterà le variabili di ambiente e le configurazioni iniziali. Durante questa fase, si consiglia di adattare il file.env
con le credenziali del database e l’URL dell’applicazione.
Configurazione dell’ambiente (.env)
Il file .env
contiene valori predefiniti sensati, ma potrebbero essere necessarie alcune modifiche:
- Credenziali del database: Impostare i valori per la connessione al database locale (DB_*).
- Configurazione dell’URL dell’applicazione: Impostare l’URL dell’applicazione (
APP_URL
). Per esempio, se si usa Docker, l’URL potrebbe esserehttp://localhost:64000
. Con Valet, potrebbe esserehttps://raweb.test
.
Se si sta utilizzando un ambiente Docker, non sono necessarie ulteriori configurazioni specifiche, poiché l’applicazione rileverà automaticamente la configurazione del container Laravel Sail.
Se si utilizza XAMPP o Valet, sarà necessario regolare l’URL dell’applicazione e configurare correttamente i virtual host o il dominio.
Costruzione e configurazione del frontend
Per generare gli asset frontend:
- Installazione delle dipendenze frontend: Utilizzare
pnpm install
per installare le dipendenze necessarie. - Costruzione degli asset: Eseguire
pnpm build
per creare la build finale. Con Docker Sail, è possibile eseguire questi comandi tramitesail pnpm install
esail pnpm build
. - Creazione dei symlink per il filesystem: Per rendere accessibili i file di archiviazione, eseguire
php artisan ra:storage:link --relative
per creare i collegamenti simbolici necessari. Anche questo comando è disponibile tramite Sail (sail artisan ra:storage:link --relative
).
Configurazione del database
Dopo aver configurato l’ambiente e costruito gli asset, è necessario preparare il database:
- Esegui la migrazione: Esegui
php artisan migrate
per applicare le migrazioni e configurare il database. - Popola il database con dati di test: Usa il comando
php artisan db:seed
per popolare il database con i dati di test. Puoi eseguire anche questo comando tramite Sail (sail artisan db:seed
).
Accesso all’applicazione
A seconda dell’ambiente scelto, puoi accedere all’applicazione nel seguente modo:
- Docker: http://localhost:64000
- XAMPP: in base alla configurazione del vhost di Apache.
- Laravel Valet: per esempio, https://raweb.test, a seconda della configurazione del dominio.
Utilizzo per lo sviluppo di obiettivi
Se desideri sviluppare obiettivi localmente, puoi aggiungere un file host.txt
nella directory di RALibRetro accanto al file RAIntegration.dll. Questo file deve contenere l’URL del tuo server locale, che potrebbe essere uno dei seguenti:
- http://localhost:64000 se stai eseguendo il server tramite Docker.
- https://raweb.test se stai utilizzando Valet.
- http://raweb.test se il vhost è configurato correttamente.
Sicurezza
Per gestire eventuali vulnerabilità di sicurezza, consulta la Security Policy di RetroAchievements.org, che fornisce indicazioni su come gestire i rischi e proteggere la piattaforma.
In questo modo, puoi configurare e utilizzare RAWeb per gestire obiettivi, giochi e funzionalità della community direttamente dal tuo server locale.
Changelog 2025.04.24
Nuove funzionalità
- Forum: migrata l’interfaccia dei topic a React – a cura di @wescopeland (pull request #3415).
Correzioni di bug
- Eventi: Corretta una regressione dello stile in modalità scura – a cura di @wescopeland (pull request #3426).
- Liste giochi: Se viene utilizzato il filtro Retail, vengono mantenuti anche gli altri tipi di giochi filtrati – a cura di @wescopeland (pull request #3428).
Modifiche alla Console di Gestione
- Eventi: Corretti alcuni problemi di validazione nei moduli – a cura di @wescopeland (pull request #3441).
- Hash di gioco: consentita l’associazione di un utente a un hash di gioco bypassando il controllo di compatibilità – a cura di @Jamiras (pull request #3434).
- Giochi: corretta un’eccezione lato server durante il collegamento tra giochi simili – a cura di @wescopeland (pull request #3427).
- Hub: aggiunto un avviso quando il titolo non è racchiuso tra parentesi quadre – a cura di @wescopeland (pull request #3437).
Modifiche API
- API_GetUserSummary: Restituisce un ULID – a cura di @wescopeland (pull request #3443).
- Connect: Restituisce ID virtualizzati corretti per i giochi nella risposta alla patch – a cura di @Jamiras (pull request #3433).
Modifiche all’Ambiente
- Database: Eliminata la tabella GameAlternatives – a cura di @wescopeland (pull request #3432).
- Eventi: Aggiunta la conversione per l’evento Find the Pixel 2025 – a cura di @Jamiras (pull request #3430).
- Giochi: Preparazione delle pagine dei giochi per la futura interfaccia React – a cura di @wescopeland (pull request #3421).
Changelog 2025.04.24-B
- Correzione (forum): Corretto l’errore 404 quando un topic non ha commenti – a cura di @wescopeland (pull request #3445).
- Correzione (postProcessShortcodesInBody): Corretti i problemi con i tag URL racchiusi – a cura di @wescopeland (pull request #3446).
- Correzione (processAllVideoUrls): Aggiornato il pattern regex per supportare i tag spoiler – a cura di @wescopeland (pull request #3447).
- Correzione (search): Corretto l’errore 404 nei link del forum – a cura di @wescopeland (pull request #3449).
- Correzione (ForumTopicCommentData): Decodificato correttamente il campo body – a cura di @wescopeland (pull request #3450).
- Correzione (useHydrateShortcodeDynamicEntities): Sincronizzati gli atoms con le proprietà della pagina – a cura di @wescopeland (pull request #3448).
Changelog completo: 2025.04.24
→ 2025.04.24-B
Download: Source code RAWeb 2025.04.24-B
Fonte: x.com