VPS 部署个人博客
具体搭建步骤
1.服务器基础环境准备
连接到你的 SSH 后,首先更新系统并安装 Docker。推荐使用 Debian 或 Ubuntu 系统
- 更新系统软件包:apt update && apt install -y curl socat wget
- 安装 Docker (使用官方一键脚本):curl -fsSL https://get.docker.com | bash -s docker
- 启动并设置开机自启:systemctl enable --now docker
2.部署 Halo 博客
我们将使用 Docker Compose 来一键启动博客程序和数据库
- 创建工作目录:mkdir -p ~/halo && cd ~/halo
- 创建配置文件:使用 nano docker-compose.yaml 命令,粘贴以下内容(Halo+PostgreSQL 推荐)
plaintext
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,你应该就能看到安装引导界面了
3.配置域名与 SSL(反向代理)
为了让博客支持 https:// 访问,建议再部署一个 Nginx Proxy Manager (NPM)。它提供可视化的网页界面来申请 SSL 证书
- 创建 NPM 目录:mkdir -p /root/npm
- 进入 NPM 目录:cd /root/npm
- 创建 docker-compose.yml:nano docker-compose.yml
输入以下内容:
plaintext
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 端口,可解决网站不安全问题。