Home Homebrew Pubblicato un nuovo aggiornamento per RAWeb (2025.05.23)

Pubblicato un nuovo aggiornamento per RAWeb (2025.05.23)

26
0

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.

Con questa nuova versione, lo sviluppo si è concentrato su un netto miglioramento dell’esperienza utente, introducendo nuove funzionalità tanto nell’interfaccia quanto nei sistemi sottostanti.

Tra le novità principali spicca un aggiornamento dell’animazione del pulsante Spoiler nei forum, ora più dinamico e integrato nel flusso di lettura, oltre al supporto per titoli regionali e date di uscita specifiche nella sezione dedicata ai giochi.

Sono state anche ottimizzate le classifiche, con l’aggiunta della denormalizzazione delle entry principali, per un accesso più rapido e preciso ai dati dei leaderboard.

L’interfaccia di ricerca ha ricevuto una spinta significativa: il sistema Search 2.0 è ora attivo anche nelle ricerche utenti all’interno delle pagine evento e nella composizione di nuovi messaggi diretti, migliorando la navigabilità e la comunicazione tra membri.

Inoltre, sono migliorati diversi aspetti visivi e di accessibilità, come la leggibilità del testo evidenziato, che adesso risulta più nitido e facile da interpretare in tutte le modalità di visualizzazione.

Numerosi anche i correttivi tecnici. I giochi nella sezione “Completion Progress” vengono ora ordinati per titolo normalizzato, migliorando la coerenza nell’organizzazione dell’elenco.

Corretta un’anomalia che impediva la generazione del set di achievement principale in presenza di statistiche denormalizzate.

Inoltre, nella gestione dei ticket, sono stati esclusi dalla visualizzazione tutti quelli assegnati a sviluppatori apparentemente inattivi ma con manutentori ancora attivi, garantendo così una più corretta interpretazione dei dati.

Sul fronte della gestione interna, la console di amministrazione ha visto l’introduzione di un nuovo toggle per gli eventi, che permette di decidere se un evento assegna o meno un premio visibile sul profilo utente.

Anche le API hanno beneficiato di aggiornamenti: l’interfaccia API_GetClaims ora è limitata a un massimo di 1000 risultati per evitare carichi eccessivi, mentre l’API Connect introduce il supporto multiset grazie a un nuovo parametro di query.

Infine, dal punto di vista infrastrutturale, è stato aggiunto un comando per il backfill del tempo totale di gioco nei dati denormalizzati, e l’indicizzazione del nuovo motore di ricerca è stata estesa a commenti, post nei forum e hub, pur mantenendo un controllo sul carico di sistema grazie a un limite massimo di un processo nella scout queue.

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:

  1. 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 comando sail up o in modalità demone con sail up -d.
  2. 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 in php.ini (come curl, gmp, mysqli, ecc.) per garantire la compatibilità con le dipendenze di RAWeb.
  3. 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:

  1. 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ò eseguire php composer.phar install.
  2. 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 essere http://localhost:64000. Con Valet, potrebbe essere https://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:

  1. Installazione delle dipendenze frontend: Utilizzare pnpm install per installare le dipendenze necessarie.
  2. Costruzione degli asset: Eseguire pnpm build per creare la build finale. Con Docker Sail, è possibile eseguire questi comandi tramite sail pnpm install e sail pnpm build.
  3. 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:

  1. Esegui la migrazione: Esegui php artisan migrate per applicare le migrazioni e configurare il database.
  2. 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:

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:

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

Nuove funzionalità

  • Forum: Animazione del pulsante Spoiler a cura di @wescopeland in #3458
  • Giochi: Supporto per titoli regionali e date di uscita a cura di @wescopeland in #3527
  • Giochi: Denormalizzazione delle voci principali nelle classifiche a cura di @wescopeland in #3508
  • Varie: Maggiore leggibilità per l’evidenziazione del testo a cura di @wescopeland in #3504
  • Search 2.0: Abilitato per le ricerche utenti nelle pagine Evento e nella composizione di nuovi messaggi diretti, a cura di @wescopeland in #3507

Correzione di bug

  • Progressi di completamento: Ordinamento dei giochi per sort_title a cura di @wescopeland in #3520
  • Statistiche denormalizzate: Tentativo di creazione del set di achievement principale mancante a cura di @Jamiras in #3533
  • Ticket: Esclusione dei ticket degli sviluppatori “inattivi” che hanno ancora manutentori attivi quando si utilizza il filtro per sviluppatori inattivi, a cura di @wescopeland in #3521
  • Utenti: Utilizzo dell’ORM Eloquent per la creazione di nuovi utenti a cura di @Jamiras in #3532

Modifiche alla console di gestione

  • Eventi: Aggiunta dell’opzione “assegna un premio sul sito” a cura di @Jamiras in #3525

Modifiche alle API

  • API_GetClaims: Limite massimo di 1000 risultati a cura di @wescopeland in #3519
  • Connect API: Aggiunto parametro ?r=achievementsets per il supporto multiset a cura di @wescopeland in #3513

Modifiche all’ambiente

  • Statistiche denormalizzate: Aggiunto comando player:backfill-playtime-total a cura di @Jamiras in #3529
  • Search 2.0: Indicizzazione di commenti, post nei forum e hub a cura di @wescopeland in #3524
  • Search 2.0: limitata la coda di scansione (scout queue) a un solo processo massimo, a cura di @wescopeland in #3523

Changelog completo: 2025.05.21...2025.05.23

Download: Source code RAWeb 2025.05.23

Fonte: github.com