infra
→ spins up Hetzner box - https://www.hetzner.com/
nginx
→ reverse proxy - https://nginx.org/
n8n
→ workflow automation - https://n8n.io/
supabase
→ backend as a service - https://github.com/supabase/supabase
# first set up environment variables for infra (1) and each app (2)
# 1. Create `terraform.tfvars` in `infra` according to `terraform.tfvars.example`
# 2. Create `.env` files in each app folder according to each `.env.example`
# provision infra - see infra/README.md for more details
cd infra
terraform init && terraform plan
terraform apply
cd ..
# configure server and start services
./deploy.sh
# stop all services
ssh m4sdev 'docker stop $(docker ps -q)'
# clean all docker containers, images and volumes
ssh m4sdev 'docker rm $(docker ps -aq); docker rmi $(docker images -q); docker volume rm $(docker volume ls -q)'
# clean home folder
ssh m4sdev "rm -rf /home/*"
- Create a folder with a
docker-compose.yaml
file - Add it to the deploy script
- (optional) to expose it publicly
- Create a DNS record for a subdomain on Cloudflare
- Add the network to NGINX's
nginx/docker-compose.yaml
- Add the proxy configuration on
nginx/default.conf.template