Giter Site home page Giter Site logo

monorepo's Introduction

Roth Technologies Monorepo

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:

Stack

  • 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)

Getting Started

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

  1. Copy .env.example to .env in api, core, and frontend packages
  2. Install Pulumi brew install pulumi (if on Mac)
  3. Set up AWS account / Create Access Key and set env vars in core: AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
  4. Setup Pulumi account and set Pulumi Access token env var in core: PULUMI_ACCESS_TOKEN
  5. Install dependencies yarn
  6. Deploy stack to AWS: yarn deploy
  7. Update the frontend .env VUE_APP_API_ENDPOINT with the correct api url from the deploy output
    • NOTE: this could be improved using a custom Pulumi resource or Route53
  8. Update the api .env DB_HOST with the correct rds db host from the deploy output
  9. Migrate the AWS Postgress in the API package: yarn migrate-api
  10. Redeploy yarn deploy
  11. Navigate to the app URL (output after Pulumi deployment)
    • Username: admin
    • Passsword: admin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.