Railway deploy della wiki¶
Questa configurazione pubblica solo la documentazione MkDocs, non l'estensione browser.
Architettura¶
- Service Railway:
wiki. - Build: Dockerfile dedicato
Dockerfile.railway-wiki. - Output pubblicato: sito statico generato da
mkdocs build. - Runtime: server statico Python
scripts/serve_static_wiki.pysu0.0.0.0:$PORT. - Healthcheck Railway:
/. - Endpoint versione estensione:
/api/extension-version.json. - Variabili applicative: nessuna richiesta.
- Database, volumi, worker o private network: non necessari.
Istanza Railway creata¶
- Project:
sf-inspector-wiki - Environment:
production - Service:
wiki - Dominio Railway:
https://wiki-production-4d32.up.railway.app - Feature wiki:
https://wiki-production-4d32.up.railway.app/features/
Il file Dockerfile.railway-wiki.dockerignore limita il contesto Docker a:
docs/**mkdocs.ymlREADME.mdPRIVACY.mdCHANGES.mdpackage.jsonaddon/manifest.jsonaddon/manifest-firefox.jsonscripts/generate_extension_version_endpoint.pyscripts/serve_static_wiki.py- file Railway/Docker dedicati
In questo modo il deploy non include src, build dell'estensione o altri asset applicativi. Include solo i manifest dell'estensione per generare l'endpoint JSON della versione pubblica.
Endpoint versione estensione¶
Il deploy espone una GET pubblica:
La risposta e un JSON statico generato durante la build da package.json, addon/manifest.json e addon/manifest-firefox.json.
La build fallisce se le versioni non sono allineate.
Esempio:
{
"schemaVersion": 1,
"name": "Salesforce Inspector Advanced",
"version": "3.0.20",
"versionName": "3.0.20",
"releaseNotesUrl": "https://sf-inspector-wiki.codestorm.tools/release-note/",
"downloadUrl": "https://github.com/CodeStormLab/cs-salesforce-inspector-advanced/releases/latest",
"platforms": {
"chrome": {
"manifestVersion": 3,
"minimumChromeVersion": "88"
},
"firefox": {
"manifestVersion": 2,
"strictMinVersion": "60.0"
}
}
}
Il server aggiunge header CORS sui path /api/, cosi l'estensione puo leggere l'endpoint per mostrare un suggerimento di aggiornamento quando la versione installata e precedente a version.
Prerequisiti¶
La Railway CLI deve essere installata e autenticata.
Versione verificata localmente durante la preparazione: railway 4.11.2.
Creare il progetto Railway¶
Dal root del repository:
Il comando crea un nuovo progetto e collega la directory corrente. Se lavori in un workspace specifico:
Poi crea e collega il service web:
Se il progetto esiste gia, collega progetto, ambiente e service:
Primo deploy¶
Per avviare il deploy senza restare attaccato ai log:
Il file .railwayignore fa si che railway up carichi solo i file necessari alla wiki. Non rimuoverlo se l'obiettivo e pubblicare solo la documentazione.
Collegare direttamente il repository GitHub¶
Puoi collegare il service wiki direttamente al repository GitHub CodeStormLab/cs-salesforce-inspector-advanced invece di usare solo railway up.
Nel dashboard Railway:
- Apri project
sf-inspector-wiki. - Apri service
wiki. - In
Settings->Source, collega il repositoryCodeStormLab/cs-salesforce-inspector-advanced. - Seleziona branch
master. - Lascia
Root Directoryvuota o impostata alla root del repository. - Se Railway mostra un campo per il config file, usa
/railway.json. - Lascia vuoti build command, start command e variabili custom: sono gia definiti da
railway.jsone dal Dockerfile.
Non impostare Root Directory a docs/: il Dockerfile, mkdocs.yml, README.md, PRIVACY.md, CHANGES.md e railway.json sono alla root del repository e servono alla build.
Con il collegamento GitHub attivo:
railway.jsonforza il builder Dockerfile e usaDockerfile.railway-wiki.watchPatternslimita gli autodeploy a modifiche documentali e file di deploy della wiki.Dockerfile.railway-wiki.dockerignorelimita il contesto Docker ai file necessari alla wiki.- Railway continua a iniettare
PORT; non serve configurarlo manualmente. - Non servono database, volumi, secrets o private network.
Prima di attivare il deploy da GitHub, assicurati che questi file siano committati e pushati:
.railwayignoreDockerfile.railway-wikiDockerfile.railway-wiki.dockerignorerailway.jsonmkdocs.ymldocs/**README.mdPRIVACY.mdCHANGES.mdpackage.jsonaddon/manifest.jsonaddon/manifest-firefox.jsonscripts/generate_extension_version_endpoint.pyscripts/serve_static_wiki.py
Se vuoi che ogni push documentale pubblichi automaticamente la wiki, abilita gli autodeploy sul service wiki. Se preferisci deploy controllati, tieni gli autodeploy disabilitati e usa:
Dominio pubblico¶
Genera un dominio Railway:
Per un dominio custom:
La CLI restituira i record DNS richiesti.
Verifica¶
Dopo il deploy:
Apri il dominio generato e verifica:
- home docs raggiungibile;
/features/raggiungibile;/api/extension-version.jsonrestituisce JSON conversion;- screenshot feature caricati;
- ricerca MkDocs inizializzata.
Verifica rapida dell'endpoint:
Operazioni ricorrenti¶
Nuovo deploy manuale:
Log:
Redeploy dell'ultima build:
Aprire dashboard:
Note operative¶
railway.jsonforza il builder Dockerfile e usaDockerfile.railway-wiki.watchPatternslimita gli autodeploy alle modifiche documentali e ai file deploy della wiki.- Railway inietta
PORT; il container ascolta su0.0.0.0:$PORT. - L'endpoint
/api/extension-version.jsonviene rigenerato a ogni build Railway; aggiornarlo richiede il bump dei manifest/package e un nuovo deploy.