@@ -27,6 +27,15 @@ go build -o outhaul . && ./outhaul serve
2727# → open the one-time setup URL it prints, create the admin account, deploy.
2828```
2929
30+ ## Install on a fresh Debian VPS
31+
32+ curl -fsSL https://outhaul.sh/install | sh
33+
34+ The installer walks you through ingress (Let's Encrypt or Cloudflare Tunnel),
35+ opens the right firewall ports (keeping SSH), builds from source, and prints a
36+ one-time setup URL. Developers with a local checkout can run
37+ ` sudo sh deploy/bootstrap.sh --from-checkout . ` .
38+
3039## Features
3140
3241### Deploy straight from Git
@@ -88,22 +97,27 @@ below, which sets up a dedicated user and a systemd unit.
8897> warning at the top. The installer sets up a long-running systemd service, so
8998> only point it at a box you're happy to wipe.
9099
91- Don't run Outhaul as root. From a checkout on the server:
100+ Don't run Outhaul as root. On the server:
92101
93102``` sh
94- git clone https://github.com/outhaul-dev/outhaul && cd outhaul
95- sudo deploy/install.sh
103+ curl -fsSL https://outhaul.sh/install | sh
96104```
97105
98- The installer needs root once (systemd required; Ubuntu/Debian/Fedora/RHEL/
99- openSUSE). Each step is skipped when already done, so it is safe to re-run —
100- and a re-run after ` git pull ` upgrades the binary and restarts the service.
101- It:
106+ That fetches [ ` deploy/bootstrap.sh ` ] ( deploy/bootstrap.sh ) and runs it under
107+ ` sh ` . From a checkout, run ` sudo sh deploy/bootstrap.sh --from-checkout . `
108+ instead — useful for testing local changes to the installer or app.
109+
110+ The installer needs root once (systemd required; V1 targets Debian, prompting
111+ before continuing on anything else). Each step is skipped when already
112+ done, so it is safe to re-run — and a re-run upgrades the binary and restarts
113+ the service. It:
102114
103115- installs ** Docker** (via get.docker.com), ** git** , and ** nixpacks** if missing;
104116- creates an ` outhaul ` ** system user** (no login shell, home ` /var/lib/outhaul ` )
105117 in the ` docker ` group;
106- - builds the binary if needed and installs it to ` /usr/local/bin/outhaul ` ;
118+ - walks you through ingress — Let's Encrypt, Cloudflare Tunnel, or local-only —
119+ and opens the right firewall ports, always keeping SSH reachable;
120+ - builds the binary from source and installs it to ` /usr/local/bin/outhaul ` ;
107121- writes ` /etc/outhaul.env ` (put ` OUTHAUL_* ` overrides there — ACME email,
108122 public URL) and installs and starts ` outhaul.service `
109123 ([ deploy/outhaul.service] ( deploy/outhaul.service ) ).
0 commit comments