Home Homebrew Pubblicato un nuovo aggiornamento per RAWeb (2025.06.26)

Pubblicato un nuovo aggiornamento per RAWeb (2025.06.26)

55
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.

L’aggiornamento non introduce nuove funzionalità, ma si concentra su una lunga serie di correzioni e ottimizzazioni tecniche.

Tra gli interventi principali ci sono migliorie nella gestione dei dati denormalizzati, con modifiche che impediscono il ricalcolo non necessario delle metriche di gioco o la perdita di progressi durante la migrazione di eventi alternativi.

Sono stati risolti problemi legati ai forum, alla ricerca globale e alle leaderboard, garantendo un funzionamento più coerente anche per utenti non tracciati. Cambiamenti anche nella console di gestione, dove ora non è più possibile aggiungere tag ai titoli alternativi dei giochi.

Sul fronte delle API, è stato ampliato l’endpoint dedicato alle leaderboard includendo informazioni sugli autori. Miglioramenti anche in termini di performance, con l’introduzione di middleware dedicati, ottimizzazioni per gli ambienti di test e un sistema più leggero per il tracciamento dei giocatori che non hanno ancora sbloccato alcun obiettivo.

Infine, le pagine gioco basate su React sono state arricchite con nuovi metadati, componenti per la gestione delle serie, pulsanti per indicare l’interesse allo sviluppo o alla fruizione di un titolo e una migliore deduplicazione dei nomi associati ai giochi.

Inoltre, è stato implementato un comando ricorrente per eliminare automaticamente le attività utente obsolete, migliorando la manutenzione del database.

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à

  • Nessuna.

Correzioni di bug

  • Dati denormalizzati: Annulla i batch delle metriche dei giocatori quando cambia l’hash del set by @wescopeland in #3659
  • Dati denormalizzati: non accodare il ricalcolo delle metriche di gioco quando cambia un tag “missable” by @wescopeland in #3660
  • Eventi: risolto un problema che causava la perdita degli sblocchi di obiettivi alternativi durante la migrazione by @Jamiras in #3662
  • Forum: ora viene rispettata l’altezza dinamica del contenuto nei collapsible spoiler shortcode by @wescopeland in #3646
  • Ricerca globale: utilizza il codice del tasto invece del tasto esplicito by @wescopeland in #3655
  • Classifiche: corretta la query degli ID delle leaderboard per gli utenti non tracciati by @wescopeland in #3651

Modifiche alla console di gestione

  • Giochi: impedito l’inserimento di tag nei titoli alternativi dei giochi by @wescopeland in #3652

Modifiche all’API

  • API_GetGameLeaderboards: aggiunti i campi Author e AuthorULID by @wescopeland in #3649
  • Connect: Ristrutturato achievementwondata per adottare un design orientato alle azioni by @Jamiras in #3638

Modifiche ambientali

  • Prestazioni: Aggiunto un fork leggero delle metriche di gioco per i giocatori con 0 sblocchi by @wescopeland in #3661
  • Prestazioni: Aggiunto il middleware SyncAuthenticationCookie by @wescopeland in #3658
  • Prestazioni: Non eseguire comandi programmati negli ambienti non di produzione by @wescopeland in #3650
  • Pagine gioco React: Aggiunta la meta description by @wescopeland in #3647
  • Pagine gioco React: Aggiunta la riga di metadati “Altri nomi” by @wescopeland in #3645
  • Pagine gioco React: Aggiunto il componente hub per le serie by @wescopeland in #3643
  • Pagine gioco React: aggiunti i pulsanti di attivazione Play/Develop by @wescopeland in #3648
  • Pagine gioco React: Migliorata la rimozione dei duplicati per i titoli di gioco taggati by @wescopeland in #3653
  • Utenti: Aggiunto comando ricorrente giornaliero DeleteOldUserActivities by @wescopeland in #3654

Changelog completo: 2025.06.19...2025.06.26

Download: Source code RAWeb 2025.06.26

Fonte: github.com

Alcune parti di questo articolo sono state generate con l’aiuto dell’intelligenza artificiale.

🔥 Prodotti in promozione e articoli più venduti: PC

Vedi altri prodotti PC

Questo articolo contiene link affiliati a Amazon. Se acquisti tramite questi link, potrei guadagnare una commissione senza costi aggiuntivi per te.