Compare commits

..
Author SHA1 Message Date
Leonid Pershin 6cd10434a3 feat: добавление нового IP-lookup сервиса ipaddress.is в список
build / build (push) Successful in 16s
2026-08-07 14:33:25 +03:00
Leonid PershinandClaude Opus 5 99724e7791 docs: реальные адреса вместо gitea.example.com
build / build (push) Successful in 18s
origin — gitea.hsrv.site/mrleo1nid/ipcheck-domains, он и проставлен в README
и в BASE_URL по умолчанию внутри update-geosite.sh. Раз дефолты теперь верные,
примеры cron и ручного запуска сократились до одного RESTART_CMD.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 14:26:20 +03:00
4 changed files with 23 additions and 24 deletions
+19 -21
View File
@@ -6,8 +6,8 @@
Собирается в несколько форматов. Основной — `geosite.dat` (protobuf v2ray/Xray) для 3x-ui.
CI на Gitea Actions пересобирает всё при каждом изменении `data/` и раз в сутки по расписанию.
> Во всех примерах ниже `gitea.example.com/mrleo1nid/ipcheck-domains` — замените на адрес
> своего инстанса и репозитория.
> Если форкнули к себе — поменяйте `gitea.hsrv.site/mrleo1nid/ipcheck-domains` в примерах
> ниже и в `BASE_URL` внутри [`tools/update-geosite.sh`](tools/update-geosite.sh).
## Категории
@@ -24,7 +24,7 @@ CI на Gitea Actions пересобирает всё при каждом изм
Ветка `release` перезаписывается при каждой сборке, ссылки стабильные:
```
https://gitea.example.com/mrleo1nid/ipcheck-domains/raw/branch/release/<путь>
https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release/<путь>
```
| Файл | Для чего |
@@ -52,7 +52,7 @@ https://gitea.example.com/mrleo1nid/ipcheck-domains/raw/branch/release/<путь
`/usr/local/x-ui/bin` (установка скриптом) или `/usr/local/share/xray`:
```bash
curl -fsSL -o /usr/local/x-ui/bin/ipcheck.dat https://gitea.example.com/mrleo1nid/ipcheck-domains/raw/branch/release/ipcheck.dat
curl -fsSL -o /usr/local/x-ui/bin/ipcheck.dat https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release/ipcheck.dat
```
Дальше в панели: **Xray Settings → Routing Rules → Add Rule**, поле `domain`:
@@ -91,17 +91,15 @@ Xray читает `.dat` только при старте, поэтому обн
### Установка
```bash
curl -fsSL -o /usr/local/bin/update-geosite.sh https://gitea.example.com/mrleo1nid/ipcheck-domains/raw/branch/release/update-geosite.sh
curl -fsSL -o /usr/local/bin/update-geosite.sh https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release/update-geosite.sh
chmod +x /usr/local/bin/update-geosite.sh
```
Проверьте вручную — первый запуск скачает файл и перезапустит панель:
`BASE_URL` и `DEST` уже прописаны в скрипте по умолчанию, так что задать нужно только
команду перезапуска. Проверьте вручную — первый запуск скачает файл и перезапустит панель:
```bash
BASE_URL=https://gitea.example.com/mrleo1nid/ipcheck-domains/raw/branch/release \
DEST=/usr/local/x-ui/bin/ipcheck.dat \
RESTART_CMD='x-ui restart' \
/usr/local/bin/update-geosite.sh
RESTART_CMD='x-ui restart' /usr/local/bin/update-geosite.sh
```
Второй запуск подряд должен отработать молча и мгновенно — значит сравнение сумм работает.
@@ -111,23 +109,23 @@ RESTART_CMD='x-ui restart' \
`crontab -e` от root, одна строка (04:17 ночи, чтобы не совпадать с чужими крон-джобами):
```cron
17 4 * * * BASE_URL=https://gitea.example.com/mrleo1nid/ipcheck-domains/raw/branch/release DEST=/usr/local/x-ui/bin/ipcheck.dat RESTART_CMD='x-ui restart' /usr/local/bin/update-geosite.sh >> /var/log/ipcheck-update.log 2>&1
17 4 * * * RESTART_CMD='x-ui restart' /usr/local/bin/update-geosite.sh >> /var/log/ipcheck-update.log 2>&1
```
Или, если не хочется длинной строки, положите настройки в `/etc/default/ipcheck`:
Если путь до `.dat` другой или репозиторий свой, добавьте в ту же строку `DEST=…`
и `BASE_URL=…`. Когда переменных много, вынесите их в `/etc/default/ipcheck`:
```bash
BASE_URL=https://gitea.example.com/mrleo1nid/ipcheck-domains/raw/branch/release
DEST=/usr/local/x-ui/bin/ipcheck.dat
RESTART_CMD=x-ui restart
export BASE_URL=https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release
export DEST=/usr/local/x-ui/bin/ipcheck.dat
export RESTART_CMD='x-ui restart'
```
```cron
17 4 * * * . /etc/default/ipcheck && /usr/local/bin/update-geosite.sh >> /var/log/ipcheck-update.log 2>&1
```
Скрипт не экспортирует переменные сам — при таком варианте добавьте в файл
`export BASE_URL DEST RESTART_CMD` последней строкой.
`export` здесь обязателен: скрипт читает переменные из окружения, а не из своего шелла.
### Вариант 2: systemd timer
@@ -144,7 +142,7 @@ Wants=network-online.target
[Service]
Type=oneshot
Environment=BASE_URL=https://gitea.example.com/mrleo1nid/ipcheck-domains/raw/branch/release
Environment=BASE_URL=https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release
Environment=DEST=/usr/local/x-ui/bin/ipcheck.dat
Environment=RESTART_CMD=x-ui restart
ExecStart=/usr/local/bin/update-geosite.sh
@@ -184,7 +182,7 @@ DEST=/var/lib/x-ui-bin/ipcheck.dat RESTART_CMD='docker restart 3x-ui' /usr/local
| Переменная | По умолчанию | Значение |
| --- | --- | --- |
| `BASE_URL` | ссылка на ветку `release` | база, откуда качать |
| `BASE_URL` | `https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release` | база, откуда качать |
| `DEST` | `/usr/local/x-ui/bin/ipcheck.dat` | куда положить файл |
| `NAME` | имя файла из `DEST` | имя файла в репозитории |
| `RESTART_CMD` | пусто | что выполнить после успешного обновления |
@@ -204,7 +202,7 @@ DEST=/var/lib/x-ui-bin/ipcheck.dat RESTART_CMD='docker restart 3x-ui' /usr/local
"type": "remote",
"tag": "ipcheck",
"format": "binary",
"url": "https://gitea.example.com/mrleo1nid/ipcheck-domains/raw/branch/release/sing-box/ipcheck.srs",
"url": "https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release/sing-box/ipcheck.srs",
"download_detour": "direct",
"update_interval": "1d"
}
@@ -223,7 +221,7 @@ rule-providers:
type: http
behavior: domain
format: yaml
url: "https://gitea.example.com/mrleo1nid/ipcheck-domains/raw/branch/release/clash/ipcheck.yaml"
url: "https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release/clash/ipcheck.yaml"
path: ./ruleset/ipcheck.yaml
interval: 86400
+1
View File
@@ -19,3 +19,4 @@ ifconfig.co
ifconfig.io
icanhazip.com
ip.sb
ipaddress.is
+1 -1
View File
@@ -1,7 +1,7 @@
#!/bin/sh
# Создаёт (или обновляет) релиз в Gitea и заливает в него файлы.
#
# GITEA_URL=https://gitea.example.com GITEA_REPO=owner/repo GITEA_TOKEN=… \
# GITEA_URL=https://gitea.hsrv.site GITEA_REPO=mrleo1nid/ipcheck-domains GITEA_TOKEN=… \
# ./tools/gitea-release.sh <тег> <файл-с-описанием> <файл> [файл …]
#
# Имя ассета — путь относительно dist/ с заменой "/" на "-", чтобы
+2 -2
View File
@@ -6,14 +6,14 @@
# изменился. Молчит, если обновлять нечего, — cron не будет слать письма впустую.
#
# ./update-geosite.sh
# BASE_URL=https://gitea.example.com/mrleo1nid/ipcheck-domains/raw/branch/release \
# BASE_URL=https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release \
# DEST=/usr/local/x-ui/bin/ipcheck.dat RESTART_CMD='x-ui restart' ./update-geosite.sh
#
# Коды возврата: 0 — обновлено или уже актуально, 1 — ошибка.
set -eu
BASE_URL="${BASE_URL:-https://gitea.example.com/mrleo1nid/ipcheck-domains/raw/branch/release}"
BASE_URL="${BASE_URL:-https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release}"
DEST="${DEST:-/usr/local/x-ui/bin/ipcheck.dat}"
NAME="${NAME:-$(basename "$DEST")}"
RESTART_CMD="${RESTART_CMD:-}"