The product is branded Hanzo eSign (esign.hanzo.ai, repo hanzoai/esign). Rename all workspace packages @hanzo/sign-* → @hanzo/esign-* (1052 files) and align docker/Dockerfile turbo --scope/--filter to the actual remix package name @hanzo/esign (was a pre-existing mismatch with -remix that broke the build). Protected deps (@hanzo/insights, @hanzo/logo) untouched.
162 lines
4.7 KiB
YAML
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: /api/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
|