Skip to content

Commit bba4723

Browse files
authored
v2.0.0 (#14)
* feat: update docs * feat: update docs * feat: add opkssh docs * feat: improve opkssh docs * feat: improve opkssh docs * feat: update docs * feat: update docs * feat: update docs * feat: update docs * feat: update docs * feat: update docs * feat: update docs * feat: update docs * feat: update docs * feat: update docs * feat: update docs * feat: update docs * feat: update docs * feat: update docs * feat: update docs
1 parent 79e532c commit bba4723

File tree

11 files changed

+1780
-1279
lines changed

11 files changed

+1780
-1279
lines changed
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
id: delete-all-hosts-in-a-folder
3+
title: "Delete all hosts in a folder"
4+
description: "Deletes all hosts within a specific folder."
5+
sidebar_label: "Delete all hosts in a folder"
6+
hide_title: true
7+
hide_table_of_contents: true
8+
api: eJyVVE1v1DAQ/SvWnECyNoG2IOVW1FYtAoS6RRxWOcwmk8aqY6f2pHQV5b+jSULZdpdqOcUfb15mxvNeDyXFIpiWjXeQwRlZYooKrVW1jxzVL8O1cQpVbKkwlSlU5W1JYQEaGG8jZCtYLi8h19BiwIaYghz2YISwRa5Bg8OGIIMp9JtsNAS670ygEjIOHWmIRU0NQtYDb1pBRw7G3cIw5AKOrXeRoty/T1P5PE/99CnlciyiVLErCoqx6qzdLGDQcLwv7so9oDXlXJaSTEfwyT7wBRpLpWI//2T64wKGQUNDXPsSMpiuQE/FZ5DEWCcTfUz6vz0YkjEaNEQKD3/a1gULGdTMbZYk1hdoBZUdpWn6DvSLfL6icapExjVGUuhKhR3X5NgUKBA1McOgXyU+2iFeLi8Vd86RVQ06vKWGHB/IdryXrTKWZq5wINHJLtEYpyIjm8imiGPNjXeGvQzLgcQfdojPMNZrj6E8kOHjLoMv7ijs61YuD1x0wfBmfOE1YaBw2slwrPLt66VIYJrxbdCTIiQVmJUi+wkEel5c+NAgQwaff96MI2lc5cdww1bwNxQa86hOv1+BBpm4KfV0kS7SnYJm8Ccs7siVEqSuqaJAriARSOsjN+iEf5b35B5b5jEaxzTwL+l7KLxjcvz/rjP1gumRk9aicZLM+FT9rLgVxCiuM2sONGTPnGeSXT4tBN73op8fwQ6DHN93FOSpcg0PGAyupXmrHkoTZV1CVqGN9EpFb65nc3ur/pXxfIhuI2+BtpMdaLijzXOnHPJtczk7/3J+cw7D8ButfPSj
9+
sidebar_class_name: "delete api-method"
10+
info_path: api/termix-api
11+
custom_edit_url: null
12+
---
13+
14+
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
15+
import ParamsDetails from "@theme/ParamsDetails";
16+
import RequestSchema from "@theme/RequestSchema";
17+
import StatusCodes from "@theme/StatusCodes";
18+
import OperationTabs from "@theme/OperationTabs";
19+
import TabItem from "@theme/TabItem";
20+
import Heading from "@theme/Heading";
21+
22+
<Heading
23+
as={"h1"}
24+
className={"openapi__heading"}
25+
children={"Delete all hosts in a folder"}
26+
>
27+
</Heading>
28+
29+
<MethodEndpoint
30+
method={"delete"}
31+
path={"/ssh/folders/{folderName}/hosts"}
32+
context={"endpoint"}
33+
>
34+
35+
</MethodEndpoint>
36+
37+
38+
39+
Deletes all hosts within a specific folder.
40+
41+
<Heading
42+
id={"request"}
43+
as={"h2"}
44+
className={"openapi-tabs__heading"}
45+
children={"Request"}
46+
>
47+
</Heading>
48+
49+
<ParamsDetails
50+
parameters={[{"in":"path","name":"folderName","required":true,"schema":{"type":"string"}}]}
51+
>
52+
53+
</ParamsDetails>
54+
55+
<RequestSchema
56+
title={"Body"}
57+
body={undefined}
58+
>
59+
60+
</RequestSchema>
61+
62+
<StatusCodes
63+
id={undefined}
64+
label={undefined}
65+
responses={{"200":{"description":"All hosts deleted successfully."},"400":{"description":"Invalid folder name."},"500":{"description":"Failed to delete hosts."}}}
66+
>
67+
68+
</StatusCodes>
69+
70+
71+
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
---
2+
id: get-guacamole-settings
3+
title: "Get Guacamole settings"
4+
description: "Returns current guacd enabled status and host:port URL. No authentication required."
5+
sidebar_label: "Get Guacamole settings"
6+
hide_title: true
7+
hide_table_of_contents: true
8+
api: eJy1VMFu1DAQ/RVrzmY3UApSbkXQAgKE2q44rPYw60wTt4md2uOqVbT/jsbZlmWzQnshl0TxzPPzvPc8QEXRBNuz9Q5KuCROwUVlUgjkWNUJTaXI4bqlSkVGTlGhq1TjI5e9D6wWl99m6odXmLghx9agYKlA98kGqmaggbGOUC5hESlEWGkIFHvvIkUoB3hTFPL6m8hFQoOdb0lFYraujgJkvGNyLOXY9+12r/ltlJ4BommoQ/nip56gBL++JcOgoQ++p8B23HF7np3CtfctoYONhhTanYXIwboaNvnRcHqI6zlamQ57VdM4sn3m0toRN76CEmrKjJAbKGGeZCbzl6ZXz02gIVJ4kIGVy2FkBQ1zX87nrTfYZgVOiqJ4DXqP0He0TlXIuMZIWa49cUZk2Oh/Ap9MgK+uPitOzlGrOnRYUycmOQ7t7UG0G9vSFiscCXQ6Bcp92Z42sjWjRTvvLHuR70jgdxPgjxibtcdQHYnwforgzR2FQ9NaicAmBctPWeE1YaBwlsQWy9Xu8pXYenTubtGLR4WK2CWXiZlzEejtx7kPHTKU8PXXdXaidTc+t1tupf6aQmcf1dnPL6BBHDdSL2bFrJgcaFv8Ac0duUqa1CXdUCBnSOLT+8gd5jg6zHQuiNU0zvvAw59w/69baJwW0yPP+xbtbtrHNC4hpxE0HMjjSoNsJ1XDIMFahHazkd/3iYJouNLwgMEKyyyhhoawopDlvaMnKOHMGOol/g/YJmEzucZE+Jer4uKTKPYbfsf0VQ==
9+
sidebar_class_name: "get api-method"
10+
info_path: api/termix-api
11+
custom_edit_url: null
12+
---
13+
14+
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
15+
import ParamsDetails from "@theme/ParamsDetails";
16+
import RequestSchema from "@theme/RequestSchema";
17+
import StatusCodes from "@theme/StatusCodes";
18+
import OperationTabs from "@theme/OperationTabs";
19+
import TabItem from "@theme/TabItem";
20+
import Heading from "@theme/Heading";
21+
22+
<Heading
23+
as={"h1"}
24+
className={"openapi__heading"}
25+
children={"Get Guacamole settings"}
26+
>
27+
</Heading>
28+
29+
<MethodEndpoint
30+
method={"get"}
31+
path={"/users/guacamole-settings"}
32+
context={"endpoint"}
33+
>
34+
35+
</MethodEndpoint>
36+
37+
38+
39+
Returns current guacd enabled status and host:port URL. No authentication required.
40+
41+
<ParamsDetails
42+
parameters={undefined}
43+
>
44+
45+
</ParamsDetails>
46+
47+
<RequestSchema
48+
title={"Body"}
49+
body={undefined}
50+
>
51+
52+
</RequestSchema>
53+
54+
<StatusCodes
55+
id={undefined}
56+
label={undefined}
57+
responses={{"200":{"description":"Guacamole settings.","content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"url":{"type":"string"}}}}}},"500":{"description":"Failed to get guacamole settings."}}}
58+
>
59+
60+
</StatusCodes>
61+
62+
63+
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
id: update-guacamole-settings
3+
title: "Update Guacamole settings"
4+
description: "Admin-only. Updates guacd enabled status and/or host:port URL."
5+
sidebar_label: "Update Guacamole settings"
6+
hide_title: true
7+
hide_table_of_contents: true
8+
api: eJytVE1P20AQ/SurOS+JW6CVfAu0lFZthSBRD1EOE3uIF+xdszumpFb+ezVrAwmOqhzqQ2J73zzPx3vTQk4h86Zm4yykMMkrY4+cLdcjNatzZApq1WCWK7K4LClXgZGboNDmY+dV4QKntfOsZtffR6CBcRUgncMskA+w0ODpoaHAZy5fQ9rGR+Mph5R9QxoyZ5ksyxHWdWkylEzGd0HSaSFkBVUod7yuCVJwyzvKGDTU3tXk2VCQ0z67LeDSuZLQwkZD48utg8De2BVs4iX5hdrZ0NG8TxL52+3JlwYzrFxJKhCzsaugmtiafCTsJ8nxMOanY4UNF86bPz3udB/3BRppKrueMjZ792MjkDQr4sLlkEKNnBVSP3IBKYwbafT4JezoOQw0BPKPMoV03nY9gIK5Tsfj0mVYxtEdJ0nyDvSbrH6gsSpHxiUGklHHWshyPx7VMcNG/5P4eEB8c3OpuLGWSlWhxRVVZPlAtpO9bLempJ7LH0h0OiSKcVHaJrDJorxV5axhJ2I5kPjDgPgThmLp0OcHMnwcMrjsnvy+bi1kwFnjDa/jhJeEnvykEVnMF9vHN2KiTuDboBdHSCoilwgT60QQ6P7mwvkKGVL49msatSjmvH619ecnrOqSdmzYmbur9NlwGoy9dfG7hgUPU/KVeVKTq6+gQaTa1ZyMklEy6EQPPsPsnmwuQeqabsmTzUjIaxe4wrg1LMY6ugWmhv59y92+rqH/sAG7pjI98bgu0WyvoM60c4imBQ17bLvQIJSCalvx38yXm428fmjIy6gXGh7RG0kmTlpDQZiTjyq4pzWkcN6VczSVXAReNpLTYMOKSl42y9Vken4pU+9XdeVyCfL4G3T8TQE0uNizKKb4roUS7arBlWA7Urn+AkhWMJs=
9+
sidebar_class_name: "patch api-method"
10+
info_path: api/termix-api
11+
custom_edit_url: null
12+
---
13+
14+
import MethodEndpoint from "@theme/ApiExplorer/MethodEndpoint";
15+
import ParamsDetails from "@theme/ParamsDetails";
16+
import RequestSchema from "@theme/RequestSchema";
17+
import StatusCodes from "@theme/StatusCodes";
18+
import OperationTabs from "@theme/OperationTabs";
19+
import TabItem from "@theme/TabItem";
20+
import Heading from "@theme/Heading";
21+
22+
<Heading
23+
as={"h1"}
24+
className={"openapi__heading"}
25+
children={"Update Guacamole settings"}
26+
>
27+
</Heading>
28+
29+
<MethodEndpoint
30+
method={"patch"}
31+
path={"/users/guacamole-settings"}
32+
context={"endpoint"}
33+
>
34+
35+
</MethodEndpoint>
36+
37+
38+
39+
Admin-only. Updates guacd enabled status and/or host:port URL.
40+
41+
<Heading
42+
id={"request"}
43+
as={"h2"}
44+
className={"openapi-tabs__heading"}
45+
children={"Request"}
46+
>
47+
</Heading>
48+
49+
<ParamsDetails
50+
parameters={undefined}
51+
>
52+
53+
</ParamsDetails>
54+
55+
<RequestSchema
56+
title={"Body"}
57+
body={{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"enabled":{"type":"boolean"},"url":{"type":"string"}}}}}}}
58+
>
59+
60+
</RequestSchema>
61+
62+
<StatusCodes
63+
id={undefined}
64+
label={undefined}
65+
responses={{"200":{"description":"Guacamole settings updated."},"403":{"description":"Not authorized."},"500":{"description":"Failed to update guacamole settings."}}}
66+
>
67+
68+
</StatusCodes>
69+
70+
71+

