You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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."
3
3
---
4
4
5
5
# Remote
6
6
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.
9
9
10
10
## Connection Methods
11
11
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"
13
13
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.
17
15
18
16
**Config:**
19
17
20
18
```javascript title="~/.config/eca/config.json"
21
19
{
22
20
"remote": {
23
21
"enabled": true,
24
-
"password": "something" // optional - or ${env:MY_PASS}
22
+
"password": "something" // optional — or ${env:MY_PASS}
25
23
}
26
24
}
27
25
```
28
26
29
27
**Steps:**
30
28
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:
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.
39
38
40
39
!!! 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.
43
42
44
-
=== "Tailscale / VPN"
43
+
=== "VPN / Tailscale"
45
44
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.
47
46
48
47
**Config:**
49
48
@@ -52,15 +51,15 @@ There are three ways to connect the web frontend to your ECA session. Pick the o
52
51
"remote": {
53
52
"enabled": true,
54
53
"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
56
55
}
57
56
}
58
57
```
59
58
60
59
**Steps:**
61
60
62
61
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:
3. Open `http://localhost:8080` and paste the connection URL
105
+
2. Open `http://localhost:8080` and connect to `localhost:7777`
115
106
116
-
All connection methods support the same config options:
107
+
## Config Options
117
108
118
109
```javascript title="~/.config/eca/config.json"
119
110
{
120
111
"remote": {
121
112
"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
125
116
"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}
127
118
"password":"my-secret-token"
128
119
}
129
120
}
@@ -133,6 +124,6 @@ All connection methods support the same config options:
133
124
134
125
The web frontend provides a connect form where you enter the host and password (or use the deep-link URL logged by ECA).
135
126
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.
137
128
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.
0 commit comments