A template for a three-tier web app hosted by Fly.io using React, Go, gRPC, and DynamoDB.
-
platform: Fly.io
-
ui:
-
api:
- data format: proto3 / json
- validation: protoc-gen-validate
- client gen: swagger-typescript-api
-
server:
- language: Go
- metrics: prometheus
- linter/formatter: golangci-lint
- live reloading: nodemon
-
db: DynamoDB
-
infra: Terraform
# start server, restart on changes to any file
source ./scripts/aws-creds
make dev
# make changes to api specs
make proto# terraform apply
source ./scripts/aws-creds
make tf/apply
# deploy fly machine
make fly/deploy
# set fly secrets (only needed once)
fly secrets set AWS_REGION=us-east-1
fly secrets set AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID
fly secrets set AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY