Домен и HTTPS
Три способа открыть панель: Caddy, Nginx или по IP.
Установщик предлагает два режима доступа, а для режима с доменом два веб-сервера на выбор.
| Вариант | Когда выбирать | Адрес панели |
|---|---|---|
| Домен + Caddy | Порты 80 и 443 свободны. Рекомендуем | https://panel.example.com |
| Домен + Nginx | На сервере уже работают сайты на Nginx | https://panel.example.com |
| По IP | Домена пока нет | http://IP:4250 |
Подготовка домена
Создайте у регистратора домена A-запись на IP сервера, например panel.example.com → 203.0.113.10.
Проверить, что запись обновилась:
dig +short panel.example.comЕсли домен за Cloudflare, на время выпуска сертификата выключите оранжевое облако (режим DNS only).
Caddy (рекомендуем)
Caddy сам получает и продлевает сертификат Let's Encrypt, ничего настраивать не нужно. Ему нужны свободные порты 80 и 443. Если они заняты, установщик предупредит и предложит Nginx.
Nginx
Вариант для серверов, где уже работают другие сайты. Ваши сайты не затрагиваются: установщик
добавляет один отдельный файл /etc/nginx/sites-available/vpn-panel.conf только для домена панели.
Установщик сам:
- запустит панель в Docker на
127.0.0.1:4250, снаружи этот порт не виден; - создаст конфиг Nginx и перезагрузит его, предварительно проверив через
nginx -t; - выпустит сертификат через
certbot(поставит его, если нет).
Для панели нужен отдельный поддомен. Домен, на котором уже работает ваш сайт, не подойдёт: панель открывается с корня домена. Установщик это заметит и остановится.
Сертификат не выпустился? Чаще всего это значит, что A-запись ещё не обновилась. Когда обновится:
certbot --nginx -d panel.example.com -m ваш@email.com --agree-tos --redirectПодставьте своё в трёх местах: домен, пути к сертификату и порт.
server {
listen 443 ssl;
server_name panel.example.com;
ssl_certificate /etc/letsencrypt/live/panel.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/panel.example.com/privkey.pem;
client_max_body_size 200m;
location / {
proxy_pass http://127.0.0.1:4250;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 300s;
}
}- Порт:
grep PANEL_PORT ~/vpn-panel/.env(по умолчанию 4250). - Сертификат:
certbot certonly --nginx -d panel.example.com. - Применить:
nginx -t && systemctl reload nginx.
По IP
Панель открывается по http://IP:4250 без шифрования. Это удобно, чтобы быстро начать, но:
- трафик до панели не шифруется: используйте сложный пароль и 2FA;
- часть платёжных систем не примет вебхук на HTTP-адрес. Оплата всё равно подтвердится опросом статуса, но не мгновенно.
Появился домен? Запустите bash install.sh ещё раз и выберите режим 1. Данные сохранятся.
Не нашли ответ или заметили ошибку? Напишите в чат Reactus в Telegram.