Files
mypointvpn/docs/apps/rustdesk/app/docker-compose.yaml
T
protokeyandClaude Opus 5.5 fd4b05097a feat: публикация портов не-HTTP сервисами, проверка портов до деплоя, пример RustDesk
serverus: app_ports.py проверяет опубликованные порты приложения до
изменений - по docker compose config (переменные из .env подставлены)
против слушающих сокетов сервера и портов контейнеров других приложений.
Занятый порт больше не роняет up после замены файлов. Конвенция: только
мост; не-HTTP сервисы публикуют свои порты, 80 и 443 - у caddy;
bind-mount только своих файлов из data/<сервис>/ с :ro. Описано, что
упавший up после синхронизации файлы не откатывает.

App: uploads.check предупреждает о 80/443 вместо любых портов и о
bind-mount из папки приложения вне data/ или без :ro.

docs/apps/rustdesk: приложение (hbbs, hbbr, ключ генерируем сами),
genkey.py и check.py - проверка сервера по протоколу RustDesk снаружи.
Проверено на стенде Debian 13: деплой, повторный деплой, отказ второго
приложения на тех же портах до изменений, перезагрузка сервера.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 10:31:38 +04:00

31 lines
1003 B
YAML

# RustDesk: hbbs - сервер ID (знакомит клиентов), hbbr - relay (трафик, когда напрямую не вышло).
# Ключ сгенерирован нами и лежит в data/<сервис>/: переживает переустановку ОС. База hbbs - в named volume.
services:
hbbs:
image: rustdesk/rustdesk-server:1.1.16
command: hbbs -r ${RELAY_HOST}:21117 -k _
restart: unless-stopped
ports:
- "21115:21115"
- "21116:21116"
- "21116:21116/udp"
volumes:
- hbbs:/root
- ./data/hbbs/id_ed25519:/root/id_ed25519:ro
- ./data/hbbs/id_ed25519.pub:/root/id_ed25519.pub:ro
depends_on: [ hbbr ]
hbbr:
image: rustdesk/rustdesk-server:1.1.16
command: hbbr -k _
restart: unless-stopped
ports:
- "21117:21117"
volumes:
- hbbr:/root
- ./data/hbbr/id_ed25519:/root/id_ed25519:ro
- ./data/hbbr/id_ed25519.pub:/root/id_ed25519.pub:ro
volumes:
hbbs:
hbbr: