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.
L’aggiornamento introduce un digest email giornaliero per gli utenti che seguono automaticamente i thread del forum e modifica il testo delle notifiche legate alle revisioni degli achievement.
Arrivano inoltre strumenti più chiari per la gestione degli eventi, con indicatori dedicati agli achievement retrocessi e una migliore visualizzazione dei badge ottenuti all’interno delle checklist dei giochi.
La Game Page riceve una serie di interventi profondi: l’anteprima commenti per mobile, nuove icone per la sezione Contribute, l’ottimizzazione del rendering lato server, una descrizione più robusta per gli embed su Discord e la fine ufficiale della beta della nuova pagina “game2”, ora impostata come predefinita.
Migliorata anche l’esperienza multiset, con un nuovo pannello di preferenze per gli utenti e una visualizzazione più chiara del tipo di subset selezionato.
Sul fronte della localizzazione sono state aggiunte quattro nuove lingue, mentre per la moderazione è stato introdotto l’inserimento automatico del tag “Open” nei report provenienti da Discord.
Vengono risolti anche numerosi problemi, tra cui condizioni di race legate ai mastery in giochi come Terraria, errori nei conteggi degli achievement non pubblicati, bug nell’interfaccia mobile su iOS, problemi con contenuti di utenti eliminati e anomalie nella gestione delle sessioni giocatore in relazione ai subset.
Le API ricevono un ampliamento importante: arrivano l’immagine di gioco nella risposta gameinfolist, nuove protezioni di autenticazione, la possibilità di inviare azioni leaderboard, un campo aggiuntivo per i messaggi Rich Presence, un endpoint di healthcheck e le fondamenta per l’autenticazione OAuth2 tramite Laravel Passport.
Avviata inoltre la nuova Web API V2 con endpoint JSON:API dedicati al sistema e con una gestione più coerente degli errori.
Anche l’ambiente di sviluppo è stato aggiornato: viene aggiornata la versione di Inertia, migliorata la generazione degli asset, rimossi file superflui, fissata la versione di MinIO e aggiornate alcune componenti dell’interfaccia mobile.
Infine, sono stati apportati ulteriori interventi rapidi, come la temporanea riattivazione del caricamento delle leaderboard per gli sviluppatori completi, la correzione di errori nei menu di selezione del set, un nuovo link al topic del forum nella sezione Community mobile e la risoluzione di piccoli bug relativi alle azioni utente e alla gestione dei caratteri speciali nei reindirizzamenti.
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.10
Nuove funzionalità
- Email: Aggiunta email riepilogativa giornaliera per le iscrizioni implicite ai post del forum by
@Jamirasin #4203 - Email: Aggiornato il testo delle notifiche sulle revisioni by
@wescopelandin #4198 - Eventi: Aggiunto un indicatore per gli achievement retrocessi utilizzati negli eventi by
@Jamirasin #4204 - Eventi: Visualizzate le informazioni di completamento dei badge assegnati nelle checklist dei giochi by
@Jamirasin #4184 - Game Page: Aggiunta anteprima dei commenti per mobile nella lista degli achievement by
@wescopelandin #4182 - Game Page: Terminata la beta, la nuova pagina “game2” diventa quella predefinita by
@wescopelandin #4136 - Game Page: Aggiornata l’iconografia della sezione Contribute by
@wescopelandin #4197 - Game Page: Migliorate le performance rendendo solo parzialmente la lista achievement durante l’SSR by
@wescopelandin #4173 - Localizzazione: Aggiunto supporto per az_AZ, fi_FI, id_ID e uk_UA in #4221
- Moderazione: Applicazione automatica del tag “Open” ai report Discord by
@wescopelandin #4181 - Multiset: Aggiunto un pannello preferenze subset nelle pagine dei giochi by
@wescopelandin #4157 - Multiset: Visualizzato il tipo di subset per i giocatori by
@wescopelandin #4158
Correzioni di bug
- Dati denormalizzati: Corretta una race condition nell’assegnazione delle mastery, in particolare con Terraria by
@wescopelandin #4175 - Dati denormalizzati: Aggiornate le metriche di gioco dopo soft delete degli achievement by
@wescopelandin #4213 - Game Page: Evitato il refetch delle props su cambio tab mobile by
@wescopelandin #4179 - Game Page: Migliorata la meta description per gli embed Discord by
@wescopelandin #4192 - Game Page: Impedita la visualizzazione dello stato “vuoto” negli achievement su leaderboard by
@wescopelandin #4215 - Game Page: Corretto il conteggio degli achievement non pubblicati by
@wescopelandin #4201 - Game Page: Mostrati i tab di selezione set anche durante SSR by
@wescopelandin #4183 - Game Page: Aggiunta protezione contro race condition nelle richieste set by
@wescopelandin #4160 - Mobile: Corretto un bug del pulsante di chiusura su iOS Safari by
@wescopelandin #4174 - Moderazione: Evitato errore server quando si segnala contenuto di utenti eliminati by
@wescopelandin #4176 - Multiset: Evitata la creazione di player_session per subset durante sblocchi dal core set by
@Jamirasin #4214 - Redirect Page: Convertita in React/Inertia by
@Chewin #4076 - User Profiles: Corretta una query lenta sulle
player_sessionsby@wescopelandin #4180
Modifiche all’app di gestione
- Management App: Migliorata la UX per la modifica dei set di gioco by
@wescopelandin #4139 - Management App: Limitata la risorsa “Sets” in Filament by
@wescopelandin #4142
Modifiche API
- API: Aggiunta ImageUrl alla risposta gameinfolist by
@Jamirasin #4211 - API: Aggiunto auth-gate ?r=achievementsets by
@wescopelandin #4186 - API: Aggiunta SubmitLeaderboardAction by
@Jamirasin #4205 - API_GetUserSummary: Aggiunto
RichPresenceMsgDateby@m1guelpfin #4156 - Web API V2: Aggiunto endpoint di healthcheck by
@wescopelandin #4163 - Web API V2: Aggiunte le basi per OAuth2 con Laravel Passport by
@m1guelpfe@wescopelandin #4164 - Web API V2: Aggiunti endpoint JSON:API per la risorsa
Systemby@wescopelandin #4171 - Web API V2: Impostati errori JSON consistenti by
@wescopelandin #4216
Cambiamenti ambientali
- Ambiente: Aggiornato Inertia alla versione 2.2.20 by
@wescopelandin #4220 - Dev: Generati automaticamente gli asset Ziggy durante predev e prebuild by
@wescopelandin #4165 - Dev: Rimossa la pagina demo by
@wescopelandin #4208 - Dev: Fissata la versione MinIO in docker-compose by
@wescopelandin #4200 - Mobile Game Lists: Migrato BaseDrawer a BaseDialog e rimossa la dipendenza vaul by
@wescopelandin #4178
Changelog 2025.12.10-B
- Fix: Ripristinata temporaneamente la possibilità per gli sviluppatori completi di caricare classifiche senza una richiesta by
@Jamirasin #4229 - Fix (game): Risolto errore di tipo SetSelectionDropdown by
@wescopelandin #4227 - Feat (game): Aggiunto link al topic del forum nella scheda Community su mobile by
@wescopelandin #4228 - Fix (RedirectController): Corretta la codifica dei caratteri ampersand, da
@wescopelandin #4231 - Fix (game): Riallineato lo stato del pulsante “Want to Play” quando si cambia la selezione del set, da
@wescopelandin #4226 - Fix (SubmitLeaderboardEntry): Uso di
display_namenella funzione inline$getEntries, da@wescopelandin #4233 - Fix (game): Rimosso il pulsante “Drop Claim” dallo stato vuoto del set di achievement, da
@wescopelandin #4230
Download: Source code RAWeb 2025.12.10-B







![[Scena PS4] Rilasciato PS4 Cheater Neo v0.9.5.5-beta](https://www.biteyourconsole.net/wp-content/uploads/PS4CheaterNeo-100x75.jpg)
![[Scena PS Vita] Rilasciato Perfect Dark Vita v0.5](https://www.biteyourconsole.net/wp-content/uploads/PerferctDark-100x75.jpg)