TPEN Production Launch — Cross‑Repo Checklist
This checklist coordinates the move from dev to production environments across repos. Deployments to main use production targets while development builds keep using dev targets.
Environment matrix
- Interfaces (frontend)
- Dev:
https://dev.app.t-pen.org (to be provisioned)
- Prod:
https://app.t-pen.org
- Services (API)
- Dev:
https://dev.api.t-pen.org
- Prod:
https://api.t-pen.org
- Static storage
- Dev: TPEN-Static-Dev repo
- Prod: TPEN-static repo
- MongoDB database name
- Tiny
- dev.tiny.t-pen.org
- tiny.t-pen.org
- RERUM store
- Dev:
https://devstore.rerum.io
- Prod:
https://store.rerum.io
Define these strictly via .env variables and CI environments; avoid hardcoding.
Global rollout prerequisites
TPEN-interfaces
Scope: Frontend app currently deploying to app.t-pen.org and calling services at dev.api.t-pen.org. For production, main must target api.t-pen.org. Dev deployments go to dev.app.t-pen.org.
Config and code
CI/CD
Validation
TPEN-services
Scope: Node.js Express API. Dev uses testTpen DB, prod uses tpen. Dev API host is dev.api.t-pen.org; prod is api.t-pen.org. Production deployments must replace any dev references and ensure store.rerum.io is used.
Environment (.env)
Code and configuration
CI/CD
Quick local validation (from repo docs)
TPEN-static and TPEN-Static-Dev
Scope: Stores manifests and related static artifacts.
Validation
TPEN-Users
Scope: User-facing app that may speak to TPEN-services and Auth0.
Config and code
CI/CD
Validation
TPEN3 (site)
CI/CD rules (common pattern for all repos)
CORS and security
Final production cutover steps
Quick verification snippets
TPEN-services (local, optional)
cp sample.env .env, then set MONGODBNAME=tpen to mimic prod locally (or testTpen for dev)
npm install
npm run existsTests
npm run unitTests
- Run:
npm start
- Check:
curl http://localhost:3001/ returns HTML with “TPEN3 SERVICES BABY!!!”
Interfaces/Users (runtime checks)
- Dev: confirm network calls go to
dev.api.t-pen.org and RERUM devstore.rerum.io
- Prod: confirm network calls go to
api.t-pen.org and RERUM store.rerum.io
Notes
- Keep all environment switching centralized in env variables and CI environment configuration.
- Never hardcode
dev.api.t-pen.org, TPEN-Static-Dev, or devstore.rerum.io in code paths; gate them behind env.
- Dev MongoDB remains
testTpen; production MongoDB is tpen.
TPEN Production Launch — Cross‑Repo Checklist
This checklist coordinates the move from dev to production environments across repos. Deployments to
mainuse production targets while development builds keep using dev targets.Environment matrix
https://dev.app.t-pen.org(to be provisioned)https://app.t-pen.orghttps://dev.api.t-pen.orghttps://api.t-pen.orgtestTpentpenhttps://devstore.rerum.iohttps://store.rerum.ioDefine these strictly via
.envvariables and CI environments; avoid hardcoding.Global rollout prerequisites
api.t-pen.org,dev.api.t-pen.org,app.t-pen.org,dev.app.t-pen.orgdevelopmentandproductionenvironments for each repotestTpenand prodtpenTPEN-interfaces
Scope: Frontend app currently deploying to
app.t-pen.organd calling services atdev.api.t-pen.org. For production,mainmust targetapi.t-pen.org. Dev deployments go todev.app.t-pen.org.Config and code
API_BASE_URL→ dev:https://dev.api.t-pen.org, prod:https://api.t-pen.orgRERUM_STORE_URL→ dev:https://devstore.rerum.io, prod:https://store.rerum.ioSTATIC_REPO_TARGET(if needed by client) → dev:TPEN-Static-Dev, prod:TPEN-staticAUTH0_DOMAIN,AUTH0_AUDIENCE→ dev vs prod tenants/settings as applicabledev.api.t-pen.org,TPEN-Static-Dev,devstore.rerum.ioCI/CD
developmentbranch (or PRs), build with dev env and deploy tohttps://dev.app.t-pen.orgmain, build with prod env and deploy tohttps://app.t-pen.orgdevelopment/productionwith scoped secrets/and key routes (non-auth and auth-gated flows)Validation
TPEN-services
Scope: Node.js Express API. Dev uses
testTpenDB, prod usestpen. Dev API host isdev.api.t-pen.org; prod isapi.t-pen.org. Production deployments must replace any dev references and ensurestore.rerum.iois used.Environment (.env)
SERVERURL→ dev:https://dev.api.t-pen.org, prod:https://api.t-pen.orgPORT(default 3011)MONGODB(connection string)MONGODBNAME→ dev:testTpen, prod:tpenMARIADB,MARIADBNAME,MARIADBUSER,MARIADBPASSWORDAUDIENCE,DOMAIN(dev vs prod values)RERUMURL→ dev:https://devstore.rerum.io, prod:https://store.rerum.ioTINYPENtoken refreshing automaticallySTATIC_REPO_NAME(dev:TPEN-Static-Dev, prod:TPEN-static) and any required tokenshttps://app.t-pen.organdhttps://dev.app.t-pen.orgor*where appropriateCode and configuration
dev.api.t-pen.org,devstore.rerum.io, orTPEN-Static-Devwith env-driven configCI/CD
development, deploy with dev env secrets tohttps://dev.api.t-pen.orgmain, deploy with prod env secrets tohttps://api.t-pen.org/returns HTML containing “TPEN3 SERVICES BABY!!!”Quick local validation (from repo docs)
cp sample.env .envthen set env overrides appropriatelynpm installnpm run existsTests(should pass completely)npm run unitTests(DB-required tests may timeout without DBs)npm startandcurl http://localhost:3011/TPEN-static and TPEN-Static-Dev
Scope: Stores manifests and related static artifacts.
Validation
TPEN-Users
Scope: User-facing app that may speak to TPEN-services and Auth0.
Config and code
API_BASE_URL→ dev:https://dev.api.t-pen.org, prod:https://api.t-pen.orgAUTH0_DOMAIN,AUTH0_AUDIENCE→ dev vs prodRERUM_STORE_URLif referenced → dev/prod domainsCI/CD
development, deploy to dev host (if applicable) with dev envmain, deploy to production host with prod envValidation
TPEN3 (site)
app.t-pen.org,api.t-pen.org)CI/CD rules (common pattern for all repos)
development→ GitHub Environment:development→ Dev hosts and secretsmain→ GitHub Environment:production→ Prod hosts and secretsAPI_BASE_URL,RERUM_STORE_URL, Auth0 valuesSERVERURL, DB strings and names (MONGODBNAME),RERUMURL,CORS_ORIGINSCORS and security
https://app.t-pen.orghttps://dev.app.t-pen.orgFinal production cutover steps
dev.app.t-pen.org(not yet implemented) and point dev interfaces theremainto production targetsQuick verification snippets
TPEN-services (local, optional)
cp sample.env .env, then setMONGODBNAME=tpento mimic prod locally (ortestTpenfor dev)npm installnpm run existsTestsnpm run unitTestsnpm startcurl http://localhost:3001/returns HTML with “TPEN3 SERVICES BABY!!!”Interfaces/Users (runtime checks)
dev.api.t-pen.organd RERUMdevstore.rerum.ioapi.t-pen.organd RERUMstore.rerum.ioNotes
dev.api.t-pen.org,TPEN-Static-Dev, ordevstore.rerum.ioin code paths; gate them behind env.testTpen; production MongoDB istpen.