Production Deployment
Pre-Deploy Checklist
NETWORKmatches target (mainnet/preview/preprod)BLOCKFROST_API_KEYprefix matches network (mainnetXXX, etc.)NODE_ENV=production(activates HANA + XSUAA profiles)TX_BUILDERS=buildooor(recommended)- TLS terminated upstream (BTP automatic; Docker → reverse proxy)
- Outbound HTTPS to backend APIs allowed
- Tests green:
npm run build && npm run typecheck && npm test
| Network | Address Prefix | Blockfrost Project Prefix |
|---|---|---|
mainnet | addr1... | mainnetXXX |
preview | addr_test1... | previewXXX |
preprod | addr_test1... | preprodXXX |
Production .env
NETWORK=mainnet
NODE_ENV=production
LOG_LEVEL=info
BACKENDS=blockfrost,koios
BLOCKFROST_API_KEY=mainnetYourApiKey
TX_BUILDERS=buildooor
PRIMARY_TIMEOUT_MS=8000
FALLBACK_TIMEOUT_MS=10000
INDEX_TTL_MS=600000
SAP BTP Cloud Foundry
Architecture:
odatano-srv(CAP backend)odatano-db-deployer(HDI)odatano(AppRouter, XSUAA, routing)odatano-html5-repo-hostodatano-auth(XSUAA)- Services:
odatano-db(HANA HDI) - Destination:
html5-runtime
Full mta.yaml, xs-app.json, and CF deploy commands: docs/guides/PRODUCTION_DEPLOYMENT.md.
cd ODATANO && npm ci && mbt build
cf login -a https://api.cf.<region>.hana.ondemand.com
cf deploy mta_archives/odatano_1.0.0.mtar
cf set-env odatano-srv NETWORK "mainnet"
cf set-env odatano-srv BACKENDS "blockfrost,koios"
cf set-env odatano-srv BLOCKFROST_API_KEY "mainnetYourKey"
cf set-env odatano-srv TX_BUILDERS "buildooor"
cf restage odatano-srv
Database
SQLite for dev / Docker:
{ "cds": { "requires": { "db": { "kind": "sqlite", "credentials": { "url": "db.sqlite" } } } } }
HANA for production:
{ "cds": { "requires": { "[production]": {
"db": { "kind": "hana", "pool": { "acquireTimeoutMillis": 30000, "min": 0, "max": 10 } },
"auth": "xsuaa"
} } } }
Mainnet Notes
- Use a paid Blockfrost project key, free-tier rate limits may throttle production.
- Run your own cardano-node + Ogmios for full tx submission you control.
- Monitor
ODATANO_PROVIDER_UNAVAILABLErate circuit breaker in action. - Rotate
BLOCKFROST_API_KEYevery 90 days.