An Ansible setup for my home Linux machine running Nobara, intended as a general purpose gaming machine and an API server specifically for ML tasks (my Hetzner VPS will receive all calls first and only redirect if ML tasks are needed since it runs 24/7).
Run this after completing the initial "welcome" setup, which includes updating, setting up NVIDIA drivers, and installing other codecs.
Includes:
- TODO
./setup.sh
Then:
- Login to 1Password (important, used for tokens/secrets)
- Setup KDE/GSConnect
gh auth login
Next is to start DuckDNS, NGINX, and our app servers.
However, we must first make sure that:
- An A/CNAME record has been created at DNS provider (mine is R53) pointing to DuckDNS.
- Port forwarding rules are setup on the router for 80->80 and 443->443.
Finally:
./servers.sh
To summarize the full flow:
- Client --Request api.devinl.im--> AWS Route53
- AWS Route53 --CNAME (da-nobara.duckdns.org)--> Client
- Client --Request da-nobara.duckdns.org--> DuckDNS
- DuckDNS --Machine public IP--> Client
- Client --Request public IP:80/443--> Home router
- Home router --Forward request--> Machine local IP
- Machine's NGINX --Listen on 80/443--> Proxy request to localhost:8000
- FastAPI/Uvicorn --Listen on 0.0.0.0:8000--> Process request and respond
Port | App |
---|---|
TODO |