Files
esign/render.yaml
T
zeekay d3e091aa97 Serve and call every route under /v1
The resource API is /v1/rest and the operation API is /v1/rpc: named
for what they are, so neither shadows the other, and the v2-beta alias
is gone. Hanzo IAM returns to /auth/callback, the callback path IAM
already derives for this host, so sign-in needs no IAM change.

Claude-Session: https://claude.ai/code/session_01TUxvfuta1Z44KVNYuAz71F
2026-09-24 14:52:07 -07:00

162 lines
4.7 KiB
YAML

services:
- type: web
runtime: node
name: hanzo-sign-app
plan: free
buildCommand: npm i && npm run build
startCommand: npx prisma migrate deploy --schema packages/prisma/schema.prisma && npx turbo run start --filter=@hanzo/esign-remix
healthCheckPath: /v1/health
# The embedded Base SQLite database lives on a persistent disk; `sign.db`
# is created on demand under BASE_PATH on first start.
disk:
name: hanzo-sign-base
mountPath: /opt/hanzo-sign/base/data
sizeGB: 10
envVars:
# Node Version
- key: NODE_VERSION
value: 22.22.0
- key: PORT
value: 10000
# Auth
- key: NEXT_PUBLIC_WEBAPP_URL
fromService:
name: hanzo-sign-app
type: web
envVarKey: RENDER_EXTERNAL_URL
- key: NEXT_PRIVATE_AUTH_SECRET
generateValue: true
# Database — embedded Base SQLite under the persistent disk's BASE_PATH.
- key: BASE_PATH
value: /opt/hanzo-sign/base/data
- key: DATABASE_URL
value: file:/opt/hanzo-sign/base/data/sign.db
# URLs
- key: NEXT_PUBLIC_WEBAPP_URL
fromService:
name: hanzo-sign-app
type: web
envVarKey: RENDER_EXTERNAL_URL
- key: NEXT_PRIVATE_INTERNAL_WEBAPP_URL
value: 'http://localhost:10000'
# SMTP
- key: NEXT_PRIVATE_SMTP_TRANSPORT
value: 'smtp-auth'
- key: NEXT_PRIVATE_SMTP_HOST
sync: false
- key: NEXT_PRIVATE_SMTP_PORT
sync: false
- key: NEXT_PRIVATE_SMTP_USERNAME
sync: false
- key: NEXT_PRIVATE_SMTP_PASSWORD
sync: false
- key: NEXT_PRIVATE_SMTP_FROM_NAME
sync: false
- key: NEXT_PRIVATE_SMTP_FROM_ADDRESS
sync: false
# Stripe
- key: NEXT_PRIVATE_STRIPE_API_KEY
sync: false
- key: NEXT_PRIVATE_STRIPE_WEBHOOK_SECRET
sync: false
# Features
- key: NEXT_PUBLIC_INSIGHTS_KEY
sync: false
- key: NEXT_PUBLIC_FEATURE_BILLING_ENABLED
sync: false
# Storage
- key: NEXT_PUBLIC_UPLOAD_TRANSPORT
value: 'database'
- key: NEXT_PRIVATE_UPLOAD_ENDPOINT
sync: false
- key: NEXT_PRIVATE_UPLOAD_FORCE_PATH_STYLE
sync: false
- key: NEXT_PRIVATE_UPLOAD_REGION
sync: false
- key: NEXT_PRIVATE_UPLOAD_BUCKET
sync: false
- key: NEXT_PRIVATE_UPLOAD_ACCESS_KEY_ID
sync: false
- key: NEXT_PRIVATE_UPLOAD_SECRET_ACCESS_KEY
sync: false
# Crypto
- key: NEXT_PRIVATE_ENCRYPTION_KEY
generateValue: true
- key: NEXT_PRIVATE_ENCRYPTION_SECONDARY_KEY
generateValue: true
# Auth Optional
- key: NEXT_PRIVATE_GOOGLE_CLIENT_ID
sync: false
- key: NEXT_PRIVATE_GOOGLE_CLIENT_SECRET
sync: false
# Signing
- key: NEXT_PRIVATE_SIGNING_TRANSPORT
sync: false
- key: NEXT_PRIVATE_SIGNING_PASSPHRASE
sync: false
- key: NEXT_PRIVATE_SIGNING_LOCAL_FILE_PATH
sync: false
- key: NEXT_PRIVATE_SIGNING_LOCAL_FILE_CONTENTS
sync: false
- key: NEXT_PRIVATE_SIGNING_GCLOUD_HSM_KEY_PATH
sync: false
- key: NEXT_PRIVATE_SIGNING_GCLOUD_HSM_PUBLIC_CRT_FILE_PATH
sync: false
- key: NEXT_PRIVATE_SIGNING_GCLOUD_HSM_PUBLIC_CRT_FILE_CONTENTS
sync: false
- key: NEXT_PRIVATE_SIGNING_GCLOUD_APPLICATION_CREDENTIALS_CONTENTS
sync: false
- key: NEXT_PRIVATE_SIGNING_GCLOUD_HSM_CERT_CHAIN_FILE_PATH
sync: false
- key: NEXT_PRIVATE_SIGNING_GCLOUD_HSM_CERT_CHAIN_CONTENTS
sync: false
- key: NEXT_PRIVATE_SIGNING_GCLOUD_HSM_SECRET_MANAGER_CERT_PATH
sync: false
- key: NEXT_PRIVATE_SIGNING_TIMESTAMP_AUTHORITY
sync: false
- key: NEXT_PUBLIC_SIGNING_CONTACT_INFO
sync: false
- key: NEXT_PRIVATE_USE_LEGACY_SIGNING_SUBFILTER
sync: false
# SMTP Optional
- key: NEXT_PRIVATE_SMTP_APIKEY_USER
sync: false
- key: NEXT_PRIVATE_SMTP_APIKEY
sync: false
- key: NEXT_PRIVATE_SMTP_SECURE
sync: false
- key: NEXT_PRIVATE_RESEND_API_KEY
sync: false
- key: NEXT_PRIVATE_MAILCHANNELS_API_KEY
sync: false
- key: NEXT_PRIVATE_MAILCHANNELS_ENDPOINT
sync: false
- key: NEXT_PRIVATE_MAILCHANNELS_DKIM_DOMAIN
sync: false
- key: NEXT_PRIVATE_MAILCHANNELS_DKIM_SELECTOR
sync: false
- key: NEXT_PRIVATE_MAILCHANNELS_DKIM_PRIVATE_KEY
sync: false
- key: NEXT_PUBLIC_DOCUMENT_SIZE_UPLOAD_LIMIT
sync: false
# Features Optional
- key: NEXT_PUBLIC_DISABLE_SIGNUP
sync: false
- key: NEXT_PUBLIC_USE_INTERNAL_URL_BROWSERLESS
sync: false