feat: один апдейтер на несколько репозиториев
build / build (push) Successful in 20s

update-geodata.sh теперь ходит по списку SOURCES (строка «URL-базы|имя»),
а не по одной базе: ipcheck.dat и оба discord-.dat обновляются за один
запуск и с одним перезапуском сервиса. Старый вызов с DEST продолжает
работать — каталог берётся из него.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Leonid Pershin
2026-08-10 09:31:14 +03:00
co-authored by Claude Opus 5
parent 60c7141f88
commit e6186ba6df
2 changed files with 61 additions and 19 deletions
+20 -3
View File
@@ -105,7 +105,7 @@ x-ui restart
## Автообновление на сервере
`update-geodata.sh` качает оба `.dat`, только если их sha256 разошлись с
`update-geodata.sh` качает файлы, только если их sha256 разошлись с
удалёнными, проверяет сумму до подмены и перезапускает сервис один раз —
и только если что-то реально изменилось.
@@ -122,14 +122,31 @@ cron раз в сутки:
23 4 * * * RESTART_CMD='x-ui restart' /usr/local/bin/update-geodata.sh >> /var/log/discord-geodata.log 2>&1
```
Скрипт умеет тянуть файлы из нескольких репозиториев сразу — один cron-job
вместо двух. По умолчанию это `ipcheck.dat` из
[ipcheck-domains](https://gitea.hsrv.site/mrleo1nid/ipcheck-domains) и оба
`.dat` отсюда; перезапуск при этом один на все файлы.
| Переменная | По умолчанию | Значение |
| --- | --- | --- |
| `BASE_URL` | `https://gitea.hsrv.site/mrleo1nid/discord-geodata/raw/branch/release` | база, откуда качать |
| `SOURCES` | три строки ниже | что качать, по строке на файл: `URL-базы\|имя-файла` |
| `BASE_URL` | `…/ipcheck-domains/raw/branch/release` | база для строк без `\|` |
| `DISCORD_URL` | `…/discord-geodata/raw/branch/release` | база для файлов этого репозитория |
| `DEST_DIR` | `/usr/local/x-ui/bin` | куда класть файлы |
| `NAMES` | `discord-geosite.dat discord-geoip.dat` | что качать |
| `RESTART_CMD` | пусто | что выполнить после успешного обновления |
| `TIMEOUT` | `30` | таймаут curl, секунды |
Нужны только файлы Discord — задайте `SOURCES` явно:
```sh
SOURCES='https://gitea.hsrv.site/mrleo1nid/discord-geodata/raw/branch/release|discord-geosite.dat
https://gitea.hsrv.site/mrleo1nid/discord-geodata/raw/branch/release|discord-geoip.dat' \
RESTART_CMD='x-ui restart' /usr/local/bin/update-geodata.sh
```
Старый вызов с `DEST=/путь/файл.dat` продолжает работать: каталог берётся из
него, а имя файла подставляется в первую строку `SOURCES`.
Если 3x-ui в Docker — укажите `DEST_DIR` на смонтированный каталог и
`RESTART_CMD='docker restart 3x-ui'`.