Remnawave — это современная система управления VPN‑инфраструктурой (XRay/VLESS/SS), состоящая из Панели (Panel), Узлов (Nodes), страницы подписки и обратного прокси.
curl -fsSL https://get.docker.com | sh
mkdir -p /opt/remnawave
cd /opt/remnawave
curl -o docker-compose.yml https://raw.githubusercontent.com/remnawave/backend/refs/heads/main/docker-compose-prod.yml
curl -o .env https://raw.githubusercontent.com/remnawave/backend/refs/heads/main/.env.sample
.envГенерируем секреты:
openssl rand -hex 64
Генерируем пароль Postgres:
pw=$(openssl rand -hex 24) && \
sed -i "s/^POSTGRES_PASSWORD=.*/POSTGRES_PASSWORD=$pw/" .env && \
sed -i "s|^\(DATABASE_URL=\"postgresql://postgres:\)[^\@]*\(@.*\)|\1$pw\2|" .env
Настройка доменов:
FRONT_END_DOMAIN=panel.yourdomain.com
SUB_PUBLIC_DOMAIN=panel.yourdomain.com/api/sub
docker compose up -d
docker compose logs -f -t
apt install nginx -y
apt install socat cron -y
curl https://get.acme.sh | sh -s email=you@example.com
source ~/.bashrc
Получение сертификата:
mkdir -p /etc/nginx/ssl
acme.sh --issue --standalone -d panel.yourdomain.com \
--key-file /etc/nginx/ssl/privkey.key \
--fullchain-file /etc/nginx/ssl/fullchain.pem \
--alpn --tlsport 8443
/etc/nginx/sites-enabled/remnawave.conf
upstream remnawave {
server 127.0.0.1:3000;
}
server {
listen 443 ssl http2;
server_name panel.yourdomain.com;
ssl_certificate /etc/nginx/ssl/fullchain.pem;
ssl_certificate_key /etc/nginx/ssl/privkey.key;
location / {
proxy_pass http://remnawave;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
listen 80;
server_name panel.yourdomain.com;
return 301 https://$host$request_uri;
}
Перезапуск:
nginx -t && systemctl restart nginx
curl -fsSL https://get.docker.com | sh
mkdir /opt/remnanode
cd /opt/remnanode
Панель → Nodes → Add Node
Выбираем порт, название, параметры.
Скопировать конфигурацию из панели → вставить в:
nano docker-compose.yml
docker compose up -d
docker compose logs -f
.envSUB_PUBLIC_DOMAIN=sub.yourdomain.com
mkdir -p /opt/remnawave/subscription
cd /opt/remnawave/subscription
version: "3.8"
services:
subscription:
container_name: remnawave-subscription
image: remnawave/subscription:latest
environment:
- API_BASE_URL=https://panel.yourdomain.com/api/sub
ports:
- 8181:80
restart: unless-stopped
Запуск:
docker compose up -d
/opt/remnanode/geoip
/opt/remnanode/geosite
/var/lib/docker/containers/*/*.log {
rotate 7
daily
compress
missingok
delaycompress
copytruncate
}
/opt/remnanode/certs
cd /opt/remnawave
docker compose pull
docker compose down
docker compose up -d
cd /opt/remnanode
docker compose pull
docker compose down
docker compose up -d
docker compose logs -f --tail=100
docker compose logs -f --tail=100