Pubblicato un nuovo aggiornamento per RAWeb, la piattaforma di RetroAchievements.org che gestisce obiettivi, dati di gioco e funzionalità per la community.
Si tratta di un’applicazione Laravel (TALL stack), che consente agli utenti di interagire con la piattaforma RetroAchievements per tracciare i progressi nei giochi e condividerli con altri membri della community.
Our latest website update is now live!
– Set type filters on game lists.
– Events 2.0 pages in beta.
– Filter tickets by emulators for developers.For all changes, check out https://t.co/05283dmtz3 pic.twitter.com/7cfgSrrWbQ
— RetroAchievements (@RetroCheevos) March 13, 2025
Questa versione introduce nuove funzionalità, tra cui un aggiornamento della Achievement Checklist con nuovi widget, l’aggiunta di un filtro per il tipo di set nelle Game Lists, nuove etichette per gli Hashes e un avviso di segnalazione per concetti non idonei nei Report Achievement Issues.
Sono stati implementati anche nuovi shortcode per i riepiloghi, e il sistema di Tickets ora include dati su emulatore e hash.
Sul fronte delle correzioni, sono stati risolti diversi bug: l’esclusione delle voci di classifiche eliminate dal Developer Feed, problemi di query nei confronti dei progressi di gioco e dei migliori giocatori, errori del server nella lettura di messaggi da utenti eliminati e problemi di sincronizzazione nei messaggi contenenti clip di Twitch.
Migliorato inoltre il sistema di ricerca e la gestione degli utenti con nomi visualizzati modificati.
Per quanto riguarda la Management Console, è stato rimosso il campo slug dagli eventi e resa ordinabile la tabella degli Game Hashes.
A livello di API, è stato aggiunto il supporto per ULIDs, ottimizzato il metodo getTopUsersByScore e migliorata la gestione dei dati di gioco nell’API getfriendlist.
Infine, gli aggiornamenti ambientali includono il miglioramento delle dipendenze Node.js, l’aggiornamento del pacchetto livewire/volt, l’avvio della migrazione di Eventi e Messaggi a React e un’ottimizzazione del sistema di code per ridurre il numero massimo di processi gestiti dal supervisore.
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.03.13
Nuove funzionalità
- Checklist dei Traguardi: Aggiornata la pagina per utilizzare i nuovi widget di @Jamiras
- Liste di Giochi: Aggiunto il filtro “Tipo di set” di @wescopeland
- Hash: Aggiunte nuove etichette di @televandalist
- Segnala Problemi con i Traguardi: Aggiunto un avviso per segnalazioni di concetti indesiderati nei sottoinsiemi di @wescopeland
- Shortcode: Aggiunti i filtri
[hub]
e[quote]
ai riepiloghi di @wescopeland - Ticket: Aggiunti dati su emulatore e hash ai ticket di @Jamiras
Correzioni di bug
- Feed degli Sviluppatori: Escluse le voci delle classifiche eliminate di @Jamiras
- Giochi: Limita “Confronta Progressi” e risolto il problema N+1 di @wescopeland
- Giochi: Risolto il problema della query N+1 con i migliori giocatori di @wescopeland
- Messaggi: Evitato l’errore del server quando si legge un DM da un utente eliminato di @wescopeland
- Messaggi: Corretto un errore di idratazione sui clip di Twitch di @wescopeland
- Ricerca: Corretta una vulnerabilità di perdita di username stabili di @wescopeland
- Richieste di Set: Corretto un errore del server di @wescopeland
- Utenti: Corretti problemi di binding delle route di @wescopeland
- Utenti: Corretto un bug nel cambio di stato di tracciamento per i giocatori con nomi visualizzati modificati di @wescopeland
Modifiche alla Console di gestione
- Eventi: Rimosso il campo slug di @wescopeland
- Hash di Gioco: Resa ordinabile la tabella della pagina di @wescopeland
Modifiche API
- Aggiunto supporto per ULID a tutti gli endpoint applicabili di @wescopeland
- API_GetTopTenUsers: Ottimizzato
getTopUsersByScore
di @wescopeland - Connect: Aggiunti dati di gioco all’API
getfriendlist
e implementato test di @Jamiras
Modifiche all’ambiente
- Dipendenze: Aggiornate diverse dipendenze di Node.js di @wescopeland
- Dipendenze: Aggiornato
livewire/volt
dalla versione 1.6.5 alla 1.7.0 di @dependabot - Eventi: Iniziata la migrazione a React di [@wescopeland](#3235, #3261, #3262, #3266, #3269, #3273, #3280, #3286, #3287, #3285, #3297, #3299)
- Messaggi: Preparata la migrazione della pagina di creazione thread a React di @wescopeland
- Code: Ridotto
maxProcesses
disupervisor-2
a 8 di @wescopeland
Download: Source code RAWeb 2025.03.13
Fonte: x.com