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>
This commit is contained in:
co-authored by
Claude Opus 5
parent
c05f6aa0d7
commit
99724e7791
@@ -6,8 +6,8 @@
|
|||||||
Собирается в несколько форматов. Основной — `geosite.dat` (protobuf v2ray/Xray) для 3x-ui.
|
Собирается в несколько форматов. Основной — `geosite.dat` (protobuf v2ray/Xray) для 3x-ui.
|
||||||
CI на Gitea Actions пересобирает всё при каждом изменении `data/` и раз в сутки по расписанию.
|
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` перезаписывается при каждой сборке, ссылки стабильные:
|
Ветка `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`:
|
`/usr/local/x-ui/bin` (установка скриптом) или `/usr/local/share/xray`:
|
||||||
|
|
||||||
```bash
|
```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`:
|
Дальше в панели: **Xray Settings → Routing Rules → Add Rule**, поле `domain`:
|
||||||
@@ -91,17 +91,15 @@ Xray читает `.dat` только при старте, поэтому обн
|
|||||||
### Установка
|
### Установка
|
||||||
|
|
||||||
```bash
|
```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
|
chmod +x /usr/local/bin/update-geosite.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Проверьте вручную — первый запуск скачает файл и перезапустит панель:
|
`BASE_URL` и `DEST` уже прописаны в скрипте по умолчанию, так что задать нужно только
|
||||||
|
команду перезапуска. Проверьте вручную — первый запуск скачает файл и перезапустит панель:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
BASE_URL=https://gitea.example.com/mrleo1nid/ipcheck-domains/raw/branch/release \
|
RESTART_CMD='x-ui restart' /usr/local/bin/update-geosite.sh
|
||||||
DEST=/usr/local/x-ui/bin/ipcheck.dat \
|
|
||||||
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 ночи, чтобы не совпадать с чужими крон-джобами):
|
`crontab -e` от root, одна строка (04:17 ночи, чтобы не совпадать с чужими крон-джобами):
|
||||||
|
|
||||||
```cron
|
```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
|
```bash
|
||||||
BASE_URL=https://gitea.example.com/mrleo1nid/ipcheck-domains/raw/branch/release
|
export BASE_URL=https://gitea.hsrv.site/mrleo1nid/ipcheck-domains/raw/branch/release
|
||||||
DEST=/usr/local/x-ui/bin/ipcheck.dat
|
export DEST=/usr/local/x-ui/bin/ipcheck.dat
|
||||||
RESTART_CMD=x-ui restart
|
export RESTART_CMD='x-ui restart'
|
||||||
```
|
```
|
||||||
|
|
||||||
```cron
|
```cron
|
||||||
17 4 * * * . /etc/default/ipcheck && /usr/local/bin/update-geosite.sh >> /var/log/ipcheck-update.log 2>&1
|
17 4 * * * . /etc/default/ipcheck && /usr/local/bin/update-geosite.sh >> /var/log/ipcheck-update.log 2>&1
|
||||||
```
|
```
|
||||||
|
|
||||||
Скрипт не экспортирует переменные сам — при таком варианте добавьте в файл
|
`export` здесь обязателен: скрипт читает переменные из окружения, а не из своего шелла.
|
||||||
`export BASE_URL DEST RESTART_CMD` последней строкой.
|
|
||||||
|
|
||||||
### Вариант 2: systemd timer
|
### Вариант 2: systemd timer
|
||||||
|
|
||||||
@@ -144,7 +142,7 @@ Wants=network-online.target
|
|||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=oneshot
|
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=DEST=/usr/local/x-ui/bin/ipcheck.dat
|
||||||
Environment=RESTART_CMD=x-ui restart
|
Environment=RESTART_CMD=x-ui restart
|
||||||
ExecStart=/usr/local/bin/update-geosite.sh
|
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` | куда положить файл |
|
| `DEST` | `/usr/local/x-ui/bin/ipcheck.dat` | куда положить файл |
|
||||||
| `NAME` | имя файла из `DEST` | имя файла в репозитории |
|
| `NAME` | имя файла из `DEST` | имя файла в репозитории |
|
||||||
| `RESTART_CMD` | пусто | что выполнить после успешного обновления |
|
| `RESTART_CMD` | пусто | что выполнить после успешного обновления |
|
||||||
@@ -204,7 +202,7 @@ DEST=/var/lib/x-ui-bin/ipcheck.dat RESTART_CMD='docker restart 3x-ui' /usr/local
|
|||||||
"type": "remote",
|
"type": "remote",
|
||||||
"tag": "ipcheck",
|
"tag": "ipcheck",
|
||||||
"format": "binary",
|
"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",
|
"download_detour": "direct",
|
||||||
"update_interval": "1d"
|
"update_interval": "1d"
|
||||||
}
|
}
|
||||||
@@ -223,7 +221,7 @@ rule-providers:
|
|||||||
type: http
|
type: http
|
||||||
behavior: domain
|
behavior: domain
|
||||||
format: yaml
|
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
|
path: ./ruleset/ipcheck.yaml
|
||||||
interval: 86400
|
interval: 86400
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Создаёт (или обновляет) релиз в Gitea и заливает в него файлы.
|
# Создаёт (или обновляет) релиз в 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 <тег> <файл-с-описанием> <файл> [файл …]
|
# ./tools/gitea-release.sh <тег> <файл-с-описанием> <файл> [файл …]
|
||||||
#
|
#
|
||||||
# Имя ассета — путь относительно dist/ с заменой "/" на "-", чтобы
|
# Имя ассета — путь относительно dist/ с заменой "/" на "-", чтобы
|
||||||
|
|||||||
@@ -6,14 +6,14 @@
|
|||||||
# изменился. Молчит, если обновлять нечего, — cron не будет слать письма впустую.
|
# изменился. Молчит, если обновлять нечего, — cron не будет слать письма впустую.
|
||||||
#
|
#
|
||||||
# ./update-geosite.sh
|
# ./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
|
# DEST=/usr/local/x-ui/bin/ipcheck.dat RESTART_CMD='x-ui restart' ./update-geosite.sh
|
||||||
#
|
#
|
||||||
# Коды возврата: 0 — обновлено или уже актуально, 1 — ошибка.
|
# Коды возврата: 0 — обновлено или уже актуально, 1 — ошибка.
|
||||||
|
|
||||||
set -eu
|
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}"
|
DEST="${DEST:-/usr/local/x-ui/bin/ipcheck.dat}"
|
||||||
NAME="${NAME:-$(basename "$DEST")}"
|
NAME="${NAME:-$(basename "$DEST")}"
|
||||||
RESTART_CMD="${RESTART_CMD:-}"
|
RESTART_CMD="${RESTART_CMD:-}"
|
||||||
|
|||||||
Reference in New Issue
Block a user