# Руководство развёртывания

> Полное руководство по развёртыванию со всеми параметрами конфигурации.

## Базовое развёртывание

```
meridian deploy 1.2.3.4
```

Мастер проведёт вас через конфигурацию. Или укажите всё заранее:

```
meridian deploy 1.2.3.4 --sni www.microsoft.com --client-name alice --yes
```

## Все флаги

| Флаг | По умолчанию | Описание |
|------|---------|-------------|
| `--sni HOST` | www.microsoft.com | Цель маскировки TLS |
| `--domain DOMAIN` | (нет) | Домен для CDN-резерва через Cloudflare |
| `--client-name NAME` | default | Имя для первого клиента |
| `--display-name NAME` | (нет) | Надпись на страницах подключения (напр. "VPN Алисы") |
| `--icon EMOJI_OR_URL` | (нет) | Иконка страницы — эмодзи или URL изображения |
| `--color PALETTE` | ocean | Цветовая тема (ocean/sunset/forest/lavender/rose/slate) |
| `--user USER` | root | SSH пользователь (не-root получает sudo автоматически) |
| `--harden / --no-harden` | включено | Закалка SSH + firewall (отключите если на сервере другие сервисы) |
| `--server NAME` | | Указать сервер (имя или IP) |
| `--decoy MODE` | none | Ответ-обманка для неизвестных путей (`none` / `403`) |
| `--yes` | | Пропустить подтверждающие подсказки |
| `--warp / --no-warp` | отключено | Маршрутизировать исходящий трафик через Cloudflare WARP |
| `--geo-block / --no-geo-block` | включено | Блокировать `.ru` домены и российские IP через прокси |
| `--pq / --no-pq` | отключено | Постквантовое шифрование — ML-KEM-768 гибрид (экспериментально) |

## Брендирование

Персонализируйте страницы подключения, чтобы получатели знали, кто настроил VPN:

```
meridian deploy 1.2.3.4 --display-name "VPN Алисы" --icon 🚀 --color sunset
```

- **`--display-name`** — отображается в панели доверия и заголовке страницы. Используйте ваше имя или понятное название.
- **`--icon`** — эмодзи или URL изображения в верхней части страницы подключения.
- **`--color`** — устанавливает цветовую палитру. Варианты: `ocean` (по умолчанию), `sunset`, `forest`, `lavender`, `rose`, `slate`.

Эти настройки сохраняются в учётных данных сервера и применяются ко всем страницам подключения клиентов.

## Выбор цели SNI

Цель SNI (Server Name Indication) — это домен, за который выдаёт себя ваш сервер. Это **не** ваш собственный домен — это любой популярный сайт с TLS. Когда цензор пробует подключиться к серверу, он видит настоящий сертификат этого сайта, что делает ваш сервер неотличимым от обычного трафика.

По умолчанию (`www.microsoft.com`) хорошо работает в большинстве случаев. Для оптимальной скрытности отсканируйте сеть вашего сервера — цели из того же ASN труднее обнаружить, потому что диапазон IP совпадает:

```
meridian scan 1.2.3.4
```

**Хорошие цели** (глобальный CDN):
- `www.microsoft.com` — Azure CDN, глобальный
- `www.twitch.tv` — Fastly CDN, глобальный
- `dl.google.com` — Google CDN, глобальный
- `github.com` — Fastly CDN, глобальный

**Избегайте** `apple.com` и `icloud.com` — Apple контролирует свои собственные диапазоны ASN, что делает несоответствие IP/ASN сразу заметным.

### Цель маскировки vs. домен

Это две разные вещи:

- **Цель маскировки** (`--sni`) — любой популярный сайт, который вам **не** принадлежит. Reality выдаёт себя за него, чтобы ваш трафик выглядел как обычный HTTPS к этому сайту. Цензоры при проверке видят настоящий сертификат этого сайта.
- **Домен** (`--domain`) — домен, который вам **принадлежит**, направленный на ваш сервер через Cloudflare. Добавляет резервный путь подключения через CDN. См. [Режим домена](/md/ru/domain-mode/).

Нельзя использовать собственный домен как цель маскировки — сертификат будет совпадать с вашим сервером, а не с посторонним сайтом, что сводит маскировку на нет.

## Предварительная проверка

Не уверены, совместим ли ваш сервер?

```
meridian preflight 1.2.3.4
```

Тестирует достижимость целевого SNI, соответствие ASN, доступность портов, DNS, совместимость ОС и свободное место на диске — без установки чего-либо.

