2024-06-26 20:23:00 -05:00
2024-06-26 16:06:01 -05:00
2024-06-26 20:14:43 -05:00
2024-06-26 20:14:43 -05:00
2024-06-25 20:29:29 -05:00
2024-06-26 19:57:02 -05:00
2024-06-26 20:23:00 -05:00
2024-05-18 18:45:59 -05:00

Webapp Template

Template designed to quickly build full stack apps.

Utilizes Github Actions and Ansible to build Docker images to quickly deploy onto an AWS EC2 Debian instance.

Technologies

  • Containerization: Docker/Docker Compose

  • Frontend: React/Next.js

  • Backend: FastAPI

  • Frameworks/Libraries: PDM, TailwindCSS

Prerequisites

  • Install Ansible

  • Create a Dockerhub account/repo and fill out the Github repo environmental variables:

    • DOCKERHUB_TOKEN
    • DOCKERHUB_USERNAME
    • DOCKERHUB_REPO
  • Complete the config.yaml and the inventory.yaml in the ansible directory

    • github_repo: Github repo clone address
    • deploy_path: Path where to clone the repo to on the server
    • deploy_command: Make command to run to deploy on the server
  • Add your domain in HOSTNAME_PROD in the Makefile

Deployment

Local Deployment

Uses make to quickly dispatch docker-compose commands.

  • deps: rebuilds the frontend to deploy statically using the api

  • build: builds the container using docker-compose build

  • up-prd: ups the container using docker-compose -f docker-compose.yml up

  • up-dev: ups the container using docker-compose -f docker-compose.yml -f docker-compose.dev.yml up which will deploy with local volumes.

Ex: make deps build up-dev

Server Deployment

Easy deployment using make setup deploy after completing the required config files.

  • setup: Install dependencies and clone repo onto server

  • deploy: Deploy on server

To use a SSL certificate, uncomment the volumes under the traefik service. Add your own certificates for use in Traefik.

volumes:
  - "/var/run/docker.sock:/var/run/docker.sock:ro"
  - "./dynamic_conf.yaml:/etc/traefik/dynamic_conf.yaml"
  - "/etc/letsencrypt/live/domain/fullchain.pem:/etc/certs/ssl-cert.pem"
  - "/etc/letsencrypt/live/domain/privkey.pem:/etc/certs/ssl-cert.key"
Description
Self-hosted webscraper.
Readme MIT 7.1 MiB
Languages
TypeScript 67%
Python 30.4%
CSS 0.8%
Dockerfile 0.5%
Makefile 0.5%
Other 0.8%