-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathrender.yaml
More file actions
65 lines (54 loc) · 1.93 KB
/
Copy pathrender.yaml
File metadata and controls
65 lines (54 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Render Blueprint — deploys the backend as a Web Service.
# Docs: https://docs.render.com/blueprint-spec
#
# Usage:
# 1. Push this repo to GitHub/GitLab.
# 2. On Render → New → Blueprint → select this repo.
# 3. Fill in the env vars marked `sync: false` in the dashboard.
# 4. Deploy.
services:
- type: web
name: athena-backend
runtime: node
plan: starter
region: oregon
numInstances: 1
# Build from repo root so npm workspaces resolve @athena/core
buildCommand: >
npm ci --include=dev &&
npm run build -w @athena/core &&
npm run build -w @athena/backend
startCommand: node backend/dist/server.js
healthCheckPath: /api/health
envVars:
- key: NODE_VERSION
value: "20"
- key: NODE_ENV
value: production
# Render sets PORT automatically; the backend reads process.env.PORT
# so no need to hardcode it.
# ── Required: Database ──
- key: DATABASE_URL
sync: false # Set in dashboard (e.g. Supabase or Render Postgres URL)
# ── Required: CORS / Origins ──
- key: CORS_ORIGIN
sync: false # Your frontend URL, e.g. https://athena-frontend.onrender.com
- key: APP_ORIGIN
sync: false # Same as CORS_ORIGIN
- key: API_ORIGIN
sync: false # This service's URL, e.g. https://athena-backend.onrender.com
# ── Auth provider (legacy | supabase) ──
- key: AUTH_PROVIDER
value: legacy
# ── Supabase (only needed if AUTH_PROVIDER=supabase) ──
- key: SUPABASE_URL
sync: false
- key: SUPABASE_ANON_KEY
sync: false
- key: SUPABASE_SERVICE_ROLE_KEY
sync: false
# ── Cookie settings (production) ──
- key: AUTH_COOKIE_DOMAIN
sync: false # e.g. .onrender.com or your custom domain
- key: AUTH_COOKIE_SECURE
value: "true"