## Повторное развёртывание

Безопасно переустановить `meridian deploy` в любой момент. Provisioner полностью идемпотентен:
- Учётные данные загружаются из кэша, не переизготавливаются
- Шаги проверяют существующее состояние перед действием
- Нет дублирующейся работы

## Развёртывание не под root

```
meridian deploy 1.2.3.4 --user ubuntu
```

Не-root пользователи получают `sudo` автоматически. Пользователь должен иметь доступ к sudo без пароля.

## Локальное развёртывание

Если вы запускаете Meridian прямо на сервере (залогинены по SSH под root):

```
meridian deploy local
```

SSH пропускается, все команды выполняются локально. Ключевое слово `local` работает со всеми командами:

```
meridian client add alice --server local
meridian preflight local
meridian scan local
```

Полезно когда SSH на себя не работает (нет ключей, правила firewall), для повторного развёртывания на том же сервере, или в cloud-init скриптах.

## Cloudflare WARP

WARP маршрутизирует исходящий трафик сервера через сеть Cloudflare. Сайты назначения видят IP-адрес Cloudflare вместо IP вашего VPS.

```
meridian deploy 1.2.3.4 --warp
```

Интерактивный мастер также предлагает эту опцию.

**Когда WARP полезен:**
- Сайты блокируют IP-диапазоны вашего VPS-провайдера (часто бывает с датацентровыми IP на ChatGPT, Netflix и др.)
- Вы хотите скрыть IP VPS от сайтов назначения

**Когда WARP не нужен:**
- Обычный браузинг через прокси работает нормально — большинство сайтов не блокируют IP VPS
- Вам нужна максимальная скорость — WARP добавляет один дополнительный хоп (VPS → Cloudflare → сайт)

**Как это работает технически:** Meridian устанавливает клиент `cloudflare-warp` на сервер в режиме SOCKS5-прокси (слушает на `127.0.0.1:40000`). Xray использует его как исходящее подключение по умолчанию — весь исходящий трафик прокси идёт через Cloudflare. Входящие соединения (SSH, nginx, Xray) не затрагиваются. WARP бесплатен и не требует аккаунта Cloudflare.

## Гео-блокировка

По умолчанию Meridian блокирует `.ru` домены и российские IP-диапазоны через прокси:

```bash
meridian deploy 1.2.3.4 --no-geo-block
```

Это сделано специально. Так российские назначения не идут через прокси, и IP вашего VPS реже попадает в логи российских сервисов, откуда его потом могут начать блокировать.

Оставляйте включённой, если:
- Российские сайты и так открываются без VPN
- Вам нужен более безопасный режим по умолчанию для общего сервера

Отключайте, если:
- Вам нужно открывать `.ru` сайты именно через Meridian
- Вы хотите, чтобы вообще весь трафик шёл через VPN без исключений

В интерактивном мастере этот выбор задаётся явно. На уровне Xray это правила `geosite:category-ru` и `geoip:ru`.

## Добавление релейного узла

После развёртывания вашего выходного сервера добавьте релейный узел для восстановления при блокировке IP. Полные инструкции см. в [Руководстве релейных узлов](/md/ru/relay/).

```bash
meridian relay deploy RELAY_IP --exit YOUR_EXIT_IP
```

## Панель управления

Meridian разворачивает [3x-ui](https://github.com/MHSanaei/3x-ui) как веб-панель управления Xray. Вы можете открыть её в браузере для мониторинга трафика, просмотра конфигурации и проверки статуса сервера.

URL и учётные данные панели хранятся в локальном файле:

```
cat ~/.meridian/credentials/<IP>/proxy.yml
```

Секция `panel` содержит всё необходимое:

```yaml
panel:
  username: a1b2c3d4e5f6
  password: Xk9mP2qR7vW4nL8jF3hT6yBs
  web_base_path: n7kx2m9qp4wj8vh3rf6tby5e
  url: https://198.51.100.1/n7kx2m9qp4wj8vh3rf6tby5e/
```

Откройте `url` в браузере и войдите с указанными логином и паролем.

Путь панели генерируется случайно для безопасности — относитесь к нему как к паролю. Все команды `meridian` CLI используют тот же API панели, поэтому всё, что доступно в CLI, видно и в панели.

> **Примечание:** Если вы измените настройки напрямую в панели, они могут быть перезаписаны при следующем `meridian deploy`.
