Catalog · How the catalog works
nbDevopsCockpit
Пакет компонентов Delphi/FMX для DevOps: SSH-клиент (libssh2) и xterm-256color терминал (Skia)
- ★ 5 on GitHub
Anyone may press Interesting, signed in or not. It helps others find this project.
README
nbDevOpsCockpit
2026-05-26 note
TnbFilePane supports app-driven palette colors through ApplyColors(ABg, ASurface, ABorder, AText, AMuted, AAccent). nTizgin uses this so SFTP/file panes follow the active terminal theme. The last two arguments are optional for older callers.
Development boundaries and integration notes are maintained in Developer Guide. Terminal behavior is tracked in XTERM Conformance.
Русский | English
Пакет компонентов Delphi / FireMonkey (FMX) для построения DevOps-инструментов. Кросс-платформенный — Windows, Linux, macOS. Рендеринг на Skia.
Демо
Готовая portable-сборка демо для Windows x64 публикуется в GitHub Releases. Архив содержит nbDevOpsCockpitDemo.exe, libssh2.dll, sk4d.dll и темы терминала.
Состав
| Компонент | Назначение |
|---|---|
TnbSSHClient |
SSH-соединение через libssh2 (динамическая загрузка библиотеки) |
TnbTerminalControl |
Визуальный терминал xterm-256color |
Компоненты регистрируются в палитре IDE на вкладке nb DevOps.
Возможности терминала
- ANSI/VT: CSI, OSC, SGR, наборы символов G0/G1, ответы на запросы устройства (DA/DSR)
- 16/256 цветов и truecolor (24 бита)
- Основной и альтернативный буферы, регион скроллинга, история (scrollback)
- Wide-символы (CJK), эмодзи и ZWJ-последовательности
- Выделение мышью, копирование/вставка, bracketed paste
- Отчёты мыши (режимы 1000/1002/1003/1006 SGR)
- Цветовые темы в формате Gogh (YAML)
Возможности SSH-клиента
- Аутентификация по паролю и по ключу (файл или ключ из памяти)
- Проверка ключа хоста через событие
OnVerifyHostKey(SHA256-отпечаток) - Работа в фоновом потоке, корректная нарезка UTF-8 на границах байтов
- Изменение размера PTY на лету
Структура репозитория
src/ ??? ?????????????????? ???????????? ??????????????????????
demo/ ??? ????????-???????????????????? FMX, ???????????????????????? ???????????? SSH + ????????????????Зависимости
Обязательные зависимости:
| Библиотека | Тип | Назначение | Где взять |
|---|---|---|---|
| UniListView | время сборки и выполнения | runtime-пакет UniListViewRuntime, используемый TnbFilePane |
GitHub |
| Ararat Synapse | время сборки | blcksock, synsock и другие сетевые модули |
GitHub |
| libssh2 | время выполнения | реализация протокола SSH | см. «Платформенные требования» |
В third_party/synapse находится только используемый пакетом synacode.pas;
для сборки всё равно требуется полный каталог исходников Ararat Synapse в
Delphi Library Path или Project Search Path.
Skia входит в состав RAD Studio 12 и новее — отдельная установка не нужна.
Установка
Разместите репозитории рядом:
workdir/
|- UniListView/
`- nbDevopsCockpit/Откройте CockpitGroup.groupproj: группа сначала собирает
UniListViewRuntime для выбранной платформы, затем nbDevOpsCockpit и демо.
После успешной сборки установите src/nbDevOpsCockpit.dpk в IDE.
При ручной установке сначала соберите
UniListView/packages/UniListViewRuntime.dproj для той же платформы
(Win32 для 32-битной IDE, Win64 для 64-битной), затем собирайте
src/nbDevOpsCockpit.dproj. Ошибка E2202 Required package 'UniListViewRuntime' not found означает, что DCP runtime-пакета для выбранной
платформы ещё не собран или его каталог отсутствует в Library Path.
Перед сборкой также добавьте каталог полного Ararat Synapse в Library Path или
Project Search Path. Иначе компилятор остановится на Unit 'blcksock' not found.
Дополнительные правила разработки описаны в руководстве разработчика.
Быстрый старт
procedure TFormMain.btConnectClick(Sender: TObject);
begin
// TerminalControl1.SSHClient := SSHClient1 — связка задаётся в дизайнере
SSHClient1.Host := edHost.Text;
SSHClient1.User := edUser.Text;
SSHClient1.KeyPath := edKey.Text;
SSHClient1.Connect;
end;Привязка TnbTerminalControl.SSHClient := SSHClient1 разводит данные в обе
стороны автоматически — ручного OnReadData → WriteText не требуется.
Платформенные требования
Нужна библиотека libssh2:
| ОС | Установка |
|---|---|
| Windows | libssh2.dll рядом с .exe (+ libcrypto, libssl, zlib1) |
| Linux (RHEL/Rocky) | sudo dnf install libssh2 |
| Linux (Debian/Ubuntu) | sudo apt install libssh2-1 |
| macOS | brew install libssh2 |
Статус
Проект в активной разработке. Запланированы компоненты TnbGitLabClient,
TnbServerInventory, TnbSnippetRunner, TnbAuditLogger.
Документация проекта
Лицензия
Собственный код проекта распространяется по Mozilla Public License 2.0. Лицензии встроенных зависимостей перечислены в THIRD_PARTY_NOTICES.md.

