VPS hosting
This hub links to the supported VPS/hosting guides and explains the current hosted Fased posture at a high level.Local vs VPS security
| Path | Best for | Security posture | Access dependency |
|---|---|---|---|
| Local install | Personal laptop, desktop, dev box, WSL2 | Lowest setup risk. Gateway stays on your machine; a home router usually does not expose it to the public internet. Tailscale is optional. | Your local OS login. |
| VPS Hosting | Always-on cloud node | Higher exposure by default because a VPS is internet-reachable. Hosted setup closes public admin ports and requires Tailscale for private dashboard/SSH access. | Your Tailscale account plus the VPS provider console for emergency recovery. |
VPS in 3 steps
For most users, the hosted path is:- On your own computer, install/sign into Tailscale and keep it online.
- SSH into the fresh VPS using the login your VPS provider gives you.
- Join the VPS to the same tailnet, install Fased, and choose the Hosting profile.
- Your own computer: opens the dashboard and runs SSH checks.
- The VPS: runs Fased Agent.
| Your computer | Use this terminal | Tailscale requirement |
|---|---|---|
| Windows | PowerShell or Windows Terminal | Install/sign into the Windows Tailscale app from tailscale.com/download. PowerShell can SSH into the Linux VPS. |
| macOS | Terminal | Install/sign into the macOS Tailscale app. |
| Linux | Terminal | Install/start Tailscale on that Linux machine. |
| WSL | Advanced only | Either use PowerShell instead, or install/start Tailscale inside WSL too. Windows Tailscale does not automatically make WSL a Tailscale node. |
root:
Recommended VPS size
Fased can install on a 1 vCPU / 1 GB RAM VPS, but that is the minimum floor and onboarding will be slow. For a smoother first install, use at least:| VPS size | Use it for | Expectation |
|---|---|---|
| 1 vCPU / 1 GB RAM | Cheapest test node | Works with swap, but install/onboarding can take a long time. |
| 1-2 vCPU / 2 GB RAM | Recommended minimum | Much better first install and normal hosted operation. |
| 2 vCPU / 4 GB RAM | Comfortable public node | Faster builds, smoother Control UI, and more room for channels/tasks. |
root, the installer creates a non-root app
user, prepares /home/app/fased, and re-runs the installer as app. That is
expected. After successful hosted onboarding, the temporary root checkout is
removed. Do not move the repo back to /root.
When sudo tailscale up --ssh prints a login URL in the SSH terminal, copy that
URL into your own device’s browser. The VPS does not need a desktop browser.
Before SSH/firewall lock-down, setup pauses and asks you to test terminal access
from your own computer:
tailscale ping says no matching peer, your computer and the VPS are not
in the same Tailscale network. Sign your computer into the same Tailscale
account, or re-authenticate Tailscale on the VPS, then rerun the check.
Only confirm after that command connects through Tailscale and opens
/home/app/fased. If it does not connect, setup stops before disabling root or
password SSH.
If the original VPS login was password-only and no SSH public key is available,
setup stops before hardening; add your public key and rerun.
After onboarding completes, use both access paths:
- Web dashboard: open the printed
https://...ts.net/URL in a browser on your own computer. That computer must be signed into the same Tailscale account. Save the gateway token in case the browser asks for it. - SSH terminal: use regular SSH over Tailscale as
appfor CLI commands, updates, logs, and repairs. Run it from a computer signed into the same Tailscale network.
root@...:~/fased bootstrap shell. Normal operation
uses the app user over Tailscale from your own computer:
app shell is a full Linux shell on the VPS and is configured to start in
/home/app/fased.
Use fased health as the single pass/fail check after hosting install. It
should start with Gateway: online. Use fased health --verbose only when you
want optional channel details. If health fails, inspect the service:
http://localhost:18789 is only the advanced SSH tunnel fallback: it
works on your local computer after you start the tunnel shown by onboarding and
leave that tunnel running.
Small VPS installs size swap automatically when possible and run onboarding
with a larger Node heap. If an older checkout already failed with
JavaScript heap out of memory, update the checkout and rerun
./install.sh --hosting.Update later
For normal updates, log in asapp through Tailscale:
./install.sh --hosting only for repair/reinstall
behavior; current installers fast-forward a clean Git checkout before building.
You do not need a Tailscale API key for the normal manual VPS flow. The
Tailscale CLI prints a URL you open from your own computer. Use a Tailscale auth
key only for non-interactive automation, cloud-init, Terraform, or scripted installs.
Pick a provider
- Oracle Cloud (Always Free): Oracle — $0/month (Always Free, ARM; capacity/signup can be finicky)
- Fly.io: Fly.io
- Hetzner (Docker): Hetzner
- GCP (Compute Engine): GCP
- Other VPS providers: a clean Ubuntu LTS box usually works fine if you follow the same hosting/onboarding and Tailscale guidance.
deploy/hosting/fly.toml, deploy/hosting/render.yaml, Docker, or the repo installer. External
hosted presets are intentionally not listed because we cannot verify or maintain
them from this repo.
How cloud setups work
- The runtime and gateway run on the VPS and own state + workspace.
- Root installs are bootstrapped into
/home/app/fasedand run as theappuser. The root checkout is temporary bootstrap state. - Treat the VPS as the source of truth and back up the state + workspace.
- Create or sign into Tailscale before onboarding that host. If you skip this, Hosting onboarding will stop to install/login Tailscale before it locks down SSH/firewall rules.
- Use
fased onboard --host-profile hostingfor the hosted path. - Keep the gateway on loopback and access it via the private Tailscale HTTPS dashboard URL or SSH over the Tailscale network.
- Do not expose the raw gateway port publicly just to reach the dashboard or WS.
- If you bind to
lan/tailnet, requiregateway.auth.tokenorgateway.auth.password.
Platforms hub: Platforms
Shared company agent on a VPS
This is a valid setup when the users are in one trust boundary (for example one company team), and the runtime is business-only.- Keep it on a dedicated runtime (VPS/VM/container + dedicated OS user/accounts).
- Do not sign that runtime into personal Apple/Google accounts or personal browser/password-manager profiles.
- If users are adversarial to each other, split by gateway/host/OS user.
Using nodes with a VPS
You can keep the Gateway in the cloud and pair nodes on your local devices (Mac/iOS/Android/headless). Nodes provide local screen/camera/canvas andsystem.run
capabilities while the Gateway stays in the cloud.
Docs: Nodes, Nodes CLI