No description
Find a file
2026-05-22 09:17:13 -06:00
00-user vps bootstrap scripts initial commit 2026-05-22 09:17:13 -06:00
01-nginx vps bootstrap scripts initial commit 2026-05-22 09:17:13 -06:00
02-website vps bootstrap scripts initial commit 2026-05-22 09:17:13 -06:00
03-certbot vps bootstrap scripts initial commit 2026-05-22 09:17:13 -06:00
04-forgejo vps bootstrap scripts initial commit 2026-05-22 09:17:13 -06:00
LICENSE Initial commit 2026-05-22 15:00:10 +00:00
README.md vps bootstrap scripts initial commit 2026-05-22 09:17:13 -06:00

vps-bootstrap

Scripts to bootstrap a fresh Debian VPS.

Order of operations

Step Directory What it does
0 00-user/ Install sudo, create zach user, harden SSH — run as root
1 01-nginx/ Install UFW + nginx, open ports 22 and 80/443
2 02-website/ Create web root, install nginx config for zach.town
3 04-forgejo/nginx-setup.sh Install nginx config for git.zach.town
4 03-certbot/ Install certbot, obtain certs for all domains in one run
5 04-forgejo/setup.sh Install Forgejo binary + systemd service

Notes

  • Step 0 runs as root. All subsequent steps run as zach with sudo.
  • Pass your public key to step 0 so you're not locked out after password auth is disabled: ssh root@<ip> 'bash -s' < 00-user/setup.sh < ~/.ssh/id_ed25519.pub or pipe it: cat ~/.ssh/id_ed25519.pub | ssh root@<ip> 'bash /path/to/setup.sh'
  • The nginx site configs in this repo are the pre-certbot versions (HTTP only). Certbot rewrites them in-place to add the SSL and redirect blocks.
  • Update FORGEJO_VERSION in 04-forgejo/setup.sh before running.
  • After Forgejo starts, complete initial setup via the web UI at http://git.zach.town.