Production Deployment

Pre-Deploy Checklist

  • NETWORK matches target (mainnet / preview / preprod)
  • BLOCKFROST_API_KEY prefix 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
NetworkAddress PrefixBlockfrost Project Prefix
mainnetaddr1...mainnetXXX
previewaddr_test1...previewXXX
preprodaddr_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-host
  • odatano-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_UNAVAILABLE rate circuit breaker in action.
  • Rotate BLOCKFROST_API_KEY every 90 days.

See Also