From c508d50d00302a82079dd5d60d89652b7efe4042 Mon Sep 17 00:00:00 2001 From: Guillaume Date: Thu, 1 Oct 2026 15:10:27 +0000 Subject: [PATCH] =?UTF-8?q?T=C3=A9l=C3=A9verser=20les=20fichiers=20vers=20?= =?UTF-8?q?"apps"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/config.json | 19 +++++++++++++++++++ apps/description.md | 30 ++++++++++++++++++++++++++++++ apps/docker-compose.json | 31 +++++++++++++++++++++++++++++++ 3 files changed, 80 insertions(+) create mode 100644 apps/config.json create mode 100644 apps/description.md create mode 100644 apps/docker-compose.json diff --git a/apps/config.json b/apps/config.json new file mode 100644 index 0000000..0d5aef2 --- /dev/null +++ b/apps/config.json @@ -0,0 +1,19 @@ +{ + "name": "RustDesk Server", + "id": "rustdesk-server", + "available": true, + "exposable": false, + "no_gui": true, + "dynamic_config": true, + "tipi_version": 1, + "version": "1.1.16", + "categories": ["network", "utilities"], + "short_desc": "Serveur RustDesk auto-hébergé : annuaire d'ID (hbbs) et relais (hbbr).", + "description": "Serveur open source pour RustDesk, l'alternative auto-hébergée à TeamViewer/AnyDesk. hbbs gère l'annuaire d'ID et la mise en relation, hbbr relaie les sessions quand une connexion directe est impossible. Réseau en mode host, comme recommandé par RustDesk.", + "author": "RustDesk", + "source": "https://github.com/rustdesk/rustdesk-server", + "website": "https://rustdesk.com", + "form_fields": [], + "supported_architectures": ["amd64", "arm64"], + "min_tipi_version": "4.5.0" +} diff --git a/apps/description.md b/apps/description.md new file mode 100644 index 0000000..d9cce16 --- /dev/null +++ b/apps/description.md @@ -0,0 +1,30 @@ +# RustDesk Server + +Serveur open source pour [RustDesk](https://rustdesk.com), l'outil de prise en main à distance auto-hébergé. + +- **hbbs** : annuaire d'ID, mise en relation des postes (NAT traversal). +- **hbbr** : relais des sessions quand une connexion directe est impossible. + +## Réseau + +Les deux services tournent en réseau `host` (recommandation officielle RustDesk). Ports utilisés sur l'hôte : + +| Port | Protocole | Service | Rôle | +|-------|-----------|---------|----------------------------------------| +| 21115 | TCP | hbbs | Test du type de NAT | +| 21116 | TCP + UDP | hbbs | Enregistrement des ID, mise en relation | +| 21117 | TCP | hbbr | Relais | +| 21118 | TCP | hbbs | Client web | +| 21119 | TCP | hbbr | Client web (relais) | + +Ces ports ne passent pas par Traefik : redirigez-les directement (NAT) vers l'hôte Runtipi. + +## Données + +`${APP_DATA_DIR}/data` contient la paire de clés du serveur (`id_ed25519`, `id_ed25519.pub`) et la base `db_v2.sqlite3`. +**Conservez ces fichiers** : les clients sont configurés avec la clé publique ; la perdre oblige à reconfigurer tous les postes. + +## Configuration des clients + +- Serveur ID : nom de domaine du serveur +- Clé : contenu de `id_ed25519.pub` diff --git a/apps/docker-compose.json b/apps/docker-compose.json new file mode 100644 index 0000000..500f12b --- /dev/null +++ b/apps/docker-compose.json @@ -0,0 +1,31 @@ +{ + "schemaVersion": 2, + "services": [ + { + "name": "hbbs", + "image": "rustdesk/rustdesk-server:1.1.16", + "isMain": true, + "networkMode": "host", + "command": "hbbs", + "volumes": [ + { + "hostPath": "${APP_DATA_DIR}/data", + "containerPath": "/root" + } + ], + "dependsOn": ["hbbr"] + }, + { + "name": "hbbr", + "image": "rustdesk/rustdesk-server:1.1.16", + "networkMode": "host", + "command": "hbbr", + "volumes": [ + { + "hostPath": "${APP_DATA_DIR}/data", + "containerPath": "/root" + } + ] + } + ] +}