Skip to content

Commit 29e85ff

Browse files
committed
docs
1 parent 3f97f1f commit 29e85ff

2 files changed

Lines changed: 32 additions & 41 deletions

File tree

docs/config/remote.md

Lines changed: 31 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,48 @@
11
---
2-
description: "Configure ECA Remote: control your ECA session from a web browser via Tailscale or LAN."
2+
description: "Configure ECA Remote: control your ECA session from a web browser."
33
---
44

55
# Remote
66

7-
ECA Remote lets you control, approve, observe your ECA session from a web browser.
8-
When enabled, ECA starts an embedded HTTP server that a web frontend can connect to in real-time, from [web.eca.dev](https://web.eca.dev) or a hosted eca-web.
7+
ECA Remote lets you control, approve, and observe your ECA session from a web browser.
8+
When enabled, ECA starts an embedded HTTPS server that the web frontend at [web.eca.dev](https://web.eca.dev) connects to in real-time.
99

1010
## Connection Methods
1111

12-
There are three ways to connect the web frontend to your ECA session. Pick the one that fits your setup.
12+
=== "LAN / Private IPs"
1313

14-
=== "Direct (LAN / Private IP)"
15-
16-
The simplest approach — connect directly from `https://web.eca.dev` to your machine's private IP - this only works if using a Chrome based browser as other browsers block https -> http requests.
14+
The simplest approach — connect directly from `https://web.eca.dev` to your machine on the local network. Works in all browsers with no extra setup.
1715

1816
**Config:**
1917

2018
```javascript title="~/.config/eca/config.json"
2119
{
2220
"remote": {
2321
"enabled": true,
24-
"password": "something" // optional - or ${env:MY_PASS}
22+
"password": "something" // optional or ${env:MY_PASS}
2523
}
2624
}
2725
```
2826

2927
**Steps:**
3028

31-
1. Start ECA — it will log the connection URL and auth token to stderr. The URL is a deep-link you can open directly:
29+
1. Start ECA — it logs a connection URL you can open directly:
3230

3331
```
34-
https://web.eca.dev?host=192.168.1.42:7777&pass=a3f8b2c1...&protocol=http
32+
https://web.eca.dev?host=192-168-1-42.local.eca.dev:7777&pass=a3f8b&protocol=https
3533
```
3634

37-
2. Open `https://web.eca.dev` and enter your machine's LAN IP (e.g. `192.168.1.42`) and password
38-
3. Chrome will show a **Local Network Access** permission prompt — click **Allow**
35+
2. Or open `https://web.eca.dev`, enter your machine's LAN IP (e.g. `192.168.1.42`) and password — the web UI automatically resolves it to the secure `*.local.eca.dev` hostname.
36+
37+
ECA ships with a TLS certificate for `*.local.eca.dev`. On startup, the server detects your LAN IP and serves HTTPS using a hostname like `192-168-1-42.local.eca.dev`, which resolves back to your IP via [sslip.io](https://sslip.io) DNS. This gives you a valid HTTPS connection to a private IP — no mixed-content blocking, no browser prompts.
3938

4039
!!! note "Firewall"
41-
Make sure your firewall allows incoming TCP connections on ports `7777`–`7796` (the default ECA port range) from your LAN.
42-
ECA starts using `7777` and increments for each server running on your machine.
40+
Make sure your firewall allows incoming TCP on ports `7777`–`7796` from your LAN.
41+
ECA uses port `7777` by default and increments if busy.
4342

44-
=== "Tailscale / VPN"
43+
=== "VPN / Tailscale"
4544

46-
For a seamless HTTPS-to-HTTPS connection with no browser prompts. [Tailscale](https://tailscale.com) (free) creates a secure private network between your devices with valid HTTPS certificates.
45+
For connecting from outside your LAN. [Tailscale](https://tailscale.com) (free) creates a secure private network between your devices with valid HTTPS certificates.
4746

4847
**Config:**
4948

@@ -52,15 +51,15 @@ There are three ways to connect the web frontend to your ECA session. Pick the o
5251
"remote": {
5352
"enabled": true,
5453
"password": "something-here",
55-
"host": "my-machine.tail1234.ts.net" // optional - just to get url easily when starting
54+
"host": "my-machine.tail1234.ts.net" // optional — used in the connect URL
5655
}
5756
}
5857
```
5958

6059
**Steps:**
6160

6261
1. Install Tailscale and enable [HTTPS certificates](https://tailscale.com/kb/1153/enabling-https)
63-
2. Expose the ECA port range via Tailscale HTTPS serve so they are reachable over your tailnet:
62+
2. Expose ECA's port via Tailscale HTTPS serve:
6463

6564
```bash
6665
sudo tailscale serve --bg --https 7777 http://localhost:7777
@@ -70,21 +69,19 @@ There are three ways to connect the web frontend to your ECA session. Pick the o
7069

7170
!!! warning "Use `--https`, not `--tcp`"
7271
`--tcp` creates a raw TCP proxy that browsers cannot connect to.
73-
`--https` creates a proper HTTPS reverse proxy with valid certificates, which is required for browser-based access from `web.eca.dev`.
72+
`--https` creates a proper HTTPS reverse proxy with valid certificates.
7473

75-
3. Start ECA — it will log the connection URL and auth token to stderr. The URL is a deep-link you can open directly:
74+
3. Start ECA — it logs a connection URL you can open directly:
7675

7776
```
78-
https://web.eca.dev?host=my-machine.tail1234.ts.net:7777&pass=a3f8b2c1...&protocol=https
77+
https://web.eca.dev?host=my-machine.tail1234.ts.net:7777&pass=a3f8b&protocol=https
7978
```
8079

81-
4. Open `https://web.eca.dev` and paste the connection URL or manually enter host and password
82-
83-
Because Tailscale provides valid HTTPS certificates for your machine, the browser connects without any mixed-content issues or permission prompts.
80+
4. Open `https://web.eca.dev` and enter your Tailscale hostname and password
8481

8582
=== "Local Docker"
8683

87-
If you prefer to keep everything over plain HTTP, you can run the web frontend locally. This avoids all browser security restrictions.
84+
Run the web frontend locally over HTTP — useful for development or restricted environments.
8885

8986
**Config:**
9087

@@ -99,31 +96,25 @@ There are three ways to connect the web frontend to your ECA session. Pick the o
9996

10097
**Steps:**
10198

102-
1. Run the web frontend locally via Docker, usually on the same machine where the server is running:
99+
1. Run the web frontend locally via Docker:
103100

104101
```bash
105102
docker run --pull=always -p 8080:80 ghcr.io/editor-code-assistant/eca-web
106103
```
107104

108-
2. Start ECA — it will log the connection URL and auth token to stderr. The URL is a deep-link you can open directly:
109-
110-
```
111-
http://localhost:8080?host=localhost:7777&pass=a3f8b2c1...&protocol=http
112-
```
113-
114-
3. Open `http://localhost:8080` and paste the connection URL
105+
2. Open `http://localhost:8080` and connect to `localhost:7777`
115106

116-
All connection methods support the same config options:
107+
## Config Options
117108

118109
```javascript title="~/.config/eca/config.json"
119110
{
120111
"remote": {
121112
"enabled": true,
122-
// optional — useful for specifying custom dns like tailscale or your local ip, just for logging purposes in stderr/welcome message
123-
"host": "192.168.1.42",
124-
// optional — defaults to 7777 (auto-increments until 7796 if busy)
113+
// optional — override the hostname in the connect URL (e.g. Tailscale DNS)
114+
"host": "my-machine.tail1234.ts.net",
115+
// optional — defaults to 7777, auto-increments up to 7796 if busy
125116
"port": 9876,
126-
// optional — a random pass is auto-generated when unset, you can use ${env:...}
117+
// optional — auto-generated when unset, supports ${env:MY_PASS}
127118
"password": "my-secret-token"
128119
}
129120
}
@@ -133,6 +124,6 @@ All connection methods support the same config options:
133124

134125
The web frontend provides a connect form where you enter the host and password (or use the deep-link URL logged by ECA).
135126

136-
**Auto-discovery** — When you enter a host and click "Discover", the web UI scans ports `7777``7796` in parallel and finds all running ECA instances automatically. This is the default port range ECA uses when auto-assigning ports.
127+
**Auto-discovery** — When you enter a host and click "Discover & Connect", the web UI scans ports `7777``7796` in parallel and finds all running ECA instances automatically.
137128

138-
**Multi-session** — You can connect to multiple ECA instances simultaneously. Each connection appears as a tab in the top bar, letting you switch between sessions.
129+
**Multi-session** — You can connect to multiple ECA instances simultaneously. Each connection appears as a tab in the top bar.

scripts/make.clj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,4 +155,4 @@
155155
(fs/copy f "docs" {:replace-existing true}))
156156
(fs/copy-tree "images" "docs/images" {:replace-existing true})
157157
(p/shell "docker login docker.pkg.github.com")
158-
(p/shell (str "docker run --rm -it -p 8000:8000 -v " (fs/cwd) ":/docs ghcr.io/editor-code-assistant/docs-image/docs-image"))))
158+
(p/shell (str "docker run --rm -it --network=host -v " (fs/cwd) ":/docs ghcr.io/editor-code-assistant/docs-image/docs-image"))))

0 commit comments

Comments
 (0)