Docker

こちらもう一つの良いチュートリアルです:Building Your Own Remote Desktop Solution: RustDesk Self-Hosted on Cloud with Docker (Hetzner)

Docker で独自のサーバーをインストール

要件

rustdesk-server を Docker コンテナとして実行するには、Docker/Podman がインストールされている必要があります。疑問がある場合は、このガイドで Docker をインストールして、最新であることを確認してください!

ファイアウォールでこれらのポートを開いてください:

  • hbbs:
    • 21114 (TCP): ウェブコンソール用、Pro バージョンでのみ利用可能。
    • 21115 (TCP): NAT タイプテスト用。
    • 21116 (TCP/UDP): 21116 は TCP と UDP の両方で有効にする必要があることに注意してください。 21116/UDP は ID 登録とハートビートサービスに使用されます。21116/TCP は TCP ホールパンチングと接続サービスに使用されます。
    • 21118 (TCP): ウェブクライアントのサポート用。
  • hbbr:
    • 21117 (TCP): リレーサービス用。
    • 21119 (TCP): ウェブクライアントのサポート用。

ウェブクライアントサポートが不要な場合、対応するポート 2111821119 は無効にできます。

Docker の例

sudo docker image pull rustdesk/rustdesk-server
sudo docker run --name hbbs -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbs
sudo docker run --name hbbr -v ./data:/root -td --net=host --restart unless-stopped rustdesk/rustdesk-server hbbr

Note

--net=hostLinux でのみ動作し、hbbs/hbbr がコンテナ IP (172.17.0.1) ではなく実際の着信 IP アドレスを見ることができます。 --net=host が正常に動作する場合、-p オプションは使用されません。Windows の場合、sudo--net=host を省略してください。

プラットフォームで接続問題が発生している場合は、--net=host を削除してください。

Note

-td でログが見えない場合は、docker logs hbbs でログを確認できます。または -it で実行すると、hbbs/hbbr はデーモンモードで実行されません。

Docker Compose の例

ここで説明されている compose.yml で Docker ファイルを実行するには、Docker Compose がインストールされている必要があります。

services:
  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    command: hbbs
    volumes:
      - ./data:/root
    network_mode: "host"

    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./data:/root
    network_mode: "host"
    restart: unless-stopped

設定変更が必要な場合、例えば ALWAYS_USE_RELAY=Y を設定する場合、docker-compose.yml で environment を使用できます

services:
  hbbs:
    container_name: hbbs
    image: rustdesk/rustdesk-server:latest
    environment:
      - ALWAYS_USE_RELAY=Y
    command: hbbs
    volumes:
      - ./data:/root
    network_mode: "host"

    depends_on:
      - hbbr
    restart: unless-stopped

  hbbr:
    container_name: hbbr
    image: rustdesk/rustdesk-server:latest
    command: hbbr
    volumes:
      - ./data:/root
    network_mode: "host"
    restart: unless-stopped

Podman Quadlet の例

systemd サービスとして Podman でコンテナを実行したい場合は、これらのサンプル Podman Quadlet 設定を使用できます:

[Container]
AutoUpdate=registry
Image=ghcr.io/rustdesk/rustdesk-server:latest
Exec=hbbs
Volume=/path/to/rustdesk-server/data:/root
Network=host

[Service]
Restart=always

[Install]
WantedBy=default.target

または

[Container]
AutoUpdate=registry
Image=ghcr.io/rustdesk/rustdesk-server:latest
Exec=hbbr
Volume=/path/to/rustdesk-server/data:/root
Network=host

[Service]
Restart=always

[Install]
WantedBy=default.target