I got sick of creating apps from scratch every time I had a new idea. This is a fullstack app with all the foundational goodies required to get up and running immediately.
Credits to:
- https://github.com/andregardi/jwt-express-typeorm for the API quickstart
- https://github.com/creativetimofficial/vue-argon-dashboard for the Vue Admin quickstart
- Pulumi for being so simple to use
- Lerna Monorepo
- Automated ECS (Fargate) & Postgres RDS
Core
- Pulumi scripts to configure and manage multi-env ECS deployments
API
- Typescript
- TypeORM
- JWT
Frontend
- Vue
- Vuex
- ArgonDashboard (Bootstrap based)
Requirements
- Node 8+
- Docker
Local Dev
$ yarn # install dependencies, bootstraps .env
$ yarn start-api # runs postgis, migrations, and the api server on localhost:3000
$ yarn migrate-api # run api migrations
$ yarn start-frontend # runs vue on localhost:8080
NOTE: we could switch to docker-compose for local dev for simplicity but because core (Pulumi) uses the local Docker files it's not a major concern.
Deploy To AWS
- Copy
.env.example
to.env
inapi
,core
, andfrontend
packages - Install Pulumi
brew install pulumi
(if on Mac) - Set up AWS account / Create Access Key and set env vars in
core
:AWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
- Setup Pulumi account and set Pulumi Access token env var in
core
:PULUMI_ACCESS_TOKEN
- Install dependencies
yarn
- Deploy stack to AWS:
yarn deploy
- Update the frontend
.env
VUE_APP_API_ENDPOINT
with the correctapi
url from the deploy output- NOTE: this could be improved using a custom Pulumi resource or Route53
- Update the api
.env
DB_HOST
with the correct rds db host from the deploy output - Migrate the AWS Postgress in the API package:
yarn migrate-api
- Redeploy
yarn deploy
- Navigate to the
app
URL (output after Pulumi deployment)- Username:
admin
- Passsword:
admin
- Username: