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>
31 lines
1003 B
YAML
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:
|