From e587256086997a784007a69d8a7fd56881d0a9b1 Mon Sep 17 00:00:00 2001 From: Anso Date: Tue, 31 Mar 2026 12:45:07 -0400 Subject: [PATCH] feat(multi-node): warn when configuring remote node with plain HTTP URL (#292) Show an inline warning banner in the Add Node form when the user enters an http:// URL, recommending HTTPS or VPN for public internet connections. HTTP remains fully supported for private networks (LAN, VPN, VPC). Also returns an optional `warning` field in POST/PUT /api/nodes responses for API-only consumers, and expands the multi-node security documentation with concrete deployment guidance (reverse proxy, VPN, private network). --- CHANGELOG.md | 4 + backend/src/index.ts | 17 ++++- docs/features/multi-node.mdx | 94 +++++++++++++++++++++++- docs/images/multi-node/http-warning.png | Bin 0 -> 55201 bytes frontend/src/components/NodeManager.tsx | 13 +++- 5 files changed, 121 insertions(+), 7 deletions(-) create mode 100644 docs/images/multi-node/http-warning.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 84a8db92..5b266afc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 * **scheduled-ops:** prune label filter — scheduled system prune operations can be scoped to resources matching a specific Docker label (e.g. `com.docker.compose.project=mystack`) * **scheduled-ops:** CSV export for execution history — one-click download of the full run history from the execution history panel +### Changed + +* **multi-node:** show inline warning when configuring a remote node with an HTTP URL — recommends HTTPS or VPN for public internet connections; HTTP remains fully supported for private networks + ### Fixed * **fleet:** "Open in Editor" button in Fleet View's stack drill-down now correctly navigates to the stack editor instead of the dashboard. Also passes the stack name through the callback chain so the correct file is loaded. diff --git a/backend/src/index.ts b/backend/src/index.ts index 1da03b98..e3133144 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -4493,7 +4493,14 @@ app.post('/api/nodes', async (req: Request, res: Response) => { api_token: api_token || '', }); - res.json({ success: true, id }); + const isPlainHttp = type === 'remote' && api_url && api_url.startsWith('http://'); + res.json({ + success: true, + id, + ...(isPlainHttp && { + warning: 'This node uses plain HTTP. Use HTTPS or a VPN for connections over the public internet.' + }) + }); } catch (error: any) { if (error.message?.includes('UNIQUE constraint')) { return res.status(409).json({ error: 'A node with that name already exists' }); @@ -4527,7 +4534,13 @@ app.put('/api/nodes/:id', async (req: Request, res: Response) => { // Evict cached Docker connection so it reconnects with new config NodeRegistry.getInstance().evictConnection(id); - res.json({ success: true }); + const isPlainHttp = updates.api_url && updates.api_url.startsWith('http://'); + res.json({ + success: true, + ...(isPlainHttp && { + warning: 'This node uses plain HTTP. Use HTTPS or a VPN for connections over the public internet.' + }) + }); } catch (error: any) { console.error('Failed to update node:', error); res.status(500).json({ error: error.message || 'Failed to update node' }); diff --git a/docs/features/multi-node.mdx b/docs/features/multi-node.mdx index e8dc9441..b8f68b4e 100644 --- a/docs/features/multi-node.mdx +++ b/docs/features/multi-node.mdx @@ -77,8 +77,94 @@ Node status indicators: Click the **pencil icon** on any remote node row to edit its name, URL, or token. Click the **trash icon** to remove it. The local node cannot be edited or deleted. -## Security considerations +## Security -- Node tokens grant full control over the remote Sencho instance. Rotate them if compromised via Settings → Nodes → Generate Token (the old token is invalidated). -- Use HTTPS between instances in production to prevent token interception. -- The host console and container exec terminals are blocked for node-proxy tokens - interactive shell access always requires a real browser session on that instance. +### Token security + +Node tokens are long-lived JWTs that grant full control over the remote Sencho instance. Treat them like passwords: + +- **Rotate immediately** if a token is compromised: Settings → Nodes → Generate Token on the remote instance. The old token is invalidated instantly. +- Tokens are **encrypted at rest** using AES-256-GCM in Sencho's SQLite database. Even if the database file is extracted, the tokens cannot be read without the instance's encryption key. +- Tokens are scoped to `node_proxy` — they cannot access the host console or container exec terminals. Interactive shell access always requires a real browser session on that specific instance. + +### Transport encryption + +Sencho delegates transport encryption to your infrastructure rather than implementing TLS at the application layer. This is the same approach used by [Dockge](https://github.com/louislam/dockge) and other self-hosted tools — it avoids certificate management burden while letting you use the encryption layer that best fits your environment. + + + **Never send node tokens over plain HTTP across the public internet.** A token intercepted in transit grants full control of the remote instance. Always use one of the approaches below when nodes communicate over untrusted networks. + + +Sencho shows an inline warning when you enter an HTTP URL in the Add Node form as a reminder: + + + Add Node form showing an inline warning when an HTTP URL is entered + + +There are three recommended approaches depending on your deployment: + +#### Private network (LAN or VPC) + +If all your Sencho instances are on the same local network, VPC, or subnet — HTTP is perfectly fine. The token never leaves the private network, so there is no interception risk. + +``` +http://192.168.1.50:3000 ← safe on a private LAN +http://10.0.1.20:3000 ← safe inside a VPC +``` + +#### VPN tunnel (WireGuard, Tailscale) + + + This is the simplest approach for connecting nodes across the internet. A VPN encrypts all traffic between your servers at the network layer — no certificate management required. + + +With a mesh VPN like [Tailscale](https://tailscale.com) or [WireGuard](https://www.wireguard.com/), each server gets a private IP on the VPN. Use those IPs as your Sencho API URLs: + +``` +http://100.64.0.2:3000 ← Tailscale IP, encrypted by the VPN tunnel +``` + +All traffic between nodes is encrypted by the VPN — Sencho does not need to do anything additional. + +#### Reverse proxy (Caddy, Nginx, Traefik) + +If you prefer TLS termination at each node, place a reverse proxy in front of each Sencho instance. [Caddy](https://caddyserver.com/) is the simplest option — it auto-provisions HTTPS certificates from Let's Encrypt with zero configuration: + + +```text Caddyfile +sencho.example.com { + reverse_proxy localhost:3000 +} +``` + +```nginx nginx.conf +server { + listen 443 ssl; + server_name sencho.example.com; + + ssl_certificate /etc/letsencrypt/live/sencho.example.com/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/sencho.example.com/privkey.pem; + + location / { + proxy_pass http://localhost:3000; + proxy_set_header Host $host; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + } +} +``` + + +Then use the HTTPS URL when adding the remote node: + +``` +https://sencho.example.com ← TLS terminated by Caddy/Nginx +``` + +### Why Sencho doesn't implement application-layer TLS + +Some tools auto-generate self-signed TLS certificates between their server and agents (e.g. Portainer's standard agent). In practice, this provides minimal security benefit — the certificates are self-signed with no verification, meaning they don't protect against man-in-the-middle attacks. It is effectively security theater. + +Sencho takes a deliberate approach: infrastructure-level encryption (VPN, reverse proxy, or private networking) is more robust, easier to manage, and doesn't impose certificate rotation burden on the user. This is the same model used by Dockge, Yacht, and other self-hosted orchestrators. diff --git a/docs/images/multi-node/http-warning.png b/docs/images/multi-node/http-warning.png new file mode 100644 index 0000000000000000000000000000000000000000..48351e7ec82ca762adc2ceb1212c44ac37fd2ac3 GIT binary patch literal 55201 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 The base URL of the Sencho instance running on the remote machine.

+ {formData.api_url.startsWith('http://') && ( +
+
+ +

+ This URL uses plain HTTP. If this node is reachable over the public internet, use HTTPS + or a VPN to prevent token interception. HTTP is fine for private networks (LAN, VPN, VPC). +

+
+
+ )}