<===
2025-11-30 09:03:56
Кратко: проще всего поднять Xray VLESS+Reality в Docker через готовый образ или docker‑compose‑проекты, где уже есть пример конфига и переменные окружения. Ниже — минимальная рабочая схема под VPS в Германии.
## 1. Предварительные условия
1. Открыты порты 80/443 в фаерволе VPS (и в панели провайдера).
2. На сервере установлен Docker и docker compose plugin (`docker compose`). Установка по официальному скрипту Docker: `curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh`.[1][2]
3. Желательно иметь домен, указывающий на IP VPS (для нормального SNI), но Reality может работать и по IP, если использовать валидный SNI внешнего сайта.[3][4]
## 2. Вариант №1: готовый образ `xtls-reality-docker` (минимум настроек)
1. Сгенерировать `short_id` на хосте:
```bash
openssl rand -hex 8
```
Значение сохранить, это `SHORT_ID` для клиента.[2][5]
2. Выбрать SNI (например, `www.cloudflare.com` или любой крупный сайт с 443/tcp). Это то, что клиент будет указывать как `serverName`/SNI.[4][3]
3. Запустить контейнер:
```bash
sudo docker pull myelectronix/xtls-reality:latest
sudo docker run -d --rm \
-p 443:443 \
-e SNI=ВАШ_SNI \
-e SHORT_ID=ВАШ_SHORT_ID \
-v xtls-reality-volume:/opt/xray/config \
--name xtls-reality myelectronix/xtls-reality:latest
```
Образ сам поднимет Xray с VLESS+Reality и сгенерирует ключи; конфиги будут лежать в volume `xtls-reality-volume`.[5]
4. Если удобнее через docker‑compose, клонировать репозиторий и запустить:
```bash
git clone https://github.com/myelectronix/xtls-reality-docker
cd xtls-reality-docker
# при необходимости отредактировать docker-compose.yml (SNI/SHORT_ID)
docker compose up -d
```
В репозитории есть пример docker‑compose и описание переменных окружения, которые нужно подставить под свой домен/SNI.[5]
## 3. Вариант №2: свой `docker-compose.yml` + свой config.json
Если хочешь полный контроль над конфигом:
1. Создать структуру каталогов на VPS, например:
```bash
mkdir -p ~/xray/data
cd ~/xray
```
2. Сгенерировать Reality‑ключи и shortId:
```bash
docker run --rm ghcr.io/xtls/xray-core:latest xray x25519
# сохранить private / public key
openssl rand -hex 8 # shortId
```
3. Создать `data/config.json` с inbound VLESS+Reality (можно взять за основу пример реальности c XTLS Vision из гайдов и подставить свои `privateKey`, `shortId`, `serverNames`, `dest`).[2][3][4]
4. Создать `docker-compose.yml` примерно такого вида:
```yaml
services:
xray:
image: ghcr.io/xtls/xray-core:latest
container_name: xray-reality
restart: unless-stopped
volumes:
- ./data/config.json:/usr/local/etc/xray/config.json:ro
ports:
- "0.0.0.0:443:443/tcp"
command: ["xray", "-config", "/usr/local/etc/xray/config.json"]
```
Такой compose-файл поднимает Xray в отдельном контейнере и прокидывает порт 443 наружу.[2]
5. Запуск/управление:
```bash
docker compose up -d
docker compose logs -f
```
## 4. Вариант с web‑панелью (3x-ui)
Если хочешь кликать через UI:
1. Создать `docker-compose.yml` с образом 3X‑UI:
```yaml
version: "3"
services:
3x-ui:
image: ghcr.io/mhsanaei/3x-ui:latest
container_name: 3x-ui
network_mode: host
restart: unless-stopped
volumes:
- ./db/:/etc/x-ui/
```
2. Запустить:
```bash
docker compose up -d
```
3. Зайти в веб‑панель (порт и пароль берёшь из логов контейнера) и там уже создать инстанс VLESS+Reality через GUI.[6]
***
Если напишешь, какой именно вариант тебе ближе (чистый Xray с ручным конфигом или готовый образ/панель), можно разобрать конкретный `config.json` под твой домен/IP и клиент (например, v2rayNG/nekobox).
[1](https://github.com/Arman92/xtls-dockerized)
[2](https://linuxguidance.net/xray-xtls-reality-in-docker/)
[3](https://github.com/wpdevelopment11/xray-tutorial)
[4](https://xtls.github.io/en/config/outbounds/vless.html)
[5](https://github.com/myelectronix/xtls-reality-docker)
[6](https://semenov.work/posts/3x-ui-vless-reality-vpn/)
[7](https://stackoverflow.com/questions/68633740/installing-xray-and-configure-with-jfrog-artifactory-using-docker-compose)
[8](https://github.com/XTLS/Xray-core/issues/4033)
[9](https://stackoverflow.com/questions/69563734/issues-with-xray-as-side-container-in-aws-ecs-with-docker-compose)
[10](https://doc.openresty.com/en/xray/on-premise/docker-compose-deployment/)