docs/environment-variables.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,14 @@ See [OIDC](/oidc#environment-variables) for complete setup instructions.
4242
|----------|---------|-------------|
4343
| `DB_FILE_ENCRYPTION` | `true` | Enable SQLite database file encryption |
4444

45+
## Guacamole Configuration
46+
47+
| Variable | Default | Description |
48+
|----------|---------|-------------|
49+
| `ENABLE_GUACAMOLE` | `true` | Enable/disable Guacamole remote desktop support (`false` to disable) |
50+
| `GUACD_HOST` | `localhost` | Guacamole daemon (guacd) hostname |
51+
| `GUACD_PORT` | `4822` | Guacamole daemon (guacd) port |
52+
4553
## Docker Configuration
4654

4755
| Variable | Default | Description |

docs/features.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@ Enable it in `User Profile`, then refresh to see tabs stay.
8686

8787
See [SSL](https://docs.termix.site/ssl).
8888

89+
## Remote Desktop (RDP/VNC/Telnet)
90+
91+
See [Remote Desktop](/remote-desktop).
92+
8993
## Support
9094

9195
If you need help or want to request a feature with Termix, visit the [Issues](https://github.com/Termix-SSH/Support/issues) page, log in, and press `New Issue`.
Lines changed: 57 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,14 @@
1+
import Tabs from '@theme/Tabs';
2+
import TabItem from '@theme/TabItem';
3+
14
# Docker
25

36
The simplest way to get Termix server up and running is with Docker.
47

5-
## Docker Run Installation
6-
7-
```bash
8-
# Step 1: Create the volume
9-
docker volume create termix-data
10-
11-
# Step 2: Run the container
12-
docker run -d \
13-
--name termix \
14-
--restart unless-stopped \
15-
-p 8080:8080 \
16-
-v termix-data:/app/data \
17-
-e PORT=8080 \
18-
ghcr.io/lukegus/termix:latest
19-
```
8+
## Installation
209

21-
## Docker Compose Installation
22-
23-
For a more comprehensive setup, you can use Docker Compose:
10+
<Tabs defaultValue="guacd">
11+
<TabItem value="guacd" label="Docker Compose with guacd (Recommended)">
2412

2513
```yaml
2614
services:
@@ -34,38 +22,42 @@ services:
3422
- termix-data:/app/data
3523
environment:
3624
PORT: '8080'
25+
depends_on:
26+
- guacd
27+
networks:
28+
- termix-net
29+
30+
guacd:
31+
image: guacamole/guacd:latest
32+
container_name: guacd
33+
restart: unless-stopped
34+
ports:
35+
- "4822:4822"
36+
networks:
37+
- termix-net
3738

3839
volumes:
3940
termix-data:
4041
driver: local
41-
```
4242

43-
To start the container, run:
44-
45-
```bash
46-
docker-compose up -d
43+
networks:
44+
termix-net:
45+
driver: bridge
4746
```
4847
49-
## Docker Hub Mirror
50-
51-
As an alternative to GHCR, you can also use the Docker Hub mirror:
48+
To start the containers, run:
5249
5350
```bash
54-
docker run -d \
55-
--name termix \
56-
--restart unless-stopped \
57-
-p 8080:8080 \
58-
-v termix-data:/app/data \
59-
-e PORT=8080 \
60-
bugattiguy527/termix:latest
51+
docker-compose up -d
6152
```
6253

63-
Or with Docker Compose:
54+
</TabItem>
55+
<TabItem value="compose" label="Docker Compose">
6456

6557
```yaml
6658
services:
6759
termix:
68-
image: bugattiguy527/termix:latest
60+
image: ghcr.io/lukegus/termix:latest
6961
container_name: termix
7062
restart: unless-stopped
7163
ports:
@@ -80,6 +72,36 @@ volumes:
8072
driver: local
8173
```
8274
75+
To start the container, run:
76+
77+
```bash
78+
docker-compose up -d
79+
```
80+
81+
</TabItem>
82+
<TabItem value="run" label="Docker Run">
83+
84+
```bash
85+
# Step 1: Create the volume
86+
docker volume create termix-data
87+
88+
# Step 2: Run the container
89+
docker run -d \
90+
--name termix \
91+
--restart unless-stopped \
92+
-p 8080:8080 \
93+
-v termix-data:/app/data \
94+
-e PORT=8080 \
95+
ghcr.io/lukegus/termix:latest
96+
```
97+
98+
</TabItem>
99+
</Tabs>
100+
101+
## Docker Hub Mirror
102+
103+
As an alternative to GHCR, you can also use the Docker Hub mirror by replacing `ghcr.io/lukegus/termix:latest` with `bugattiguy527/termix:latest` in any of the configurations above.
104+
83105
## Specific Version
84106

85107
To download a specific Docker image, you can visit [GitHub](https://github.com/users/LukeGus/packages/container/package/termix) and replace your Docker tag with one of items listed in the table.

0 commit comments

Comments
 (0)