Quickstart — self-host
One command to bootstrap Feedbot on a Linux VPS or macOS laptop, with TLS-ready Caddy, Postgres, and the Settings UI.
The shortest path to a self-hosted Feedbot:
curl -fsSL https://get.feedbot.dev | shThat one line:
- Runs pre-flight checks (OS, Docker, ports, time sync).
- Auto-detects the install mode (private if you’re on a laptop, public if you’re on a VPS with an internet-routable IP).
- Pulls the images from GHCR (api, web, bot, caddy, postgres).
- Writes
docker-compose.yml,.env, and aCaddyfile. - Starts the stack and waits for healthchecks.
- Installs the
feedbotCLI to/usr/local/bin/. - Verifies the dashboard is reachable.
Total time: about 30 seconds on a fast network.
Run it without piping
Section titled “Run it without piping”If you want to read the script before running it (recommended for production deploys):
curl -fsSL https://get.feedbot.dev > install.shless install.sh # reviewsh install.sh # runCommon flags
Section titled “Common flags”The installer accepts a handful of flags. Full list with sh install.sh --help.
curl -fsSL https://get.feedbot.dev | sh -s -- --localForces local mode: binds to 127.0.0.1, accessible only from this machine. Useful for laptops and dev boxes.
curl -fsSL https://get.feedbot.dev | sh -s -- --server --yesForces server mode: binds to 0.0.0.0, accepts traffic from anywhere.
--yes skips all prompts (accept defaults).
curl -fsSL https://get.feedbot.dev | sh -s -- --version=v0.2.0Locks the install to a specific image tag. Great for reproducible deploys.
curl -fsSL https://get.feedbot.dev | sh -s -- --dry-run --local --workdir=/tmp/feedbotGenerates the workdir + config files but doesn’t touch Docker. Inspect the result, then re-run for real.
What you get
Section titled “What you get”After install:
- A running stack at
http://<your-IP>(server mode) orhttp://localhost(local mode). - A
feedbotCLI on your PATH. - A
/opt/feedbot/(or~/.feedbot/) directory with everything Feedbot needs. - The dashboard’s Settings page — that’s where you set up SMTP,
Telegram, your domain, and HTTPS. No
.envediting required.