diff --git a/apps/rustdesk-server/app.json b/apps/rustdesk-server/app.json new file mode 100644 index 0000000..a4ea950 --- /dev/null +++ b/apps/rustdesk-server/app.json @@ -0,0 +1,14 @@ +{ + "id": "rustdesk-server", + "name": "RustDesk Server", + "description": "Self-hosted RustDesk ID and relay server for remote desktop clients", + "category": "Remote Access", + "iconName": "monitor", + "latestVersion": "1.0.0", + "versions": ["1.0.0"], + "maintainer": "serve.zone", + "links": { + "Website": "https://rustdesk.com/", + "Docs": "https://rustdesk.com/docs/en/self-host/rustdesk-server-oss/docker/" + } +} diff --git a/apps/rustdesk-server/versions/1.0.0/config.json b/apps/rustdesk-server/versions/1.0.0/config.json new file mode 100644 index 0000000..508d4cf --- /dev/null +++ b/apps/rustdesk-server/versions/1.0.0/config.json @@ -0,0 +1,17 @@ +{ + "image": "rustdesk/rustdesk-server-s6:latest", + "port": 21116, + "envVars": [ + { + "key": "RELAY", + "value": "${SERVICE_DOMAIN}:21117", + "description": "Public RustDesk relay address advertised to clients", + "required": true + }, + { + "key": "ENCRYPTED_ONLY", + "value": "0", + "description": "Set to 1 to require encrypted client connections only" + } + ] +} diff --git a/catalog.json b/catalog.json index e7e3bfe..efe12d3 100644 --- a/catalog.json +++ b/catalog.json @@ -1,6 +1,6 @@ { "schemaVersion": 1, - "updatedAt": "2026-03-19T00:00:00Z", + "updatedAt": "2026-05-08T00:00:00Z", "apps": [ { "id": "nginx", @@ -110,6 +110,15 @@ "latestVersion": "1.0.0", "tags": ["docker", "devtools"] }, + { + "id": "rustdesk-server", + "name": "RustDesk Server", + "description": "Self-hosted RustDesk ID and relay server for secure remote desktop access.", + "category": "Remote Access", + "iconName": "monitor", + "latestVersion": "1.0.0", + "tags": ["remote-desktop", "relay", "self-hosted"] + }, { "id": "cloudly", "name": "Cloudly", diff --git a/readme.md b/readme.md index ea7cc62..2471d67 100644 --- a/readme.md +++ b/readme.md @@ -18,7 +18,7 @@ No source code, package manifest, test runner, or build step exists here today. ## Current Catalog -The catalog currently lists 17 app templates. +The catalog currently lists 18 app templates. | App ID | Name | Catalog category | Image | Port | | --- | --- | --- | --- | --- | @@ -36,6 +36,7 @@ The catalog currently lists 17 app templates. | `portainer` | Portainer | Dev Tools | `portainer/portainer-ce:latest` | `9000` | | `postgres` | PostgreSQL | Database | `postgres:16-alpine` | `5432` | | `redis` | Redis | Database | `redis:alpine` | `6379` | +| `rustdesk-server` | RustDesk Server | Remote Access | `rustdesk/rustdesk-server-s6:latest` | `21116` | | `uptime-kuma` | Uptime Kuma | Monitoring | `louislam/uptime-kuma:latest` | `3001` | | `vaultwarden` | Vaultwarden | Security | `vaultwarden/server:latest` | `80` | | `wordpress` | WordPress | CMS | `wordpress:latest` | `80` | @@ -53,7 +54,7 @@ Some templates ask Onebox to provision local platform services and inject connec | `plausible` | ClickHouse | Declares ClickHouse as a platform requirement. | | `wordpress` | MariaDB | Uses standard WordPress database environment variables. | -Standalone templates such as `nginx`, `adminer`, `redis`, `portainer`, `mattermost`, `n8n`, `uptime-kuma`, and `vaultwarden` currently define only image and port unless their version config adds explicit environment variables. +Standalone templates such as `nginx`, `adminer`, `redis`, `portainer`, `mattermost`, `n8n`, `uptime-kuma`, and `vaultwarden` currently define only image and port unless their version config adds explicit environment variables. `rustdesk-server` uses the official all-in-one s6 image and requires `RELAY` to advertise the public relay endpoint; RustDesk clients also require firewall access to TCP `21115`, TCP/UDP `21116`, TCP `21117`, and optional web-client TCP `21118`/`21119`. ## Template Schema In Practice