78 строки
5.4 KiB
Markdown
78 строки
5.4 KiB
Markdown
# XLX-Pistarscript-panel-Install
|
|
|
|
Памятка по развёртыванию собственного XLX-рефлектора (мультирежимный DMR/D-Star/YSF рефлектор) вместе с самописной веб-панелью регистрации позывных и набором файлов для хотспотов Pi-Star. Репозиторий не содержит кода — это пошаговая инструкция автора, описывающая порядок установки и связывание трёх своих репозиториев (`xlxd-debian-installer`, `reg`, `pistar`), а также cron-задание, которое выкладывает базы DMR ID в веб-каталог, откуда их забирают хотспоты.
|
|
|
|
Исходный текст инструкции сохранён как [README.upstream.md](README.upstream.md) — он является первоисточником, ниже приводится его разбор.
|
|
|
|
## Стек
|
|
- Bash, cron.
|
|
- Debian-сервер с Apache2 + PHP (ставит `xlxd-debian-installer`), каталог рефлектора `/xlxd`, веб-каталог `/var/www/xlxd`.
|
|
- Веб-панель регистрации (репозиторий `reg`) — хранит данные в `db.json` и генерирует `dmrid.dat`.
|
|
- Клиентская сторона — хотспоты Pi-Star, забирающие файлы ID по HTTP.
|
|
|
|
## Структура
|
|
- `README.upstream.md` — оригинальная инструкция автора (единственный содержательный файл репозитория).
|
|
- `README.md` — этот файл.
|
|
|
|
Внешние компоненты, на которые ссылается инструкция:
|
|
- `xlxd-debian-installer` — установщик самого рефлектора (форк, отдельный репозиторий).
|
|
- `reg` — панель регистрации и администрирования позывных, разворачивается в `/var/www/xlxd/reg`.
|
|
- `pistar` — каталог файлов для хотспотов, разворачивается в `/var/www/xlxd/pistar`.
|
|
|
|
## Как запустить/установить
|
|
1. Установка рефлектора:
|
|
```sh
|
|
git clone https://github.com/viktor138irk/xlxd-debian-installer
|
|
/root/xlxd-debian-installer.sh
|
|
```
|
|
2. Панель регистрации позывных:
|
|
```sh
|
|
cd /var/www/xlxd
|
|
git clone https://github.com/viktor138irk/reg
|
|
chmod 666 /var/www/xlxd/reg/db.json
|
|
chmod 666 /var/www/xlxd/reg/dmrid.dat
|
|
ln -s /var/www/xlxd/reg/dmrid.dat /xlxd/dmrid.dat
|
|
```
|
|
Симлинк подставляет базу, которую ведёт панель, на место базы ID, читаемой демоном `xlxd`.
|
|
|
|
3. Файлы для Pi-Star:
|
|
```sh
|
|
cd /var/www/xlxd
|
|
git clone https://github.com/viktor138irk/pistar
|
|
nano /xlxd/dmrid.sh
|
|
```
|
|
Содержимое `/xlxd/dmrid.sh`:
|
|
```sh
|
|
#!/bin/bash
|
|
echo $(date) >> /var/log/dmrid.log
|
|
curl -o /var/www/xlxd/pistar/DMRIds.dat https://www.pistar.uk/downloads/DMRIds.dat
|
|
cp /xlxd/dmrid.dat /xlxd/DMRIdsYKT.dat
|
|
sed -i -e 's/;/\t/g' /xlxd/DMRIdsYKT.dat
|
|
cp /xlxd/DMRIdsYKT.dat /var/www/xlxd/pistar/DMRIdsYKT.dat
|
|
rm /xlxd/DMRIdsYKT.dat
|
|
```
|
|
Скрипт скачивает мировую базу `DMRIds.dat` с pistar.uk и рядом кладёт локальную базу рефлектора, конвертируя разделитель `;` в табуляцию (формат, который ожидает Pi-Star).
|
|
|
|
4. Права и расписание:
|
|
```sh
|
|
chmod 755 /xlxd/dmrid.sh
|
|
echo "* * * * * /xlxd/dmrid.sh" >> /var/spool/cron/crontabs/root
|
|
echo "@reboot /root/restartall.sh" >> /var/spool/cron/crontabs/root
|
|
```
|
|
|
|
## Конфигурация
|
|
- Пути жёстко зашиты: `/xlxd` (рабочий каталог рефлектора), `/var/www/xlxd` (веб-корень), `/var/www/xlxd/reg`, `/var/www/xlxd/pistar`.
|
|
- Имя локальной базы для хотспотов — `DMRIdsYKT.dat`.
|
|
- Источник мировой базы ID — `https://www.pistar.uk/downloads/DMRIds.dat`.
|
|
- Расписание cron — ежеминутно (`* * * * *`).
|
|
- Права `666` на `db.json` и `dmrid.dat` нужны, чтобы панель под `www-data` могла их перезаписывать.
|
|
|
|
## Состояние
|
|
Рабочая памятка, соответствующая реально развёрнутой инсталляции. Последний коммит 2025-07-12, всего 3 коммита (первичный импорт и две правки README).
|
|
|
|
## Что не доделано
|
|
- Скрипт `/xlxd/dmrid.sh` существует только в виде текста в инструкции — в репозитории его нет, при установке он набирается вручную.
|
|
- Упомянутый `/root/restartall.sh` (запуск по `@reboot`) нигде не описан и в репозитории отсутствует.
|
|
- Запуск раз в минуту избыточен: каждая минута тянет полную мировую базу DMR ID с внешнего сайта.
|
|
- Нет описания репозиториев `reg` и `pistar`, нет проверок ошибок и логирования результата (в лог пишется только дата запуска).
|