From 6235e17fda536d32857328909a28d45ce89ef4f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D0=BA=D1=82=D0=BE=D1=80?= Date: Thu, 20 Aug 2026 04:18:38 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=BF=D0=BE=D0=B4=D1=80=D0=BE=D0=B1?= =?UTF-8?q?=D0=BD=D1=8B=D0=B9=20README=20(=D1=80=D0=B0=D0=B7=D0=B1=D0=BE?= =?UTF-8?q?=D1=80=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=B0=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81=D0=B5?= =?UTF-8?q?=20=D0=B2=20Gitea)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Старый README сохранён как README.upstream.md. --- README.md | 73 +++++++++++++++++++++++++++++++++++----------- README.upstream.md | 30 +++++++++++++++++++ 2 files changed, 86 insertions(+), 17 deletions(-) create mode 100644 README.upstream.md diff --git a/README.md b/README.md index 2586d80..8c3d612 100644 --- a/README.md +++ b/README.md @@ -1,30 +1,69 @@ -# xlxd-debian-installer -This script simply runs through the official install instructions found [HERE](https://github.com/LX3JL/xlxd). The script will install XLX along with setting up the web dashboard to view real-time activity. After installing this you will have a private or public D-Star, DMR, and YSF XLX Reflector. +# xlxd-debian-installer (форк) -At the start of 2020 a new version of XLX was released that allows for native C4FM connections. This means it's even simpler to run a multi-mode reflector. XLX now natively supports DMR, D-Star, and C4FM. C4FM and DMR do not require any transcoding hardware (AMBE) to work together. If you plan on using D-Star with any of the other modes, you will need hardware AMBE chips. +Bash-установщик XLX-рефлектора на Debian: ставит зависимости, собирает демон `xlxd` из исходников, разворачивает PHP-дашборд, прописывает init-скрипт и виртуальный хост Apache. XLX — мультирежимный рефлектор для любительской цифровой радиосвязи (DMR, D-Star, C4FM/YSF), к нему подключаются хотспоты Pi-Star и репитеры. +Это форк установщика Бена Фогта (N5AMD), взятый по цепочке: оригинал `n5amd/xlxd-debian-installer` → `vaikcode` (Vlad) → `sever83` → текущая копия. Форк взят ради модификаций, превращающих публичный рефлектор в **закрытый (частный) с собственной базой DMR ID**: сборка ведётся не из апстрима LX3JL, а из форка `xlxd`, база позывных не тянется с внешнего сервера, «звонок домой» (регистрация в глобальных host-файлах) отключён. Документация оригинала сохранена в [README.upstream.md](README.upstream.md). -### To Install: -1. Have a fresh Debian computer ready and up to date. -2. Have both a FQDN and 3 digit XLX number in mind before beginning. -3. +## Отличия от оригинала +Правки владельца этой копии: +- `2025-07-06` — единственный собственный коммит: в инструкции по установке адрес клонирования заменён на свой репозиторий (`viktor138irk/xlxd-debian-installer` вместо `sever83/...`). Код скрипта не менялся. + +Изменения, унаследованные от предыдущих форков (Vlad/`vaikcode`, `sever83`) и присутствующие в этой копии — именно они отличают её от оригинала N5AMD: +- `XLXDREPO` указывает на форк `https://github.com/sever83/xlxd.git` вместо апстрима `https://github.com/LX3JL/xlxd.git`. +- Отключено скачивание базы DMR ID с `xlxapi.rlx.lu` (`wget ... $DMRIDURL` закомментирован). Вместо этого создаётся пустой `/xlxd/dmrid.dat` и в него засеваются три тестовых локальных ID: `7700001;RADIST1;`, `7700002;RADIST2;`, `7700003;RADIST3;` — база позывных ведётся локально (в связке с панелью регистрации, см. репозиторий `XLX-Pistarscript-panel-Install`). +- Закомментирована правка `main.h` (`DMRIDDB_USE_RLX_SERVER 1 → 0`) — переключение источника базы ID теперь берётся из самого форка `xlxd`, а не патчится установщиком. +- Закомментирован блок постнастройки дашборда: скрытие IP (`ShowFullIP → HideIP` на страницах репитеров и пиров) и включение `CallingHome['Active'] = true`. То есть рефлектор не регистрируется в глобальном списке XLX и показывает IP как есть. +- Убрана ветвление по версии Debian (`php7.0/7.3/7.4-mbstring`): блок `if [ $VERSION = 9|10|11 ]` закомментирован, ставится общий набор пакетов `$APPS` с метапакетами `php-*`. + +## Стек +- Bash, Debian (проверялось на x64), `apt`. +- Собирает C++-демон `xlxd` (`make && make install`) — нужен `build-essential`. +- Веб-часть: Apache2 + PHP (`php-cli`, `php-xml`, `php-mbstring`, `php-curl`, `libapache2-mod-php`). +- Запуск через SysV-init скрипт + `update-rc.d`, управление через `systemctl`. + +## Структура +- `xlxd-debian-installer.sh` — весь установщик: диалог с оператором, установка пакетов, сборка `xlxd`, разворачивание дашборда, настройка Apache, старт сервиса. +- `templates/apache.tbd.conf` — шаблон виртуального хоста Apache; `apache.tbd` заменяется на FQDN, `ysf-xlxd` — на `xlxd`, файл кладётся в `/etc/apache2/sites-available/.conf`. +- `README.upstream.md` — документация оригинального проекта N5AMD. + +## Как запустить/установить +Требуется чистый Debian, root, заранее известные FQDN дашборда и трёхзначный номер XLX. ```sh -git clone https://github.com/viktor138irk/xlxd-debian-installer +git clone /xlxd-debian-installer cd xlxd-debian-installer ./xlxd-debian-installer.sh ``` -## How to find what reflectors are available -Find a current active reflector dashboard, for example, https://xlx.n5amd.com/index.php?show=reflectors and you will see the gaps in reflector numbers in the list. Those reflector numbers not listed are available. +Скрипт интерактивно спросит: трёхзначный номер рефлектора (`XRFDIGIT` → имя `XLX`), FQDN дашборда, e-mail для связи, позывной администратора. -### To interact with xlxd after installation: +Управление после установки: ```sh systemctl start|stop|status|restart xlxd ``` - - Installs to /xlxd - - Logs are in /var/log/messages and *'systemctl status xlxd'* - - Main config file is /var/www/xlxd/pgs/config.inc.php - - Be sure to restart xlxd after each config change *'systemctl restart xlxd'* -**For more information, please visit:** +## Конфигурация +Переменные в начале `xlxd-debian-installer.sh`: +- `XLXDREPO` — репозиторий исходников `xlxd` (в этой копии — форк `sever83/xlxd`). +- `DMRIDURL` — `http://xlxapi.rlx.lu/api/exportdmr.php`; объявлена, но не используется (загрузка отключена). +- `WEBDIR` — `/var/www/xlxd`, веб-корень дашборда. +- `XLXINSTDIR` — `/root/reflector-install-files/xlxd`, каталог сборки. +- `APPS` / `DEP`, `DEP2`, `DEP3` — наборы пакетов (`DEP*` не используются). +- `LOCAL_IP` — определяется через `hostname -I`, подставляется в init-скрипт вместо `192.168.1.240`. -https://n5amd.com/digital-radio-how-tos/create-xlx-xrf-d-star-reflector/ +Что правится автоматически: +- `/etc/init.d/xlxd` — строка запуска `XLX999 192.168.1.240 127.0.0.1` → `XLX 127.0.0.1`. +- `/var/www/xlxd/pgs/config.inc.php` — e-mail, позывной администратора, URL дашборда, путь к `callinghome.php` (`/tmp/` → `/xlxd/`). +- Владелец `/var/www/xlxd` и `/xlxd` — `www-data`. +- Включается сайт ``, отключается `000-default`. + +Рабочие расположения: рефлектор — `/xlxd`, база ID — `/xlxd/dmrid.dat`, основной конфиг дашборда — `/var/www/xlxd/pgs/config.inc.php`, логи — `journalctl`/`systemctl status xlxd` и `/var/log/messages`. + +## Состояние +Рабочий, но привязан к устаревшему окружению. Последний коммит 2025-07-06, всего 40 коммитов (из них 1 собственный, остальные — история оригинала и промежуточных форков). + +## Что не доделано +- Явных TODO/FIXME нет; вместо этого крупные блоки логики просто закомментированы (правка `main.h`, скачивание базы ID, скрытие IP, `CallingHome`, установка версионных PHP-пакетов) — «выключено», а не удалено. +- В `/xlxd/dmrid.dat` засеваются тестовые записи `RADIST1..3` с ID `7700001..3`, они остаются в базе после установки. +- Проверка версии Debian отключена, при этом `VERSION` вычисляется и не используется; на современных Debian корректность набора пакетов не проверялась. +- Шаблон Apache — только HTTP (порт 80), без TLS; `ServerName` подставляется sed'ом, отдельного `DocumentRoot`-параметра нет (жёстко `/var/www/xlxd` после замены). +- Установщик не идемпотентен: повторный запуск при уже собранном `xlxd` прерывается с требованием вручную удалить `/root/reflector-install-files/xlxd`. +- Управление заявлено через `systemctl`, а ставится SysV init-скрипт через `update-rc.d` (работает через systemd-generator). diff --git a/README.upstream.md b/README.upstream.md new file mode 100644 index 0000000..2586d80 --- /dev/null +++ b/README.upstream.md @@ -0,0 +1,30 @@ +# xlxd-debian-installer +This script simply runs through the official install instructions found [HERE](https://github.com/LX3JL/xlxd). The script will install XLX along with setting up the web dashboard to view real-time activity. After installing this you will have a private or public D-Star, DMR, and YSF XLX Reflector. + +At the start of 2020 a new version of XLX was released that allows for native C4FM connections. This means it's even simpler to run a multi-mode reflector. XLX now natively supports DMR, D-Star, and C4FM. C4FM and DMR do not require any transcoding hardware (AMBE) to work together. If you plan on using D-Star with any of the other modes, you will need hardware AMBE chips. + + +### To Install: +1. Have a fresh Debian computer ready and up to date. +2. Have both a FQDN and 3 digit XLX number in mind before beginning. +3. +```sh +git clone https://github.com/viktor138irk/xlxd-debian-installer +cd xlxd-debian-installer +./xlxd-debian-installer.sh +``` +## How to find what reflectors are available +Find a current active reflector dashboard, for example, https://xlx.n5amd.com/index.php?show=reflectors and you will see the gaps in reflector numbers in the list. Those reflector numbers not listed are available. + +### To interact with xlxd after installation: +```sh +systemctl start|stop|status|restart xlxd +``` + - Installs to /xlxd + - Logs are in /var/log/messages and *'systemctl status xlxd'* + - Main config file is /var/www/xlxd/pgs/config.inc.php + - Be sure to restart xlxd after each config change *'systemctl restart xlxd'* + +**For more information, please visit:** + +https://n5amd.com/digital-radio-how-tos/create-xlx-xrf-d-star-reflector/