1.0.0 • Published 2 years ago

gynger v1.0.0

Weekly downloads
-
License
ISC
Repository
github
Last release
2 years ago

Gynger

For Local Development

Install all the dependencies

npm install

Generate necessaary types

prisma generate

This will also generate types for type-graphql. These are stored in the node_modules folder under @generated/type-graphql.

Running Locally

You must have docker and docker-compose installed. To run the application simply run npm start and this will spin up a postgres docker and the node docker container.

npm start

If any changes are made to prisma.schema you will need to re-generate the types. Since docker has its own versions of this you will need to rebuild the docker image.

docker-compose build prisma

Deploying Infra

Infra is all setup through terraform. For staging run the following from inside infra/

terraform workspace set staging
terraform apply -var-file="staging.tfvars"

You will need to manually enable firebase auth to get this to work.

Deploy App

gcloud app deploy app.staging.yaml
cloud_sql_proxy -instances=gynger-staging:us-central1:gynger-database-instance=tcp:3307

Resetting the DB

# Delete all users first
# SET the GOOGLE_APPLICATION_CERDENTIALS
export GOOGLE_APPLICATION_CREDENTIALS=/path/to/file
node -r ts-node/register bin/delete-all-users.ts
# REMOVE FIREBASE_AUTH
prisma migrate reset 
prisma seed

In case you accidentally run db reset on staging you need to re-add the api user

GRANT USAGE ON SCHEMA public TO api;
GRANT SELECT, INSERT, UPDATE, DELETE ON ALL TABLES IN SCHEMA public TO api;
GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO api;

Prod DB Connection

# the format should be 
DATABASE_URL=postgresql://username:password@localhost/gynger-db?schema=public&host=/cloudsql/gynger-staging:us-central1:gynger-database-instance

Running Seed In Prod

You need to download a key from firebase then set the keypath in the defualt config under clients.google.keypath