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" + } + ] + } + ] +}