返回朋友圈

VPS 部署个人博客

原创栀初 · 朋友圈 · 2026 年 8 月 7 日

具体搭建步骤

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 后台管理面

image

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

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

查看点赞与评论