Skip to content

Commit 4231cc7

Browse files
committed
#2756 add documentation on windows proxy service
1 parent 33b4660 commit 4231cc7

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

docs/Usage/Windows-Service.md

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Windows System Service
2+
3+
This service is only included in full builds.
4+
5+
6+
The [`Xpra-Service.cpp`](https://github.com/Xpra-org/xpra/blob/master/packaging/MSWindows/service/Xpra-Service.cpp)
7+
is compiled into `Xpra-Service.exe` using `vscode` or just via `msbuild` during the build.
8+
9+
This service can be installed by running `./Xpra-Service.exe install`,
10+
then it can be managed from the GUI `services.msc` tool.
11+
It is not configured to start automatically. \
12+
Use `./Xpra-Service.exe uninstall` to unregister it.
13+
14+
The xpra `.exe` installer should have created the registry key `HKLM\Software\Xpra\InstallPath`,
15+
typically pointing to `C:\Program Files\Xpra`.
16+
17+
The `start` action for this service will run `Xpra-Proxy.exe start` from this `InstallPath`.
18+
19+
The `Xpra-Proxy.exe` scripts is a simple delegation wrapper ([source](https://github.com/Xpra-org/xpra/blob/master/xpra/platform/win32/scripts/proxy.py))
20+
packaged as a GUI application which just calls
21+
[`xpra.platform.win32.service`](https://github.com/Xpra-org/xpra/blob/master/xpra/platform/win32/service.py).
22+
23+
This service just starts an xpra proxy server using the hard-coded arguments:
24+
```shell
25+
Xpra proxy --bind-tcp=0.0.0.0:14500,auth=sys,client-username=true,verify-username=true
26+
```
27+
28+
The proxy will log to a file.
29+
The exact path of this log file can be obtained by querying the proxy server:
30+
```shell
31+
Xpra_cmd info tcp://localhost:14500/ | grep log-file
32+
```
33+
Normally, it should be `C:\Windows\System32\config\systemprofile\AppData\Local\Xpra\System-Proxy.log`
34+
35+
---
36+
37+
Work in progress: it isn't entirely clear which API the proxy
38+
is meant to use to start a new session, station and desktop once users
39+
have authenticated.
40+
At time of writing, the proxy server can only mediate for existing sessions,
41+
and only for `Administrators`.

0 commit comments

Comments
 (0)