mydataexpress-web
DataExpress Web modernization: Linux deployment, browser database import, Firebird migration and portable extension providers
- Active · last change 8-10-2026
- ★ 1 on GitHub
README
DataExpress Web — модернизация
Современная Linux/web-ветка DataExpress Web Server: адаптивная стартовая страница,
переносимый слой провайдеров для расширений, инструменты миграции .epas → .wepas,
безопасная загрузка баз из браузера и воспроизводимое развёртывание на Ubuntu.
Это независимая работа по модернизации, основанная на открытом проекте Павла Дуборкина:
- DataExpress — настольный конструктор баз;
- DataExpress Web Server — исходный веб-сервер;
- dataexpress-depend — исходные зависимости;
- сайт DataExpress, форум, официальные демо.
Исходные авторские права и лицензия Apache 2.0 сохранены в LICENSE.txt и NOTICE.txt.
Установка одной командой
Поддерживается чистая Ubuntu 24.04 x86-64. Команда собирает Pascal-сервер, устанавливает Firebird runtimes, Nginx и панель импорта, создаёт системные службы и загружает демонстрационную базу:
curl -fsSL https://raw.githubusercontent.com/rausNT/mydataexpress-web/main/deploy/install.sh | sudo bashДля критичной инфраструктуры сначала скачайте deploy/install.sh, прочитайте его и
запустите локальный файл. Установщик выводит адрес сервера и случайный ключ
администратора. Повторный запуск создаёт новый release, сохраняя конфигурацию и базы.
После установки:
/— список подключённых баз;/admin/— загрузка.DXDB,.FDB, ZIP-комплекта с базой и каталогомtemplates, а также добавление шаблонов к уже подключённой базе;/health— проверка процесса DataExpress.
Ключ панели создаётся установщиком, не печатается в общий журнал и хранится в
/etc/dataexpress/admin.env.
Посмотреть его на сервере:
sudo sed -n 's/^DX_ADMIN_TOKEN=//p' /etc/dataexpress/admin.envПока домен и TLS не настроены, не загружайте через публичный HTTP базы с личными или коммерческими данными. Админ-ключ защищает от несанкционированной загрузки, но не шифрует сетевой трафик.
Что модернизировано
- Linux x86-64 сборка без графического интерфейса Lazarus;
- Nginx как единая публичная точка входа, backend-процессы доступны только локально;
- запуск от непривилегированного пользователя
dataexpressи systemd hardening; - UFW, усиленный SSH/fail2ban, автоматические security updates и ограничения частоты HTTP-запросов и соединений;
- browser uploader с bearer-аутентификацией, лимитами размера, защитой ZIP path traversal/symlink, атомарной регистрацией подключения и безопасной установкой DOCX/DOCM/XML/ODT/ODS/HTML-шаблонов;
- определение Firebird ODS 11/12/13 и автоматическая миграция старых баз через backup/restore в Firebird 5 ODS 13, включая обновление служебной web-схемы;
- каталог бесплатных баз из раздела форума с исходными ссылками, понятными названиями, описаниями и проверенными демо-логинами;
- изолированные по базе
.wepas: предпочтительно модуль хранится внутри.DXDB, а внешний адаптер назначается только конкретному подключению черезextensions/<имя-подключения>/; - проверенные по хешу официальные web-версии
DX_PLUS 1.71–1.8.1, которые можно явно назначить проверенной базе по GUID действий и именам функций, из темы форума DataExpress; - адаптивная стартовая страница и безопасное отображение подключений;
- анализ, пакетная миграция и проверка
.epas/.wepas; - portable providers для HTTP, DaData и преобразования Word/Excel через LibreOffice.
Совместимость расширений
Мигратор сохраняет имена функций и GUID действий. Переносимый Pascal Script остаётся
в .wepas; Windows API, COM/OLE, DLL и другие платформенные вызовы направляются в
изолированный provider-контракт. Реестр capabilities автоматически узнаёт уже
поддержанные семейства и применяется также к новым .epas/.wepas.
Важно: произвольный новый Windows-only код нельзя корректно «угадать» и выполнить на
Linux только по синтаксису. Поэтому неизвестная capability автоматически
обнаруживается, получает manifest/provider scaffold и явно отмечается как
capability-unresolved, пока для её семантики не добавлен handler. Это исключает
ложное обещание совместимости и тихие ошибки данных.
Одна база или модуль:
npm run migrate:extension -- C:\path\to\Extension.epasКаталог модулей:
npm run migrate:extensions -- C:\path\to\extensions --output-dir C:\path\to\extensions-web
npm run verify:extension-bundle -- C:\path\to\extensions-web --offlineДокументация:
- стратегия совместимости;
- корпус расширений форума;
- provider API;
- стартовая страница;
- защита production-сервера;
- сборка Windows.
Разработка и тесты
Для JS-инструментов нужен Node.js 20+:
npm test
npm run devnpm run dev открывает preview на http://127.0.0.1:8080. Полная CI дополнительно
собирает Win32 Pascal-сервер, компилирует сгенерированные .wepas и проверяет реальные
LibreOffice providers. Linux installer собирает backend напрямую FPC 3.2.2 с
Lazarus nogui units.

