Docker部署Xboard面板+Hysteria2节点

网络资源 admin 来源:lala 9个月前 (02-27) 827次浏览 0个评论

介绍

使用Docker可以更快速、方便的部署。如需纯手动部署可参考:https://lala.im/8953.html

安装Xboard

系统Debian12,安装需要用到的包:

apt -y update 
apt -y install curl nginx python3-certbot-nginx

安装Docker:

curl -fsSL https://get.docker.com -o get-docker.sh 
sh get-docker.sh

新建目录以及docker-compose文件:

mkdir -p /opt/xboard && cd /opt/xboard && nano docker-compose.yml

写入如下配置:

version: '3.8'
services:
  xboard:
    image: ghcr.io/cedar2025/xboard:latest
    container_name: xboard
    restart: unless-stopped
    environment:
      - docker=true
    ports:
      - "127.0.0.1:7001:7001"
    volumes:
      - ./.env:/www/.env
    depends_on:
      - mariadb
      - redis

  mariadb:
    image: mariadb:10.11
    container_name: mariadb
    restart: unless-stopped
    environment:
      - MARIADB_ROOT_PASSWORD=password // 设置你的数据库ROOT密码
      - MARIADB_DATABASE=xboard // 数据库名
    volumes:
      - ./mariadb-data:/var/lib/mysql

  redis:
    image: redis:7.0-alpine
    container_name: redis
    restart: unless-stopped
    volumes:
      - ./redis-data:/data

[重要]在/opt/xboard目录下新建一个空白的.env文件:

touch .env

安装Xboard:

docker compose run -it --rm xboard php artisan xboard:install

安装过程如图所示:

[备注1] 不要启用内置的SQLite数据库和Redis!

[备注2] 数据库地址填写:mariadb

[备注3] Redis地址填写:redis

安装完成后会有类似提示,务必记住管理员密码和后台地址:

数据库导入完成
开始注册管理员账号
🎉:一切就绪
管理员邮箱:[email protected]
管理员密码:hidden
访问 http(s)://你的站点/ac2762c1 进入管理面板,你可以在用户中心修改你的密码。

接下来启动Xboard:

docker compose up -d

配置Nginx反代:

nano /etc/nginx/sites-available/xboard

写入如下配置:

server {
    listen 80;
    server_name xboard.example.com;
    client_max_body_size 0;

    location / {
        proxy_pass http://127.0.0.1:7001;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        proxy_set_header Server-Protocol $server_protocol;
        proxy_set_header Server-Name $server_name;
        proxy_set_header Server-Addr $server_addr;
        proxy_set_header Server-Port $server_port;
    }
}

启用站点:

ln -s /etc/nginx/sites-available/xboard /etc/nginx/sites-enabled/xboard

签发SSL证书:

certbot --nginx

设置面板通讯密钥、添加权限组、添加订阅、添加节点请参考这篇文章:https://lala.im/8953.html

部署Hysteria2后端

系统Debian12,安装Docker:

apt -y update
apt -y install curl
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

新建目录以及docker-compose文件:

mkdir -p /opt/hysteria-server && cd /opt/hysteria-server && nano docker-compose.yml

写入如下配置,重要的部分都写了注释:

version: '3.8'
services:
  certbot:
    image: certbot/dns-cloudflare:latest
    container_name: certbot
    restart: unless-stopped
    volumes:
      - certbot_etc:/etc/letsencrypt
      - certbot_var:/var/lib/letsencrypt
      - ./cloudflare.ini:/etc/cloudflare.ini
    command: >-
      certonly
      --dns-cloudflare
      --dns-cloudflare-credentials /etc/cloudflare.ini // 存放CloudFlare的API密钥文件
      --email [email protected] // 你的邮箱
      --agree-tos
      --no-eff-email
      -d *.example.com // 要申请的域名,*代表通配符,多个域名可以使用多个-d参数来指定

  hysteria:
    image: ghcr.io/cedar2025/hysteria:latest
    container_name: hysteria
    restart: unless-stopped
    network_mode: "host" // 使用主机网络
    volumes:
      - certbot_etc:/etc/letsencrypt
      - ./server.yaml:/etc/hysteria/server.yaml

volumes:
  certbot_etc:
  certbot_var:

在/opt/hysteria-server目录下新建cloudflare.ini配置文件:

nano cloudflare.ini

写入如下配置:

dns_cloudflare_api_token = example

CloudFlareAPI申请方法:https://developers.cloudflare.com/fundamentals/api/get-started/create-token/

在/opt/hysteria-server目录下新建server.yaml配置文件:

nano server.yaml

写入如下配置:

v2board:
  apiHost: https://xboard.example.com // Xboard面板地址
  apiKey: panelkey // Xboard面板内设置的通讯密钥
  nodeID: 1 // Xboard面板内的节点ID
tls:
  type: tls
  cert: /etc/letsencrypt/live/example.com/fullchain.pem // 证书路径
  key: /etc/letsencrypt/live/example.com/privkey.pem // 私钥路径
auth:
  type: v2board
trafficStats:
  listen: 127.0.0.1:7653
acl:
  inline:
    - reject(10.0.0.0/8)
    - reject(172.16.0.0/12)
    - reject(192.168.0.0/16)
    - reject(127.0.0.0/8)
    - reject(fc00::/7)

先申请SSL证书:

docker compose run --rm certbot

续签证书可用下面的命令:

docker compose run --rm certbot renew

然后启动后端:

docker compose up -d hysteria

默认情况下,后端会监听在443端口,直到你在面板上添加好了对应的节点,重启后端生效:

docker compose restart hysteria

VPS小白 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Docker部署Xboard面板+Hysteria2节点
喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址