BetterDesk: что даёт переход с RustDesk и где подводные камни

BetterDesk объединяет сервер и панель управления в один бинарь, добавляет RBAC с четырьмя ролями, E2E-чат и CDAP для IoT, но PostgreSQL-режим не готов к продакшену, а веб-клиент падает из-за тривиальных ошибок в шаблонах.

BetterDesk: что даёт переход с RustDesk и где подводные камни

BetterDesk: что изменится, если перейти с RustDesk

BetterDesk не просто форк RustDesk с парой новых функций — это платформа для удалённого доступа, управления устройствами и интеграции с системами автоматизации. Здесь есть централизованная панель управления, E2E-шифрованный чат, поддержка CDAP для IoT/SCADA и RBAC с четырьмя уровнями ролей. Но прежде чем переезжать, стоит разобраться, где BetterDesk действительно выигрывает, а где ещё требует доработки.


BetterDesk состоит из двух компонентов: сервер на Go и веб-консоль на Node.js. Сервер — это один статический бинарь без зависимостей, заменяющий два бинарника RustDesk (hbbs и hbbr). Он поддерживает SQLite и PostgreSQL, TLS на всех портах с автоматическим определением plain/TLS, REST API с JWT и ключами API, а также метрики для Prometheus. Веб-консоль предлагает TOTP 2FA, RBAC с ролями Admin, Operator, Viewer и Pro, мониторинг устройств, E2E-шифрованный чат с подтверждением прочтения, передачей файлов и индикаторами набора текста, а также CDAP для управления IoT/SCADA.

В отличие от RustDesk, где управление доступом ограничено, BetterDesk позволяет разграничивать права с четырёх уровней: администратор, оператор, наблюдатель и профильный пользователь. Это упрощает работу в командах с разными задачами. E2E-чат между оператором и устройством с шифрованием на уровне приложения и поддержкой файловой передачи делает взаимодействие более безопасным и прозрачным. CDAP для IoT/SCADA, Wake-on-LAN и расширенные политики доступа (например, расписания для безаттестационного доступа) расширяют область применения за рамки классического удалённого доступа.


BetterDesk не только добавляет новые функции, но и исправляет архитектурные недостатки RustDesk. Оригинальный RustDesk требует двух бинаров, что усложняет деплой и обновление. BetterDesk объединяет их в один бинарь на Go без зависимостей — проще управлять, проще обновлять. Поддержка PostgreSQL в дополнение к SQLite позволяет выбирать СУБД под задачи. TLS на всех портах с автоматическим определением plain/TLS убирает необходимость настраивать отдельные порты для шифрованного трафика.

Но где BetterDesk действительно выигрывает — так это в возможностях, которых RustDesk никогда не предлагал. REST API с JWT и ключами API позволяет интегрировать BetterDesk в системы автоматизации. E2E-шифрованный чат и CDAP для IoT/SCADA делают платформу пригодной не только для удалённого доступа, но и для управления устройствами. RBAC с четырьмя уровнями ролей позволяет разграничивать доступ между администраторами, операторами, наблюдателями и профильными пользователями.


На практике BetterDesk выглядит как платформа, а не как инструмент. Сервер поддерживает режимы запуска: -mode all (по умолчанию), -mode signal (только сигнальный сервер) и -mode relay (только реле). Веб-панель поддерживает "горячую" перезагрузку конфигурации через SIGHUP без необходимости рестарта. Реле — это "глухая" труба для байтов: клиент A подключается с RequestRelay{uuid}, клиент B подключается с тем же UUID, и начинается двусторонний io.Copy с таймаутами 30 секунд. Всё работает, но только если не сталкиваешься с багами.

Поддержка 25+ языков (включая японский, китайский, арабский, украинский), светлая тема с WCAG-соответствием и анимации переходов между страницами делают интерфейс более доступным. В CI настроена генерация SBOM и сканирование уязвимостей (Trivy), а для Windows доступен мультиязычный NSIS-инсталлятор. Документация включает THREAT_MODEL.md, ENCRYPTION_SPEC.md, COMPLIANCE.md и AUDIT_LOG.md. Сервер собирается под linux-amd64/arm64, windows-amd64, а клиент реализован на Tauri для Windows, Linux и macOS.


Где ломается?

Первая проблема — PostgreSQL. Несмотря на декларированную поддержку, миграция не срабатывает: column "linked_peer_id" does not exist. При этом SQLite работает без проблем. Администратор пробует чистую установку, ремонт миграций — результат тот же. Приходится переключаться на SQLite, жертвуя поддержкой PostgreSQL. Это не просто неудобство: это сигнал, что режим с PostgreSQL не готов к продакшену.

Вторая проблема — веб-клиент. Ошибка Could not find matching close tag for "<%-" в шаблоне EJS блокирует весь интерфейс. Это не проблема конфигурации или нагрузки, а элементарный синтаксический дефект. Даже если сервер работает, веб-панель недоступна. Нет информации о версии консоли или контексте — только "падает".

Третья проблема — TCP accept error: EOF при входе в аккаунт. Нет контекста о нагрузке, конфигурации или версии клиента/сервера. Только "падает". Это не диагностируемая ошибка, а чёрный ящик.


Критерий RustDesk BetterDesk
Количество бинаров 2 (hbbs + hbbr) 1 (единый бинарь)
Язык сервера Rust Go (чистый, без CGO)
База данных Только SQLite SQLite + PostgreSQL
TLS Не встроен TLS на всех портах (автоопределение)
API Минимальный Полный REST API с JWT + ключами API
RBAC Отсутствует 4 уровня ролей
Чат Отсутствует E2E-шифрованный чат
CDAP для IoT/SCADA Нет Есть

BetterDesk — это платформа, которая расширяет горизонты применения. RBAC, E2E-чат, CDAP и REST API делают её пригодной для задач, которые RustDesk никогда не решал. Но PostgreSQL-режим не готов к продакшену, веб-клиент падает из-за тривиальных ошибок в шаблонах, а диагностируемость проблем оставляет желать лучшего.

Если вам нужна платформа для удалённого доступа с расширенными возможностями управления, BetterDesk стоит попробовать. Но не рассчитывайте на PostgreSQL и убедитесь, что веб-клиент работает стабильно.

Read more

Когда FPGA-кластер выгоднее подписки: расчёт на реальных цифрах

Когда FPGA-кластер выгоднее подписки: расчёт на реальных цифрах

FPGA-кластер из 72 устройств ускорил взлом FileVault в 498 раз и снизил латентность в банковских контурах до 0,8 мкс, но окупается только при стабильной нагрузке и наличии аппаратной экспертизы. В остальных случаях дешевле арендовать облачные инстансы или подписаться на коммерческие инструменты.

Три подхода к памяти AI-агентов на базе Git: где помогает, а где только перекладывает старые проблемы

Три подхода к памяти AI-агентов на базе Git: где помогает, а где только перекладывает старые проблемы

Memoir, Beads и Mem0 + Valkey обещают AI-агентам память, которая не теряется между сессиями и не загрязняет контекст. Но на практике Git-подобная память не универсальна: одни инструменты экономят токены, другие структурируют факты, третьи управляют задачами.

Фабрис Беллар: как один программист создал инструменты для миллиардов устройств

Фабрис Беллар: как один программист создал инструменты для миллиардов устройств

В 17 лет Фабрис Беллар написал LZEXE — архиватор размером в несколько килобайт, который помещался на дискету. Позже он создал FFmpeg, QEMU и TCC, ставшие основой для миллиардов устройств от YouTube до Android. Его проекты решают задачи там, где корпоративные инструменты оказываются слишком тяжёлыми.