Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jaypyles/webapp-template
Template designed to quickly build full stack apps.
https://github.com/jaypyles/webapp-template
open-source template webapp
Last synced: 23 days ago
JSON representation
Template designed to quickly build full stack apps.
- Host: GitHub
- URL: https://github.com/jaypyles/webapp-template
- Owner: jaypyles
- Created: 2024-05-18T23:45:49.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2024-08-16T00:14:46.000Z (3 months ago)
- Last Synced: 2024-08-16T01:29:51.341Z (3 months ago)
- Topics: open-source, template, webapp
- Language: TypeScript
- Homepage:
- Size: 284 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 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.
```yaml
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"
```