Repository navigation
Expand file tree
/
Copy pathrender.yaml
More file actions
177 lines (173 loc) · 5.86 KB
/
Copy pathrender.yaml
File metadata and controls
177 lines (173 loc) · 5.86 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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# Hosted Personal Agent Proxy on Render: the app, its database, the docs, and the website. In the
# dashboard: New → Blueprint, pointed at this repository. The variables marked `sync: false` are
# asked for once, when the Blueprint is first applied, and kept in the dashboard after that.
#
# The web app has no service of its own: the `proxy` service is the api serving the web app's
# build on the same origin, so there is one domain and nothing else to configure.
services:
- type: web
name: proxy
runtime: docker
dockerfilePath: ./Dockerfile
dockerContext: ./
region: oregon
plan: 0.5c-512mb
# Two, so a deploy or a failed instance never takes Personal Agent Proxy down. The api keeps
# nothing in memory between requests, and two instances starting at once migrate safely: Prisma
# takes a lock on the database first.
numInstances: 2
healthCheckPath: /health
domains:
- app.personalagentproxy.com
# Only the custom domain: on the onrender.com address sign-in would not work, as APP_URL and the
# CSRF check name app.personalagentproxy.com.
renderSubdomainPolicy: disabled
# Deploys main once CI passes.
autoDeployTrigger: checksPass
# Only what goes into the image: the docs and their content deploy on their own.
buildFilter:
paths:
- Dockerfile
- docker-entrypoint.sh
- package.json
- bun.lock
- packages/api/**
- packages/db/**
- packages/integrations/**
- packages/ui/**
- packages/utils/**
- packages/web/**
envVars:
- key: DATABASE_URL
fromDatabase:
name: proxy-db
property: connectionString
# The address people open, such as https://proxy.example.com, once the custom domain is set.
- key: APP_URL
sync: false
# Hashes sign-in links; a new one only ends the links already sent.
- key: AUTH_SECRET
generateValue: true
# The key the existing data was encrypted with, never a new one: a different key makes every
# stored credential and Information record unreadable. `openssl rand -base64 32` only for a
# fresh database.
- key: ENCRYPTION_KEY
sync: false
- key: RESEND_KEY
sync: false
- key: EMAIL_FROM
sync: false
# Jev, which picks the home page's widget, and the model that fills it in; without both the
# home page says it is not set up.
- key: TYPESAFE_API_KEY
sync: false
- key: OPENROUTER_KEY
sync: false
- key: GOOGLE_CLIENT_ID
sync: false
- key: GOOGLE_CLIENT_SECRET
sync: false
- key: PLAID_CLIENT_ID
sync: false
- key: PLAID_SECRET
sync: false
# Hosted Personal Agent Proxy is not an installation to count.
- key: TELEMETRY_ENABLED
value: 'false'
# The docs, exported as plain files (packages/docs/next.config.ts). Render serves out/404.html
# for a missing path.
- type: web
name: proxy-docs
runtime: static
buildCommand: bun install --frozen-lockfile --filter docs && bun run --cwd packages/docs build
staticPublishPath: ./packages/docs/out
domains:
- docs.personalagentproxy.com
renderSubdomainPolicy: disabled
buildFilter:
paths:
- package.json
- bun.lock
- packages/docs/**
- packages/ui/**
# The environment variables page is built from the api's schema.
- packages/api/src/utils/env-schema.ts
headers:
# Named by their content, so they never change under a name.
- path: /_next/static/*
name: Cache-Control
value: public, max-age=31536000, immutable
# The headers the app sends itself (packages/api/src/server/security-headers.ts).
- path: /*
name: X-Content-Type-Options
value: nosniff
- path: /*
name: Referrer-Policy
value: strict-origin-when-cross-origin
- path: /*
name: X-Frame-Options
value: DENY
- path: /*
name: Content-Security-Policy
value: frame-ancestors 'none'
- path: /*
name: Strict-Transport-Security
value: max-age=31536000
routes:
# The vault's guide, from where it was as Information.
- type: redirect
source: /connections/information
destination: /connections/vault/
- type: redirect
source: /connections/information/
destination: /connections/vault/
envVars:
# The version the repo is developed and the image built with.
- key: BUN_VERSION
value: 1.4.4
# The website, exported as plain files like the docs (packages/website/next.config.ts).
- type: web
name: proxy-website
runtime: static
buildCommand: bun install --frozen-lockfile --filter website && bun run --cwd packages/website build
staticPublishPath: ./packages/website/out
domains:
- personalagentproxy.com
renderSubdomainPolicy: disabled
buildFilter:
paths:
- package.json
- bun.lock
- packages/website/**
- packages/ui/**
headers:
- path: /_next/static/*
name: Cache-Control
value: public, max-age=31536000, immutable
- path: /*
name: X-Content-Type-Options
value: nosniff
- path: /*
name: Referrer-Policy
value: strict-origin-when-cross-origin
- path: /*
name: X-Frame-Options
value: DENY
- path: /*
name: Content-Security-Policy
value: frame-ancestors 'none'
- path: /*
name: Strict-Transport-Security
value: max-age=31536000
envVars:
- key: BUN_VERSION
value: 1.4.4
databases:
- name: proxy-db
plan: 0.5c-1g
region: oregon
postgresMajorVersion: '17'
databaseName: proxy
user: proxy
# Only Render services in the account reach it; nothing from the internet.
ipAllowList: []