原文地址:https://lala.im/8963.html,請支持原作者!該處僅作轉載。
介绍
使用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