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 più recente, identificato come versione 2025.12.31, è un rilascio rapido ma mirato, focalizzato principalmente sulla stabilità e sulla correzione di alcuni problemi emersi nelle build precedenti.
In particolare, è stato risolto un errore legato alla gestione dei titoli ordinati nei record dei giochi simili, evitando scritture non necessarie che potevano causare comportamenti anomali.
Sistemata inoltre una criticità che generava un errore server durante il reindirizzamento dalla pagina di ricerca, migliorando così l’affidabilità della navigazione.
Questo aggiornamento si inserisce in una fase di sviluppo particolarmente intensa per RAWeb, come dimostrano i numerosi rilasci ravvicinati avvenuti a fine dicembre 2025.
Nelle versioni immediatamente precedenti sono stati corretti problemi che impedivano ad alcuni sviluppatori junior di riordinare gli obiettivi, sono state gestite in modo più robusto le eccezioni legate ai timeout nei processi delle classifiche dei giochi completati e sono stati risolti diversi errori server che potevano verificarsi durante la creazione di nuove risorse o l’uso della ricerca globale.
Parallelamente alle correzioni, gli aggiornamenti di fine anno hanno introdotto miglioramenti significativi alle prestazioni e all’esperienza utente.
Le classifiche dei giochi completati sono state ottimizzate per risultare più rapide e scalabili, mentre diverse sezioni del sito, come la ricerca globale e le pagine di navigazione, sono state migrate a React tramite Inertia per garantire un’interfaccia più moderna e reattiva.
Sono state aggiunte nuove opzioni di gestione per le leaderboard, migliorata la visualizzazione delle pagine gioco e ampliate le possibilità offerte agli artisti, che ora possono caricare badge e icone direttamente per giochi e obiettivi.
Non sono mancate neppure le novità sul fronte delle API e dell’infrastruttura. Le interfacce di programmazione espongono ora nuovi dati, come il tempo di gioco totale, e sono stati introdotti endpoint JSON:API per la gestione delle risorse utente.
A livello interno, il progetto ha visto importanti cambiamenti nei sistemi di test, nella pipeline di integrazione continua e negli strumenti di linting, a conferma di un’attenzione costante alla qualità del codice e alla sostenibilità del progetto nel lungo periodo.
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.31 – Ultima versione
Cosa è cambiato
- fix(GameSet): Evitata la scrittura del titolo ordinato per i record dei giochi simili.
- fix(LegacyRedirector): Risolto un errore server nel reindirizzamento della pagina di ricerca.
Changelog completo: 2025.12.29 → 2025.12.31
2025.12.29-D
Cosa è cambiato
- fix(AchievementsRelationManager): Risolto un bug che impediva ai jrdev di riordinare.
- chore(UpdateBeatenGamesLeaderboardAction): Ignorate le eccezioni di timeout dei lock.
Changelog completo: 2025.12.29-C → 2025.12.29-D
2025.12.29-C
Cosa è cambiato
- Serializzati gli aggiornamenti delle classifiche dei giochi completati usando un unico lock.
- fix(HubResource): Risolto un errore server durante la creazione.
Changelog completo: 2025.12.29-B → 2025.12.29-C
2025.12.29-B
Cosa è cambiato
- fix(UpdateGameBeatenMetricsAction): Utilizzo di
get()->pluck()al posto dipluck()diretto. - fix(GlobalSearch): Costruzione manuale dell’URL
/searchinvece dell’uso della route Ziggy. - Aggiunto
$triesai job soggetti a fallimenti temporanei dovuti a deadlock.
Changelog completo: 2025.12.29 → 2025.12.29-B
2025.12.29
Nuove funzionalità
- Classifica dei giochi completati: Migliorate le prestazioni.
- Code Notes: Aggiunto link alle note dei subset dal set base e funzione di unione.
- Email: Possibilità di annullare l’iscrizione alle email di riepilogo giornaliero.
- Pagine gioco: Cambio dell’icona di claim durante la revisione da parte dei Code Reviewer.
- Ricerca globale: Migrazione della pagina “Browse >” a React/Inertia.
- Classifiche: Aggiunti stati attivo/disabilitato/non pubblicato e funzione di clonazione.
- Multiset: Visualizzazione degli hash multiset durante la creazione dei ticket.
Correzioni di bug
- Email: Evitata la conversione delle nuove righe in <br> nelle email di riepilogo.
- Liste giochi: Rinominata l’etichetta “Main Sets Only” in “Base Sets Only”.
- Pagine gioco: Risolti problemi di ordinamento con il simbolo “-”.
- Pagine gioco: Mostrato il prefisso per hub di hack di serie e giochi non licenziati.
- Multiset: Corretta la segnalazione degli sblocchi base durante la risoluzione di hash speciali.
- Profili utente: Risolto un underflow di interi MySQL.
- Profili utente: Corretto il toggle “Nascondi giochi completati”.
- Progresso utente: Risolta una perdita dello username stabile.
Modifiche all’app di gestione
- Achievements: Ridotto il numero di query e ottimizzato il caricamento.
- Achievements: Migliorata l’esperienza utente.
- Artwork: Consentito il caricamento di badge di gioco e icone degli obiettivi agli artisti.
- Hub: Aggiunto supporto ai valori
sort_title.
Modifiche alle API
- API_GetGameInfoAndUserProgress: Aggiunto il campo TotalPlaytime.
- Web API v2: Aggiunti endpoint
JSON:APIper la risorsa User.
Modifiche all’ambiente
- CI: Aggiunto il job fan-in merge-php-test-reports.
- CI: Sostituiti paratest e phpunit pre-push con Pest.
- Documentazione: Corretto il link alla guida sulle traduzioni in
CONTRIBUTING.md. - ESLint: Aggiunta la regola react/jsx-no-leaked-render.
- Pagine gioco: Aggiunto GameControllerShowTest.
- Pagine gioco: Rimosso game1.
- Testing: Migrazione da PHPUnit a Pest.
Changelog completo: 2025.12.19 → 2025.12.29
Download: Source code RAWeb 2025.12.31






![[Scena PS4/PS5] Rilasciato Chiaki-ng (ex Chiaki4deck) v1.9.3](https://www.biteyourconsole.net/wp-content/uploads/ChiakiNG-100x75.webp)
![[Scena Switch] Rilasciato Moonlight Switch v0.9](https://www.biteyourconsole.net/wp-content/uploads/Moonlight-2-100x75.jpg)
![[Scena Switch] Rilasciato JKSV 08.01.2021](https://www.biteyourconsole.net/wp-content/uploads/JKSV-1.jpg)