1 of 11

Easy Ways to Deploy Personal Projects

@nickwu241

2 of 11

Hosting frontend only websites (HTML, CSS, JS)

3 of 11

Using Github Pages

Ensure index.html exists in github repository

Enable Github Pages

4 of 11

Using Firebase Hosting

5 of 11

Using Amazon S3

Requires more steps but they have decent documentation to follow :)

https://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html

6 of 11

Hosting server side applications

Heroku supports many runtimes (including Docker!) https://devcenter.heroku.com/

Docker + Terraform:

  • Docker allows you to package your application into an “image” using a Dockerfile. Then you can run your application anywhere with docker installed. https://docs.docker.com/get-started/
  • Terraform allows you to create infrastructure (e.g. Cloud VMs) by creating files to specify your desired infrastructure using a declarative syntax. https://www.terraform.io/

7 of 11

Dockerfile example, workflow: build > push > run

8 of 11

Terraform example using AWS

Workflow:

  • create/modify .tf files > plan > apply > destroy (if you want)

Example configuration file and terraform apply output:

9 of 11

Terraform example using AWS

10 of 11

Life without Terraform - too many steps & hard to reproduce :(

11 of 11