VPS部署个人博客
🛠️具体搭建步骤
第一步:服务器基础环境准备
连接到你的 SSH 后,首先更新系统并安装 Docker。推荐使用 Debian 12 或 Ubuntu 24.04 系统。
更新系统软件包
apt update && apt upgrade -y安装 Docker(使用官方一键脚本)
curl -fsSL https://get.docker.com | bash -s docker启动并设置开机自启
systemctl enable --now docker第二步:部署 Halo 博客
我们将使用 Docker Compose 来一键启动博客程序和数据库。
创建工作目录:
mkdir -p ~/halo && cd ~/halo创建配置文件:
使用 nano docker-compose.yaml 命令,粘贴以下内容(Halo+PostgreSQL 推荐):
services:
halo:
image: registry.fit2cloud.com/halo/halo-pro:2.22
restart: on-failure:3
depends_on:
halodb:
condition: service_healthy
networks:
halo_network:
volumes:
- ./halo2:/root/.halo2
ports:
- "8090:8090"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
interval: 30s
timeout: 5s
retries: 5
start_period: 30s
environment:
# JVM 参数,默认为 -Xmx256m -Xms256m,可以根据实际情况做调整,置空表示不添加 JVM 参数
- JVM_OPTS=-Xmx256m -Xms256m
command:
- --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
- --spring.r2dbc.username=zhichu
# PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
- --spring.r2dbc.password=123456789
- --spring.sql.init.platform=postgresql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://blog.zhi-chu.top/
halodb:
image: postgres:15.4
restart: on-failure:3
networks:
halo_network:
volumes:
- ./db:/var/lib/postgresql/data
healthcheck:
test: [ "CMD", "pg_isready" ]
interval: 10s
timeout: 5s
retries: 5
environment:
- POSTGRES_PASSWORD=123456789
- POSTGRES_USER=zhichu
- POSTGRES_DB=halo
- PGUSER=halo
networks:
halo_network:启动容器:
docker compose up -d等待片刻后,通过浏览器访问 http://你的服务器IP:8090,你应该就能看到安装引导界面了。
第三步:配置域名与 SSL(反向代理)
为了让博客支持 https:// 访问,建议再部署一个 Nginx Proxy Manager (NPM)。它提供可视化的网页界面来申请 SSL 证书。
📌部署 NPM:
确保已安装确保已安装 Docker:docker -v
创建 NPM 目录:mkdir -p /root/npm
进入NPM 目录:cd /root/npm
创建 docker-compose.yml:nano docker-compose.yml
输入以下内容
services:
npm:
image: 'jc21/nginx-proxy-manager:latest'
networks:
- npm
restart: unless-stopped
ports:
- '80:80' # Nginx 的 80 端口
- '443:443' # Nginx 的 443 端口
- '81:81' # Nginx Proxy Manager 的管理端口
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
# 定义网络以便 NPM 与其他容器通信
networks:
npm:
name: npm
attachable: true📌Ctrl + O保存 回车 Ctrl + X退出
启动容器:docker compose up -d
等待片刻后,通过浏览器访问 http://你的服务器IP:81 访问NPM后台管理面

📌初始登录会先设置用户名、邮箱、密码。之后用邮箱和密码登录。
📌通过在代理服务添加反代,具体输入如下,需要将VPS IP用域名托管。



📌只开启以上设置,其余设置保持不变。这里需要强制打开SSL,将http流量经过80端口转发至https的443端口,可解决网站不安全问题。