docs: подробный README (разбор проекта при переносе в Gitea)

Старый README сохранён как README.upstream.md.
Этот коммит содержится в:
2026-08-20 04:18:38 +09:00
родитель 7f83393125
Коммит 6235e17fda
2 изменённых файлов: 86 добавлений и 17 удалений
+56 -17
Просмотреть файл
@@ -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/<FQDN>.conf`.
- `README.upstream.md` — документация оригинального проекта N5AMD.
## Как запустить/установить
Требуется чистый Debian, root, заранее известные FQDN дашборда и трёхзначный номер XLX.
```sh
git clone https://github.com/viktor138irk/xlxd-debian-installer
git clone <url>/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<NNN>`), 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<NNN> <LOCAL_IP> 127.0.0.1`.
- `/var/www/xlxd/pgs/config.inc.php` — e-mail, позывной администратора, URL дашборда, путь к `callinghome.php` (`/tmp/``/xlxd/`).
- Владелец `/var/www/xlxd` и `/xlxd``www-data`.
- Включается сайт `<FQDN>`, отключается `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).
+30
Просмотреть файл
@@ -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/