From b6f9d70fec3393234d1999f423c7e7471b165545 Mon Sep 17 00:00:00 2001 From: Ephraim Atta-Duncan Date: Wed, 4 Oct 2023 19:58:07 +0000 Subject: [PATCH] docs: add render one click deploy for refresh --- package.json | 1 + packages/trpc/server/router.ts | 4 +- render.yaml | 103 +++++++++++++++++++++++++++++++++ 3 files changed, 107 insertions(+), 1 deletion(-) create mode 100644 render.yaml diff --git a/package.json b/package.json index bb574f3ca..9f77b4aa3 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "private": true, "scripts": { "build": "turbo run build", + "build:web": "turbo run build --filter=@documenso/web", "dev": "turbo run dev --filter=@documenso/web --filter=@documenso/marketing", "start": "cd apps && cd web && next start", "lint": "turbo run lint", diff --git a/packages/trpc/server/router.ts b/packages/trpc/server/router.ts index 6f9fc7660..b4c65b1d4 100644 --- a/packages/trpc/server/router.ts +++ b/packages/trpc/server/router.ts @@ -6,7 +6,9 @@ import { shareLinkRouter } from './share-link-router/router'; import { procedure, router } from './trpc'; export const appRouter = router({ - hello: procedure.query(() => 'Hello, world!'), + health: procedure.query(() => { + return { status: 'ok' }; + }), auth: authRouter, profile: profileRouter, document: documentRouter, diff --git a/render.yaml b/render.yaml new file mode 100644 index 000000000..eb213c32c --- /dev/null +++ b/render.yaml @@ -0,0 +1,103 @@ +services: + - type: web + name: documenso-app + env: node + plan: free + buildCommand: npm i && npm run build:web + startCommand: npx prisma migrate deploy --schema packages/prisma/schema.prisma && npm run start + healthCheckPath: /api/trpc/health + + envVars: + # Node Version + - key: NODE_VERSION + value: 18.17.0 + + - key: PORT + value: 10000 + + # Auth + - key: NEXTAUTH_URL + fromService: + name: documenso-app + type: web + envVarKey: RENDER_EXTERNAL_URL + - key: NEXTAUTH_SECRET + generateValue: true + + # Database + - key: NEXT_PRIVATE_DATABASE_URL + fromDatabase: + name: documenso-db + property: connectionString + + - key: NEXT_PRIVATE_DIRECT_DATABASE_URL + fromDatabase: + name: documenso-db + property: connectionString + + # URLs + - key: NEXT_PUBLIC_WEBAPP_URL + fromService: + name: documenso-app + type: web + envVarKey: RENDER_EXTERNAL_URL + - key: NEXT_PUBLIC_MARKETING_URL + value: 'http://localhost:3001' + + # 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 + - key: NEXT_PUBLIC_STRIPE_COMMUNITY_PLAN_MONTHLY_PRICE_ID + sync: false + - key: NEXT_PUBLIC_STRIPE_COMMUNITY_PLAN_YEARLY_PRICE_ID + sync: false + + # Features + - key: NEXT_PUBLIC_POSTHOG_KEY + sync: false + - key: NEXT_PUBLIC_POSTHOG_HOST + value: 'https://eu.posthog.com' + - key: NEXT_PUBLIC_FEATURE_BILLING_ENABLED + sync: false + + # Redis (Only required for marketing site, but added for completeness) + - key: NEXT_PRIVATE_REDIS_URL + sync: false + - key: NEXT_PRIVATE_REDIS_TOKEN + sync: false + + # Storage + - key: NEXT_PUBLIC_UPLOAD_TRANSPORT + value: 'database' + - key: NEXT_PRIVATE_UPLOAD_ENDPOINT + 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 + +databases: + - name: documenso-db + plan: free