From eabb451d2f6c02e8de4698a3683c8be4419112fd Mon Sep 17 00:00:00 2001 From: Michael Feng Date: Thu, 27 Aug 2026 11:49:15 -0600 Subject: [PATCH] =?UTF-8?q?README:=20claims=20that=20hold,=20and=20the=20L?= =?UTF-8?q?ocal=20=E2=86=92=20Telegram=20=E2=86=92=20Server=20route?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Audit fallout from condor-docs#8, README only: - "Switching modes keeps everything you had" was only true in one direction. Telegram → Local keeps your id and everything with it; a Local-only install adding a bot moves from user id 1 to the Telegram id, and per-user preferences and conversations stay behind. Said so. - New "Start local, grow later" block: add Telegram, add a server without moving Condor (the API host runs the bots — Settings → Servers works where /servers needs a bot), move Condor itself. - Closing port 8000 with ufw does not work: Docker's published ports bypass it. The provider firewall is the one that holds. - Troubleshooting: a post-update `make run` failing its frontend build means a stale node_modules — npm install, not npm ci, is the fix. Companion to #213 (make doctor + install UX) and hummingbot/condor-docs#8. Co-Authored-By: Claude Opus 5 (1M context) --- README.md | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bb76cb167..da2d0a586 100644 --- a/README.md +++ b/README.md @@ -123,12 +123,30 @@ dashboard. Local mode logs in as `ADMIN_USER_ID` — the same id `config.yml`, your servers, preferences and defaults already key on. `make setup` writes `ADMIN_USER_ID=1` for an install that never had a Telegram id; an install that has one **keeps -it**, so switching modes keeps everything you had. +it**, so a Telegram install switching to local keeps everything it had. Switching later is a `make setup` re-run — it shows the current mode and offers the other one — or editing `CONDOR_MODE` in `.env`. Your `TELEGRAM_TOKEN` is left in place either way, so switching back is one line. +**Start local, grow later.** The usual route is Local first, Telegram once you +want alerts reaching your phone, and a server once real capital is involved: + +- **Add Telegram:** re-run `make setup` and pick Telegram, with a bot token and + your user id. An install that never had Telegram runs as user id `1`, and + adding a bot switches your login to your Telegram id — configured servers + carry over, but dashboard preferences and agent conversations are keyed per + user and stay behind, so make this hop early. +- **Add a server without moving Condor:** bots and executors run on the + Hummingbot API host, so a laptop Condor driving a VPS API keeps strategies + running while the laptop sleeps. Deploy the API on the VPS with Tailscale + ([Install only Hummingbot API](#install-only-hummingbot-api)), then add it + under **Settings → Servers** in the dashboard (or `/servers` in Telegram). +- **Move Condor too:** install on the VPS the same way, then copy `.env`, + `config.yml`, `data/` and `condor/.runtime/` over from the old machine, and + stop the old install so two Condors are not driving the same accounts. Full + steps: [Start local, grow later](https://condor.hummingbot.org/getting-started/installing#start-local-grow-later). + A mode that cannot work stops at boot, in `make run`, naming the `.env` line to fix: telegram mode with no token, an `ADMIN_USER_ID` that is not a positive integer, or a local user who is not in `config.yml`. None of it is deferred to @@ -359,7 +377,7 @@ make tailscale-status # confirm hummingbot-api appears on your tailnet ### On the Condor machine 1. Install [Tailscale](https://tailscale.com/download) and sign in to the **same account** -2. In Telegram, open **`/servers`** and add the API with: +2. In Telegram, open **`/servers`** — or in Local mode, **Settings → Servers** in the dashboard — and add the API with: - **Host**: `hummingbot-api` (MagicDNS name, not a public IP) - **Port**: `8000` - **Username / Password**: same as the API `.env` @@ -406,7 +424,7 @@ tailscale status Both `condor` and `hummingbot-api` should appear as connected peers. -**Do not open port 8000 on your public firewall** when Tailscale is enabled. Allow SSH (port 22) for server administration only. +**Do not open port 8000 on your public firewall** when Tailscale is enabled. Allow SSH (port 22) for server administration only. Close 8000 in your **cloud provider's firewall / security group** rather than with `ufw`: Docker publishes the API's port on every interface, and published ports bypass `ufw` rules — a provider firewall is enforced off-host, so it actually holds. ## Troubleshooting @@ -420,6 +438,7 @@ Both `condor` and `hummingbot-api` should appear as connected peers. | Connection refused | Check server host:port in `/servers`; use `hummingbot-api` (not `localhost`) when API is on another machine via Tailscale | | Auth error | Verify server credentials match the API `.env` | | DEX features unavailable | Ensure Gateway is configured and running | +| After an update, `make run` fails building the frontend | A newly added frontend dependency is missing from a stale `node_modules` — `cd frontend && npm install`, then `make run` | | Tailscale: name `hummingbot-api` does not work | Enable **MagicDNS** in [Tailscale DNS settings](https://login.tailscale.com/admin/dns) | | Tailscale: can't reach API | Run `tailscale status` — confirm both peers are connected; on API server run `make tailscale-status` | | Tailscale: auth key rejected | Key must start with `tskey-auth-`, check expiry in Tailscale admin |