feat(ru): full Russia/offline support (#RF)
- Add lib/download_helper.sh: proxy detection, GitHub mirrors, offline cache, tarball fallback - Rewrite install_nfqws.sh: offline bundle support, bol-van/zapret via git clone + tarball + mirror fallback - Rewrite sync_from_upstream.sh: proxy aware, --offline flag, graceful degradation - Add prepare_offline_bundle.sh: create tar.gz with sources + lists + fake bins on machine WITH internet - Add .env.example: GITHUB_PROXY, HTTPS_PROXY configuration - Update install.sh: check GitHub reachability, suggest proxy/offline, --offline flag - Update README: Russia section at top, Offline section, VPN/proxy examples, .env guide
This commit is contained in:
@@ -6,6 +6,39 @@ Linux-аналог популярного репозитория [Flowseal/zapre
|
||||
|
||||
---
|
||||
|
||||
## Важно для пользователей из России
|
||||
|
||||
GitHub заблокирован в РФ. Установщик **автоматически использует** прокси/зеркала, но рекомендуется:
|
||||
|
||||
1. **Если есть VPN/прокси** — самый простой способ:
|
||||
```bash
|
||||
# Вариант A: системный прокси
|
||||
export HTTPS_PROXY=socks5://127.0.0.1:1080
|
||||
sudo ./install.sh
|
||||
|
||||
# Вариант B: proxychains
|
||||
proxychains ./install.sh
|
||||
```
|
||||
|
||||
2. **Если нет VPN на целевой машине** — подготовьте офлайн-пакет:
|
||||
```bash
|
||||
# На машине С интернетом (с VPN):
|
||||
cd /opt/zapret
|
||||
proxychains ./prepare_offline_bundle.sh
|
||||
|
||||
# Перенесите zapret-discord-youtube-linux-bundle.tar.gz
|
||||
# на целевую машину, распакуйте и:
|
||||
sudo ./install.sh --offline
|
||||
```
|
||||
|
||||
3. **Если установка падает на скачивании**:
|
||||
- Проверьте `.env.example` → создайте `.env` с `GITHUB_PROXY=...`
|
||||
- Или передайте прокси через переменную окружения
|
||||
|
||||
Подробнее: раздел **Offline / РФ** внизу.
|
||||
|
||||
---
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
```bash
|
||||
@@ -369,6 +402,98 @@ sudo ./update.sh --full-auto
|
||||
|
||||
---
|
||||
|
||||
## Работа в России / Offline-режим
|
||||
|
||||
### Почему нужен прокси или offline-бандл
|
||||
|
||||
- `github.com` заблокирован в РФ
|
||||
- Оригинальный репозиторий лежит на GitHub (Flowseal/zapret-discord-youtube)
|
||||
- Исходники `nfqws` тоже на GitHub (bol-van/zapret)
|
||||
- Наш проект на **Gitea**, поэтому клонирование работает, но внутренние скачивания (lists, hosts, bol-van/zapret) — используют GitHub
|
||||
|
||||
### Вариант 1: Установка с VPN/прокси (рекомендуется)
|
||||
|
||||
```bash
|
||||
# Системный прокси
|
||||
export HTTPS_PROXY=socks5://127.0.0.1:1080
|
||||
export HTTP_PROXY=socks5://127.0.0.1:1080
|
||||
sudo ./install.sh
|
||||
|
||||
# Или proxychains
|
||||
proxychains ./install.sh
|
||||
```
|
||||
|
||||
Также можно настроить `~/.bashrc`:
|
||||
```bash
|
||||
echo 'export HTTPS_PROXY=socks5://127.0.0.1:1080' >> ~/.bashrc
|
||||
source ~/.bashrc
|
||||
```
|
||||
|
||||
### Вариант 2: Offline-бандл (без интернета на целевой машине)
|
||||
|
||||
На машине **с интернетом** (например, у друга, или с VPN на работе):
|
||||
|
||||
```bash
|
||||
cd /opt/zapret
|
||||
proxychains ./prepare_offline_bundle.sh
|
||||
```
|
||||
|
||||
Получите файл: `zapret-discord-youtube-linux-bundle.tar.gz`
|
||||
|
||||
На машине **без интернета**:
|
||||
```bash
|
||||
cd /opt
|
||||
sudo tar -xzf zapret-discord-youtube-linux-bundle.tar.gz
|
||||
cd zapret-bundle-*/installed-scripts
|
||||
sudo ./install.sh --offline
|
||||
```
|
||||
|
||||
Бандл содержит:
|
||||
- Исходники `bol-van/zapret` (для сборки nfqws)
|
||||
- `lists/*.txt` (свежие домены)
|
||||
- `.service/hosts` (статичные IP)
|
||||
- Все скрипты и стратегии
|
||||
|
||||
### Вариант 3: Установка на Windows и перенос в Linux
|
||||
|
||||
1. Скачать репозиторий на Windows (где VPN работает)
|
||||
2. Перенести на Linux через флешку/сеть
|
||||
3. На Linux запустить `sudo ./install.sh --offline`
|
||||
|
||||
### Если GitHub заблокирован — поведение скриптов
|
||||
|
||||
| Скрипт | Поведение при отсутствии интернета |
|
||||
|--------|-----------------------------------|
|
||||
| `install.sh` | Предупреждает, спрашивает, можно запустить `--offline` |
|
||||
| `sync_from_upstream.sh` | Переключается в offline-режим, использует `.bundle/` |
|
||||
| `update.sh` | Если sync не удался — сообщает и выходит |
|
||||
| `install_nfqws.sh` | Предлагает proxychains, `--offline`, или `prepare_offline_bundle.sh` |
|
||||
|
||||
### Настройка прокси через .env
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
nano .env
|
||||
```
|
||||
|
||||
```
|
||||
GITHUB_PROXY=socks5://127.0.0.1:1080
|
||||
```
|
||||
|
||||
Скрипты автоматически прочитают `.env` при запуске.
|
||||
|
||||
### Обновление при заблокированном GitHub
|
||||
|
||||
```bash
|
||||
# С VPN/proxy на целевой машине:
|
||||
sudo ./update.sh --full-auto
|
||||
|
||||
# Или через proxychains:
|
||||
proxychains ./update.sh --full-auto
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Лицензия
|
||||
|
||||
MIT License.
|
||||
|
||||
Reference in New Issue
Block a user