Pubblicato un rapido aggiornamento per RAWeb, la piattaforma sviluppata da RetroAchievements.org per la gestione di obiettivi, dati di gioco e funzionalità dedicate alla community.

L’applicazione, realizzata in Laravel sfruttando il TALL stack, si conferma così uno degli strumenti più versatili e in costante crescita per gli appassionati che vogliono monitorare i propri progressi e condividere le esperienze con altri utenti.
Questo aggiornamento introduce una serie di affinamenti mirati, migliorando la fruibilità dell’interfaccia, la gestione dei contenuti e l’affidabilità complessiva del sistema.
Sul fronte delle nuove funzionalità, l’applicazione beneficia di un layout più coerente e fluido nelle pagine dedicate ai giochi, soprattutto sui display di grandi dimensioni, rendendo le tabelle più leggibili e meglio adattate allo spazio disponibile.
Migliorata inoltre la gestione dei commenti, con nuove rotte dedicate alla visualizzazione dei singoli interventi, e il sistema di email riepilogative che risulta più chiaro e meno invasivo grazie all’introduzione di testi di anteprima e al ritardo delle notifiche legate ai commenti.
Le pagine dei giochi si arricchiscono con il supporto ai gruppi di obiettivi, mentre nelle checklist viene segnalata in modo più evidente l’indisponibilità di alcuni achievement durante eventi specifici. Anche la gestione degli hub risulta più intuitiva, con link contestuali più chiari per chi ha i permessi di modifica.
Accanto alle novità, l’aggiornamento interviene in modo deciso su numerosi bug e inefficienze. Sono stati corretti problemi legati al ricalcolo dei tempi di completamento dei giochi, alla visualizzazione delle statistiche su dispositivi mobili e alla navigazione del sito, migliorando anche il comportamento del pulsante “indietro” del browser.
Particolare attenzione è stata dedicata alle prestazioni dei profili utente, riducendo il consumo di memoria e ottimizzando le query al database, soprattutto per gli account con una lunga storia di giochi e obiettivi sbloccati.
Anche forum, ticket e home page beneficiano di correzioni mirate che rendono l’esperienza più stabile e coerente.
L’aggiornamento ha introdotto anche cambiamenti significativi nell’applicazione di gestione interna. Gli amministratori ora possono ordinare manualmente obiettivi e classifiche con maggiore libertà, migliorare la visibilità dei log di audit e gestire commenti e giochi in modo più chiaro e organizzato.
Piccoli ma importanti dettagli, come la visualizzazione del nome del sistema negli hub o il filtraggio intelligente dei giochi simili, contribuiscono a rendere l’interfaccia di amministrazione più solida e professionale.
Non mancano le novità sul fronte delle API, con l’introduzione di nuove azioni per recuperare i progressi degli utenti su specifiche console e l’ampliamento delle API Web V2, ora accessibili sia tramite OAuth2 sia tramite chiavi API tradizionali.
Questi cambiamenti rafforzano l’ecosistema di integrazioni esterne e aprono la strada a nuove applicazioni e servizi basati sui dati di RetroAchievements.
Infine, l’aggiornamento include importanti modifiche all’ambiente di sviluppo, con l’adozione di Node.js 24 e PHP 8.4, miglioramenti ai processi di seeding del database e una gestione più pulita degli strumenti di test.
Nella stessa giornata sono stati inoltre pubblicati fix correttivi per risolvere un problema di underflow degli interi MySQL e per migliorare la gestione degli sblocchi base in specifici casi legati agli hash.
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 upo 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 installper 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 setupper configurare correttamente l’ambiente. Questo script imposterà le variabili di ambiente e le configurazioni iniziali. Durante questa fase, si consiglia di adattare il file.envcon 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 installper installare le dipendenze necessarie. - Costruzione degli asset: Eseguire
pnpm buildper creare la build finale. Con Docker Sail, è possibile eseguire questi comandi tramitesail pnpm installesail pnpm build. - Creazione dei symlink per il filesystem: Per rendere accessibili i file di archiviazione, eseguire
php artisan ra:storage:link --relativeper 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 migrateper applicare le migrazioni e configurare il database. - Popola il database con dati di test: Usa il comando
php artisan db:seedper 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.12.19
Nuove caratteristiche
- Layout dell’app: Usa correttamente layout fluidi in tutte le pagine della datatable dei giochi al breakpoint LG by
@wescopelandin #4257 - Commenti: Implementata la route
comment.showby@wescopelandin #4247 - Email di riassunto: Aggiunto testo di anteprima per argomenti a post singolo by
@Jamirasin #4254 - Email di risomministrazione: Ritardate anche le notifiche per i commenti by
@Jamirasin #4259 - Eventi: Mostra l’indicatore di non disponibile nella checklist degli achievement by
@Jamirasnel #4258 - Game Pages: Aggiunto supporto per i gruppi di achievement by
@wescopelandin #4260 - Hub: Aggiunto
/editsul link “Gestisci” se l’utente può modificare l’hub by@wescopelandin #4250
Correzioni di bug
- Partite Sconfitte: Ricalcolati i tempi di completamento se cambiano i requisiti di progressione by
@Jamirasnel #4218 - Forum: Previene eccezioni durante l’autorizzazione dei post nei forum by
@Jamirasin #4241 - Pagine di gioco: Su mobile, mostra le statistiche corrette in Confronta Progressi per i sottoinsiemi by
@wescopelandnel #4248 - Game Pages: Aggiunto il componente
ResponsiveTooltipcosì “Vedi N+” è cliccabile su mobile by@wescopelandin #4265 - Home Page: Filtra i giochi con 0 achievement pubblicati dalla sezione “Appena rilasciati” by
@wescopelandin #4256 - Navigazione: Sostituito
window.history.replaceStateconrouter.replaceper correggere problemi del tasto indietro del browser by@wescopelandin #4264 - Tickets: Non permette di trasferire ticket a un reporter che ha eliminato il proprio account by
@Jamirasin #4268 - Profili utente: Esegue il calcolo dei punti direttamente nel database by
@Jamirasin #4277 - Profili utente: Risolto query N+1 durante il recupero delle informazioni sui premi eventi by
@Jamirasin #4278 - Profili utente: Ridotto l’uso di memoria nei profili con molti giochi modificati by
@wescopelandin #4279
Cambiamenti nell’app di gestione
- Achievements: Aggiunte le opzioni “Sposta in cima”, “Sposta in fondo” e modifica manuale dell’ordine di visualizzazione by
@wescopelandin #4234 - Achievements: Aggiunta colonna ID nella tabella di gestione delle relazioni degli achievement dei giochi by
@wescopelandin #4252 - Audit Logs: Migliorato il logging delle modifiche all’hash dei giochi e apportati numerosi miglioramenti UX ai registri di audit by
@wescopelandin #4249 - Commenti: Aggiunti link “Visualizza Commenti Legacy” per giochi e hub by
@wescopelandin #4246 - Giochi: Migliorati i titoli delle pagine di gestione dei giochi by
@wescopelandin #4245 - Hub: Visualizzato il nome di sistema quando si aggiungono giochi a un hub by
@wescopelandin #4242 - Hub: Non renderizzare condizionalmente i campi di dialogo di giochi/hub simili by
@wescopelandin #4244 - Classifiche: Migliorato il riordino delle classifiche dei giochi per renderlo simile agli achievement, con nuove azioni per riga e modifica manuale dell’ordine by
@wescopelandin #4262 - Giochi simili: Quando si aggiungono giochi simili, non mostrare quelli già presenti nella lista by
@wescopelandnel #4243
Modifiche API
- Connect API: Creata l’azione
GetUserProgressForConsoleActionper recuperare i progressi utente su una specifica console by@Jamirasin #4225 - Web API V2: Aggiunti endpoint V2 conformi allo standard
JSON:APIper la risorsa Game by@wescopelandin #4237 - Web API V2: Abilitata l’autorizzazione sia tramite OAuth2 sia tramite chiave Web API by
@wescopelandin #4255
Cambiamenti ambientali
- DB Seeding: Aggiunti i metadati dei giochi agli script di seeding del database by
@Jamirasin #4223 - DB Seeding: Popolamento dei dati StaticData dopo il completamento del seeding by
@Jamirasin #4263 - Node.js: Aggiornamento all’utilizzo di Node.js 24 by
@wescopelandin #4267 - PHP: Rimosso il file
composer.pharlocale by@wescopelandin #4269 - PHP: Aggiornamento all’utilizzo di PHP 8.4 by
@wescopelandin #4202 - Vitest: Evitato il sovraccarico del terminale con errori durante l’esecuzione di pnpm test by
@wescopelandin #4239
Changelog 2025.12.19-B
- Fix(User): Corretto il problema di underflow degli interi in MySQL by
@wescopelandin #4280 - fix(multiset): Riporta gli sblocchi di base durante la risoluzione di un specialty hash by
@wescopelandin #4281
Download: Source code RAWeb 2025.12.19-B
![[Scena PS4] GoldHEN si aggiorna alla versione 2.4b18.9 con supporto per il firmware 13.00](https://www.biteyourconsole.net/wp-content/uploads/GoldHEN13-1-238x178.webp)


![[Scena PS4] GoldHEN si aggiorna alla versione 2.4b18.9 con supporto per il firmware 13.00](https://www.biteyourconsole.net/wp-content/uploads/GoldHEN13-1-100x75.webp)


![[Scena Ps3] Rilasciato PS3 NOR e NAND Flash Auto Patcher v4.50](https://www.biteyourconsole.net/wp-content/uploads/checco.jpg)
![[Scena Ps3] Showtime in continuo aggiornamento porta il supporto per le unità NTFS](https://www.biteyourconsole.net/wp-content/uploads/showtime-ps3-media-player-repack-v3-5-54-update-autobuild-out-30372-11.jpg)
