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
Copy file name to clipboardExpand all lines: docs/deployment/README.en.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ The current code supports:
13
13
- a `24` hour IP ban after `3` failed passphrase attempts within `10` minutes
14
14
- server-side single-root restrictions through `rootPath`
15
15
- authentication on both `HTTP RPC` and `WebSocket`
16
-
-HTTPS-required passphrase submission for non-local hosts
16
+
- passphrase submission over either HTTP or HTTPS for non-local hosts
17
17
- local access on `localhost`, `127.0.0.1`, and `::1` defaults to non-public mode
18
18
- local access with `?auth=force` explicitly forces public mode
19
19
@@ -28,7 +28,7 @@ Recommended structure:
28
28
Why this is recommended:
29
29
30
30
- the application process does not terminate TLS itself
31
-
-non-local login requires secure transport
31
+
-HTTPS avoids sending the passphrase and session cookie over a clear-text network path
32
32
- a reverse proxy is the right place for certificates, domains, and public ingress
33
33
34
34
## Configuration File
@@ -91,13 +91,13 @@ Recommended production values:
91
91
That means:
92
92
93
93
- the app only listens locally
94
-
-all public traffic must come through an HTTPS reverse proxy
94
+
- public traffic is easier to control through a reverse proxy
95
95
96
96
If you explicitly want the process to listen beyond loopback, you can set:
97
97
98
98
-`bindHost`: `0.0.0.0`
99
99
100
-
But even then, public access should still sit behind an HTTPS reverse proxy because the app does not provide TLS directly.
100
+
But even then, public access should still sit behind an HTTPS reverse proxy because the app does not provide TLS directly, and plain HTTP would expose the passphrase plus a non-`Secure` session cookie on the wire.
101
101
102
102
## Reverse Proxy Requirements
103
103
@@ -108,7 +108,7 @@ Your proxy should forward:
108
108
-`X-Forwarded-For`
109
109
-`X-Forwarded-Proto`
110
110
111
-
`X-Forwarded-Proto=https`is especially important because the app uses it to decide whether secure transport is in place.
111
+
If the proxy terminates HTTPS, keep forwarding `X-Forwarded-Proto=https`so the runtime can mark the returned session cookie as `Secure`.
112
112
113
113
## Caddy Example
114
114
@@ -150,7 +150,7 @@ server {
150
150
3. Set the access passphrase
151
151
4. Override `rootPath`, `bindHost`, or `bindPort` only if you need non-default values
152
152
5. Start or restart the app
153
-
6. Configure an HTTPS reverse proxy to `bindHost:bindPort`
153
+
6. Configure a reverse proxy to `bindHost:bindPort` as needed, with HTTPS still recommended for public ingress
154
154
7. Open your domain and verify the login screen appears first
0 commit comments