Skip to content

Commit

Permalink
Chore: Deploy to Render updated (twentyhq#2033) (twentyhq#2098)
Browse files Browse the repository at this point in the history
Deploy to Render updated (twentyhq#2033):

* postgres as a pserv (private service) compiled with pg_graphql
* default credentials (todo to fix), but postgres in a private network
* added FRONT_BASE_URL to server env
* added Dockerfile for postgres in infra/prod/postgres
* for server added dockerCommand with yarn database:setup
  • Loading branch information
khakimov authored Oct 18, 2023
1 parent f95c9d3 commit 21c2834
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 29 deletions.
30 changes: 30 additions & 0 deletions infra/prod/postgres/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
ARG PG_MAIN_VERSION=14

FROM postgres:${PG_MAIN_VERSION} as postgres

ARG PG_MAIN_VERSION
ARG PG_GRAPHQL_VERSION=1.3.0
ARG TARGETARCH

RUN set -eux; \
ARCH="$(dpkg --print-architecture)"; \
case "${ARCH}" in \
aarch64|arm64) \
TARGETARCH='arm64'; \
;; \
amd64|x86_64) \
TARGETARCH='amd64'; \
;; \
*) \
echo "Unsupported arch: ${ARCH}"; \
exit 1; \
;; \
esac;

RUN apt update && apt install -y curl

# Install precompiled pg_graphql extensions
RUN curl -L "https://github.com/supabase/pg_graphql/releases/download/v${PG_GRAPHQL_VERSION}/pg_graphql-v${PG_GRAPHQL_VERSION}-pg${PG_MAIN_VERSION}-${TARGETARCH}-linux-gnu.deb" -o pg_graphql.deb
RUN dpkg --install pg_graphql.deb

COPY ./infra/prod/postgres/init.sql /docker-entrypoint-initdb.d/
10 changes: 10 additions & 0 deletions infra/prod/postgres/init.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
SELECT 'CREATE DATABASE "default"'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'default')\gexec

SELECT 'CREATE DATABASE "test"'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'test')\gexec

SELECT 'CREATE USER twenty PASSWORD ''twenty'''
WHERE NOT EXISTS (SELECT FROM pg_user WHERE usename = 'twenty')\gexec

SELECT 'ALTER ROLE twenty superuser'\gexec
79 changes: 50 additions & 29 deletions render.yaml
Original file line number Diff line number Diff line change
@@ -1,43 +1,64 @@
services:
- type: web
name: front
env: docker
dockerfilePath: ./infra/prod/front/Dockerfile
autoDeploy: false
envVars:
- key: REACT_APP_SERVER_BASE_URL
fromService:
name: server
type: web
envVarKey: RENDER_EXTERNAL_URL
- type: web
name: server
env: docker
dockerfilePath: ./infra/prod/server/Dockerfile
dockerCommand: "sh -c yarn prisma:migrate && node dist/src/main"
dockerCommand: "sh -c yarn prisma:migrate && yarn database:setup && node dist/src/main"
autoDeploy: false
envVars:
- key: ACCESS_TOKEN_SECRET
generateValue: true
- key: LOGIN_TOKEN_SECRET
generateValue: true
- key: API_TOKEN_SECRET
generateValue: true
- key: REFRESH_TOKEN_SECRET
generateValue: true
- key: PG_DATABASE_URL
fromDatabase:
name: twenty-db
property: connectionString
- key: FRONT_BASE_URL
fromService:
name: front
type: web
envVarKey: RENDER_EXTERNAL_URL
- key: FRONT_BASE_URL
fromService:
name: front
type: web
envVarKey: RENDER_EXTERNAL_URL
- key: ACCESS_TOKEN_SECRET
generateValue: true
- key: LOGIN_TOKEN_SECRET
generateValue: true
- key: API_TOKEN_SECRET
generateValue: true
- key: REFRESH_TOKEN_SECRET
generateValue: true
- key: PG_DATABASE_HOST
fromService:
name: twenty_postgres
type: pserv
property: host
- key: PG_DATABASE_PORT
fromService:
name: twenty_postgres
type: pserv
property: port
- key: PG_DATABASE_URL
value: postgres://twenty:twenty@twenty-postgres:5432/default?connection_limit=1
disk:
name: twenty-disk
mountPath: /.local-storage
sizeGB: 5
- type: web
name: front
- type: pserv
name: twenty_postgres
env: docker
dockerfilePath: ./infra/prod/front/Dockerfile
dockerfilePath: ./infra/prod/postgres/Dockerfile
autoDeploy: false
disk:
name: data
mountPath: /var/lib/postgresql/data
sizeGB: 10
envVars:
- key: REACT_APP_SERVER_BASE_URL
fromService:
name: server
type: web
envVarKey: RENDER_EXTERNAL_URL
databases:
- name: twenty-db
plan: starter
- key: POSTGRES_USER
value: twenty
- key: POSTGRES_PASSWORD
value: twenty
- key: POSTGRES_DB
value: default

0 comments on commit 21c2834

Please sign in to comment.