Overview
Dist Obfuscation
Sceglie se caricare app.js/app.css oppure .dat.
Secure Assets
Controlla se renderer-config, ui-config e gamedata passano da /nitro-sec/file.
Secure API
Attiva o disattiva la cifratura runtime automatica su /api/*.
File da usare
| File | Scopo | Nota |
|---|---|---|
public/configuration/client-mode.example |
Template per i toggle runtime | Da copiare in configuration/client-mode.json nel deploy reale, che resta ignorato da Git |
public/configuration/renderer-config.example |
Template sicuro del renderer config | Non tocca il tuo configuration/renderer-config.json locale |
public/configuration/ui-config.example |
Template UI config | Da mantenere come riferimento pulito |
Latest_Compiled_Version/config.ini.example |
Flag backend secure | Specifica la parte lato emulatore |
client-mode.example
È il punto centrale per attivare o disattivare il comportamento runtime senza dover modificare il codice.
{
"distObfuscationEnabled": true,
"secureAssetsEnabled": true,
"secureApiEnabled": true,
"apiBaseUrl": "https://nitro.example.com:2096",
"plainConfigBaseUrl": "https://hotel.example.com/configuration/",
"plainGamedataBaseUrl": "https://hotel.example.com/client/nitro/gamedata/"
}
Campi
distObfuscationEnabled: usa.datoppure file plainsecureAssetsEnabled: attiva/nitro-sec/filesecureApiEnabled: cifra le richieste/api/*apiBaseUrl: base URL emulatore/API
Suggerimento
Conviene impostare sempre apiBaseUrl in modo esplicito, così non dipendi da fallback impliciti del runtime.
renderer-config.example
Qui definisci URL di socket, API, asset library e gamedata. Tutti i link pubblici dovrebbero vivere qui, non nei componenti React.
Chiavi principali
socket.urlapi.urlasset.urlimage.library.urlimages.urlgamedata.url
Traduzioni
external.texts.translation.urlfurnidata.translation.url- Usano
%locale%e%timestamp%
ui-config.example
Per la login view e altre immagini UI, la sorgente deve stare qui o in renderer config, non hardcoded nei componenti.
Login view
loginview.images.backgroundloginview.images.drapeloginview.images.leftloginview.images.rightloginview.widgetsper i blocchi promozionali
Codice runtime coinvolto
src/bootstrap.ts
Legge client-mode, costruisce NitroConfig['config.urls'] e prepara il bootstrap del client.
src/secure-assets.ts
Gestisce ECDH, decrypt/encrypt, fallback plain e secure API runtime.
scripts/write-asset-loader.mjs
Genera public/configuration/asset-loader.js e decide se usare file plain o .dat.
scripts/minify-dist.mjs
Genera i .dat ma mantiene anche i file plain per il toggle runtime.
Emulatore
nitro.secure.assets.enabled=true
nitro.secure.api.enabled=true
nitro.secure.config.root=C:/path/to/Nitro-V3/public
nitro.secure.gamedata.root=C:/path/to/gamedata
nitro.secure.master_key=change-me-to-a-long-random-secret
nitro.secure.assets.enabled: abilita/nitro-sec/bootstrape/nitro-sec/filenitro.secure.api.enabled: abilita la cifratura su/api/*nitro.secure.config.root: cartella dei config livenitro.secure.gamedata.root: cartella del gamedata livenitro.secure.master_key: chiave persistente server-side
Scenari rapidi
Tutto attivo
Secure assets, secure API e dist obfuscation tutti attivi.
Solo .dat
Usi i .dat, ma lasci config/API in plain.
Tutto plain
Modalità fallback completa per debug o test locali.
Checklist finale
client-mode.example, renderer-config.example e ui-config.example.dat.datnitro.secure.master_key lato emulatore