Skip to content

elseform/xray-vless-xhttp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Набор для развёртывания Xray и Caddy

Этот репозиторий поднимает на Debian 12:

  • статический сайт через Caddy;
  • Xray с клиентскими ссылками VLESS + XHTTP;
  • базовый firewall через nftables.

Пре-реквизиты

  • VPS или VM с Debian 12, доступом по root или через пользователя с sudo.
  • Два публичных IPv4-адреса на этой вмке.
  • Домен и DNS-записи:
    • основной домен, например example.com;
    • www-домен, например www.example.com;
  • домен для Xray, например h3.example.com;
  • отдельный домен для старого REALITY-контура, например h2.example.com.
  • DNS-записи должны указывать напрямую на сервер, без CDN-прокси.
  • Email для Let's Encrypt.
  • Локальная машина, с которой вы будете запускать скрипты, с bash, ssh, rsync и scp.
  • SSH-доступ к серверу.

Деплой

  1. Скопируйте пример переменных:
cp .env.example .env
  1. Откройте .env и заполните обязательные значения:
Переменная Где взять
DOMAIN Ваш основной домен, который будет открывать сайт, например example.com. Берётся из вашего домена у регистратора или DNS-провайдера.
WWW_DOMAIN Поддомен для сайта, обычно www. от основного домена, например www.example.com. Придумываете сами и добавляете в DNS.
H3_DOMAIN Отдельный поддомен для Xray, например h3.example.com. Придумываете сами и добавляете в DNS.
REALITY_DOMAIN Отдельный поддомен для старого REALITY-контура, например h2.example.com. Если этот контур вам нужен, имя тоже задаёте сами и добавляете в DNS.
IP1 Первый публичный IPv4-адрес сервера. Берётся из панели хостинг-провайдера или с самой машины через ip -4 addr show.
IP2 Второй публичный IPv4-адрес сервера. Берётся там же: из панели провайдера или с сервера через ip -4 addr show.
SSH_USER Пользователь для входа по SSH. Обычно это root, если вы подключаетесь под root.
SSH_HOST Адрес для SSH-подключения. Обычно это один из публичных IP сервера или отдельное DNS-имя, если SSH заведён на него.
SSH_PORT Порт SSH. Обычно 22, если вы не меняли его вручную.
ACME_EMAIL Ваш email для Let's Encrypt. Используйте рабочий адрес, к которому у вас есть доступ.
  1. Если вход на VM идёт по ключу, проверьте SSH_KEY_PATH. Если по паролю, оставьте SSH_BATCH_MODE=no.

  2. Подготовьте VM:

scripts/bootstrap-remote.sh

Этот шаг установит Caddy, Xray, nftables и создаст нужные директории.

  1. Сгенерируйте секреты:
scripts/generate-secrets-remote.sh

Скрипт сгенерирует UUID, ключи и случайные пути, затем подмешает их в локальный .env.

  1. Дозаполните в .env параметры, которые скрипт не может угадать сам:
  • REALITY_TARGET
  • REALITY_SERVER_NAME
  1. Проверьте, что DNS уже смотрит на IP2 для сайта и H3_DOMAIN. После этого выполните деплой:
scripts/deploy-remote.sh
  1. После успешного деплоя возьмите клиентские ссылки из файла:
build/client-links.txt

Что делает деплой

После рендера и установки на сервере используются такие пути:

  • сайт: /var/www/xray-vless-xhttp-site
  • конфиг Caddy: /etc/caddy/Caddyfile
  • конфиг Xray: /usr/local/etc/xray/config.json
  • firewall: /etc/nftables.conf
  • бэкапы предыдущих конфигов: /var/backups/xray-vless-xhttp

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors