별도 서버에 설치
별도 서버 설치는 Remnawave Panel과 다른 서버에 구독 페이지를 설치하는 것을 의미합니다.
단계 1 - .env 파일 준비
Remnawave Panel이 설치된 서버에서 이 변경을 수행하세요.
/opt/remnawave/.env 파일을 편집하고 SUB_PUBLIC_DOMAIN을 구독 페이지 도메인 이름으로 변경합니다.
cd /opt/remnawave && nano .env
SUB_PUBLIC_DOMAIN을 구독 페이지 도메인 이름으로 변경합니다. 도메인 이름은 http 또는 https 없이 지정해야 합니다.
SUB_PUBLIC_DOMAIN=subscription.domain.com
Remnawave Panel 컨테이너를 재시작하는 것을 잊지 마세요:
cd /opt/remnawave && docker compose down remnawave && docker compose up -d && docker compose logs -f
단계 2 - docker-compose.yml 파일 만들기
이 단계와 다음 단계들은 다른 서버에서 수행해야 합니다!
구독 페이지를 설치할 서버에 Docker가 설치되어 있는지 확인하세요.
mkdir -p /opt/remnawave/subscription && cd /opt/remnawave/subscription && nano docker-compose.yml
services:
remnawave-subscription-page:
image: remnawave/subscription-page:latest
container_name: remnawave-subscription-page
hostname: remnawave-subscription-page
restart: always
env_file:
- .env
ports:
- '127.0.0.1:3010:3010'
networks:
- remnawave-network
networks:
remnawave-network:
name: remnawave-network
driver: bridge
external: false
이제 .env 파일을 만듭니다:
mkdir -p /opt/remnawave/subscription && cd /opt/remnawave/subscription && nano .env
Remnawave 대시보드에서 API 토큰을 만드세요. Remnawave 설정 → API 토큰.
다음 내용을 .env 파일에 붙여넣습니다:
APP_PORT=3010
REMNAWAVE_PANEL_URL=https://remnawave.panel.com
REMNAWAVE_API_TOKEN=API_TOKEN_FROM_REMNAWAVE
remnawave.panel.com을 패널 도메인 이름으로 교체하세요.
전체 .env 파일 참조
APP_PORT=3010
### Remnawave 패널 URL, http://remnawave:3000 또는 https://panel.example.com 사용 가능
REMNAWAVE_PANEL_URL=https://panel.example.com
REMNAWAVE_API_TOKEN=API_TOKEN_FROM_REMNAWAVE
# 사용자 지정 루트 경로에서 제공, 예를 들어: CUSTOM_SUB_PREFIX=sub
# 시작/끝에 /를 사용하지 마세요
CUSTOM_SUB_PREFIX=
# Marzban 링크 지원
MARZBAN_LEGACY_LINK_ENABLED=false
MARZBAN_LEGACY_SECRET_KEY=
# "Caddy with security" 애드온을 사용하는 경우, X-Api-Key를 여기에 지정할 수 있습니다.
CADDY_AUTH_API_TOKEN=
# Cloudflare Zero Trust를 사용하여 패널을 보호하는 경우, 보안을 우회하려면 이 변수를 사용하세요.
CLOUDFLARE_ZERO_TRUST_CLIENT_ID=
CLOUDFLARE_ZERO_TRUST_CLIENT_SECRET=
단계 3 - 컨테이너 시작
docker compose up -d && docker compose logs -f
단계 4 - 역방향 프록시 구성
Remnawave와 그 구성 요소는 서브 경로에서의 서비스를 지원하지 않습니다. (예: location /subscription {)
도메인 또는 서브도메인의 루트 경로에서 제공되어야 합니다.
사용자 지정 경로에는 CUSTOM_SUB_PREFIX 매개변수를 사용할 수 있습니다.
Caddy
Caddy 구성
/opt/remnawave/caddy 디렉토리에 Caddyfile이라는 파일을 만듭니다.
mkdir -p /opt/remnawave/caddy && cd /opt/remnawave/caddy && nano Caddyfile
다음 구성을 붙여넣습니다.
REPLACE_WITH_YOUR_DOMAIN을 구독 페이지 도메인 이름으로 교체하세요.
아래 구성을 검토하고 빨간색으로 강조 표시된 줄을 찾으세요.
https://SUBSCRIPTION_PAGE_DOMAIN {
reverse_proxy * http://remnawave-subscription-page:3010
}
:443 {
tls internal
respond 204
}
SUBSCRIPTION_PAGE_DOMAIN을 도메인 이름으로 교체하세요.
아래 구성을 검토하고 초록색으로 강조 표시된 줄을 찾으세요.
docker-compose.yml 만들기
/opt/remnawave/caddy 디렉토리에 docker-compose.yml 파일을 만듭니다.
cd /opt/remnawave/caddy && nano docker-compose.yml
다음 구성을 붙여넣습니다.
services:
caddy:
image: caddy:2.9
container_name: 'caddy'
hostname: caddy
restart: always
ports:
- '0.0.0.0:443:443'
- '0.0.0.0:80:80'
networks:
- remnawave-network
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy-ssl-data:/data
networks:
remnawave-network:
name: remnawave-network
driver: bridge
external: true
volumes:
caddy-ssl-data:
driver: local
external: false
name: caddy-ssl-data
컨테이너 시작
docker compose up -d && docker compose logs -f -t
단계 5 - 사용
구독 페이지는 https://subdomain.panel.com/<shortUuid>에서 사용할 수 있습니다.
구독 페이지 구성 (선택 사항)
Remnawave 대시보드의 서브페이지 빌더에서 구독 페이지를 사용자 지정할 수 있습니다. 이를 통해:
- 다양한 VPN 앱에 대한 지원 추가
- 여러 언어로 텍스트 및 지침 사용자 지정
- 자체 브랜딩 추가 (로고, 회사 이름, 지원 링크)
- "주요" 앱으로 표시할 앱 구성