众所周知这个网站是用halo搭建的
那么怎么搭建这样的网站呢?
额,我来教你:
Halo的背后
halo是飞志云旗下的开源软件
飞志云官网:FIT2CLOUD 飞致云 - 中国领先的开源软件公司
旗下有6款开源软件项目,比如著名的《1Panel》,JumpServer等
部署Halo
这是halo的官网,根据官方文档的指示,我们使用docker + debian12环境进行部署:
我们先创建docker-compose.yaml:
version: "3.8"
services:
halo:
image: halohub/halo:2.25.0 #版本2.25.0
restart: on-failure:3
depends_on:
- halodb
networks:
- halo_network
volumes:
- ./halo2:/root/.halo2
ports:
- "8090:8090" #服务端口
- "8091:8091" #API端口
environment:
- SPRING_R2DBC_URL=r2dbc:pool:postgresql://halodb:5432/halo
- SPRING_R2DBC_USERNAME=halo
- SPRING_R2DBC_PASSWORD=12345678 #数据库密码
- SPRING_SQL_INIT_PLATFORM=postgresql #数据库类型
- HALO_EXTERNAL_URL=https://www.candywind.com/ #外部访问网址
#mem_limit: 1g # 内存限制 1GB
#cpu_shares: 128 # CPU 权重 128
halodb:
image: postgres:latest #需要提前在本地镜像中放数据库镜像,推荐15.4
restart: on-failure:3
networks:
- halo_network
volumes:
- ./db:/var/lib/postgresql
environment:
- POSTGRES_PASSWORD=12345678 #需要与上文数据库密码相同
- POSTGRES_USER=halo
- POSTGRES_DB=halo
#mem_limit: 512m # 内存限制 512MB
#cpu_shares: 64 # CPU 权重 64
networks: #确保网络空间相同,否则无法与数据库通信
halo_network:保存好后直接
docker compose up -d就可以了,然后等待约1~2分钟然后就能打开本地网址测试啦!
配置公网
有公网ip
如果你有公网ip的话,我推荐直接在cloudflare上购买域名(有银联卡的情况下)
也可以挑选别的供应商
没有公网ip
也没有云服务器
这时候可以使用cloudflare tunnel(或者别的内网穿透软件),这样也可以,但大概率只能牺牲域名了
有云服务器
啊,你也跟我一样吗,那太好了
准备:
客户端:frpc
服务端:frps
现在我们需要配置一下组成内网穿透:
服务端:
bindPort = 30000
auth.token = "12345678" #你的安全密码,需要与客户端保持一致客户端:
loginFailExit = false
transport.tcpMuxKeepaliveInterval = 30
transport.heartbeatTimeout = 90
transport.heartbeatInterval = 30
transport.tcpMux = true
transport.protocol = "tcp"
serverAddr = "1.1.1.1" #换成你的服务器的公网ip地址
serverPort = 30000
auth.token = "12345678"
[[proxies]]
name = "Halo"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8090 #本地端口
remotePort = 8090 #公网端口
[proxies.transport]
useEncryption = true
useCompression = true保存,启动,等待输出类似
[0m[1;34m2026-06-13 17:41:23.094 [I] [client/service.go:378] [b590b256790a70f2] try to connect to server...
[0m[1;34m2026-06-13 17:41:23.137 [I] [client/service.go:370] [b590b256790a70f2] login to server success, get run id [XXXXXXXXXXXXXXX]
[0m[1;34m2026-06-13 17:41:23.159 [I] [client/control.go:176] [b590b256790a70f2] [Halo] start proxy success
这样就启动成功了,访问试一下吧
绑定域名
提示:大陆的云服务器只能绑定备案过的域名,如果域名无法备案,则需要使用香港/日本等服务器
首先我们需要购买域名,正品.com域名一年80左右,.top约14元,.xyz大约20元,注意,有些域名第一年便宜而来年会涨价!
我的云服务器是上海的,所以需要备案
在香港/澳门/台湾等非大陆的国内区域,日本,新加坡等国外区域的服务器可以绑定没有经过备案的域名
但需要承受被墙以及访问速度慢的问题
下一步就可以创建dns解析了
根据子域名进行解析,比如子域名是halo,那么最终访问的网址就是halo.XXXXXXXX.com
用www举例:创建一条A记录,来源默认,记录值填写服务器的公网ip,负载策略选择轮询,ttl使用默认(600s)
接下来部署nginx流量转发
Nginx
首先在云服务器上安装nginx,并编辑配置文件:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name XXXXXXXX.com www.XXXXXXXX.com; #服务器域名,最好两个都绑定
ssl_certificate /etc/nginx/ssl/XXXXXXXX.com.crt; #http证书
ssl_certificate_key /etc/nginx/ssl/XXXXXXXX.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
proxy_pass http://127.0.0.1:8090; #frps转发出来的网址
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;
}
}
# HTTP 重定向到 HTTPS
server {
listen 80;
listen [::]:80;
server_name XXXXXXXX.com www.XXXXXXXX.com;
return 301 https://$host$request_uri;
}保存后执行sudo nginx -t
然后执行sudo systemctl reload nginx
最后访问www.XXXXXXXX.com就可以了
结尾
至此,部署教程就结束了,如有错漏,欢迎指出,bye~~
我爱你们

我来教你怎么搭建Halo网站
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法