docs: подробный README (разбор проекта при переносе в Gitea)
Старый README сохранён как README.upstream.md.
Этот коммит содержится в:
+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).
|
||||
|
||||
@@ -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/
|
||||
Ссылка в новой задаче
Block a user