NAS搭建博客的进阶玩法:解锁私人数字空间的无限可能

  • 当你用于一台NAS,那就会忍不住的开始折腾,玩腻了各种家庭影院,碎片化知识笔记,或许你想要有个更高的追求,那就是搭建自己的博客网站,建立自己私有的数字空间,数据私有化。

  • 而在NAS上部署Halo博客,远不止“写文章”这么简单——一台NAS+一个Docker容器,就能打造你的“一站式内容中枢”:托管多个独立站点(技术博客/摄影图库/知识库),无缝联动NAS影音库实现文章嵌入4K影片,通过RSS聚合外部内容,甚至结合内网穿透工具将本地AI模型集成到博客中,让访客在线体验AI绘画。这种零成本、高自由度的数据私有化玩法,才是NAS建站党的终极浪漫!

什么是Halo?为什么选择它?

Halo 是一款基于Java的开源博客/CMS系统,自2.0版本后升级为通用建站工具,适合搭建个人博客、企业官网甚至社区平台。其核心优势包括:

  • 极简部署:支持Docker一键安装,5分钟快速上线。

  • 轻量化、高性能的 Java 博客引擎:启动包仅数十兆,运行流畅、响应迅速。相比于传统的 WordPress,Halo 的依赖更少,更适合资源有限的 NAS 环境。

  • 模块化主题与插件:Halo2 提供丰富的主题市场和插件生态,你可以随时更换主题风格、安装 SEO 插件、开启多语言支持,让你的网站更专业、更个性化。

  • 现代化后台管理:Halo2 全新改版了后台管理界面,采用响应式设计,支持深色模式,一键操作直观简单。无论是发表文章、管理评论,还是自定义导航、设置插件,都能在图形化界面中轻松完成。

  • 多端管理:提供Web端和Flutter开发的移动端APP,随时随地更新内容。

  • Markdown 友好支持:写作体验零门槛。Halo 内置强大的 Markdown 编辑器,实时预览文章样式,支持表格、代码高亮、数学公式,满足技术博客、教程和日常生活日志的各种需求。

  • SEO友好:内置URL优化、Sitemap生成、Meta标签配置等功能。

  • 免费开源:代码托管于GitHub,社区活跃,持续更新。

在线体验

部署教程

Docker Compose方式安装

  1. 演示以在群晖NAS系统上安装为例
    (其他系统请自行安装好最新版本Docker、docker compose)

  2. 打开群晖的SSH功能,使用终端软件进行连接,并切换到root状态下。
    DSM open SSH.png

  3. 在群晖内创建一个文件夹,右键选择>属性>常规,复制该文件夹的路径。
    wechat_2025-05-14_183952_466 (1).png

  4. 在终端内执行命令进入该文件夹路径

    # 将/volume1/blog换成你自己的文件夹路径
    
    cd /volume1/blog
  5. 创建项目文件夹及子文件夹

    mkdir -p Halo/{halo2,db}
  6. 进入项目文件夹

    cd Halo
  7. 编辑docker-compose.yml模板文件

    vi docker-compose.yml
  8. 按字母i键进入编辑模式,复制并修改下面的配置文件,粘贴到终端,按Esc键退出编辑模式,输入:wq保存并退出。
    (排版太挤的就先粘贴到文本文件内,修改后再使用,灵活应变。)

    # Halo支持多种数据库,演示使用的是Halo + PostgreSQL
    # 此示例的 PostgreSQL 数据库容器默认没有设置端口映射,如果需要在容器外部访问数据库,可以自行在 halodb 服务中添加端口映射,PostgreSQL 的端口为 5432。
    # 如果需要使用其他数据库,前往官网查看:https://docs.halo.run/getting-started/install/docker-compose/?current=halo-postgresql
    
    
    version: "3"
    
    services:
      halo:
        image: registry.fit2cloud.com/halo/halo:2.20    # Halo2已取消latest版本标签,如需使用最新版,可前往GitHub查看Halo的最新版本是2.20.?
        restart: on-failure:3
        depends_on:
          halodb:
            condition: service_healthy
        networks:
          halo_network:
        volumes:
          - ./halo2:/root/.halo2    # 可将左侧的./halo2换成完整的NAS文件夹路径(Halo系统+网站存储的数据文件夹)
        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=halo
          # PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
          - --spring.r2dbc.password=openpostgresql    # 将openpostgresql换成你自己的密码(数据库密码)
          - --spring.sql.init.platform=postgresql
          # 外部访问地址,请根据实际需要修改
          - --halo.external-url=http://localhost:8090/     # 可将http://localhost:8090/换成你自己的域名路径(新版已支持系统内直接设置)
      halodb:
        image: postgres:15.4
        restart: on-failure:3
        networks:
          halo_network:
        volumes:
          - ./db:/var/lib/postgresql/data    # 可将左侧的./db换成完整的NAS文件夹路径(数据库文件夹)
        healthcheck:
          test: [ "CMD", "pg_isready" ]
          interval: 10s
          timeout: 5s
          retries: 5
        environment:
          - POSTGRES_PASSWORD=openpostgresql    # 将openpostgresql换成你自己的密码(数据库密码)
          - POSTGRES_USER=halo
          - POSTGRES_DB=halo
          - PGUSER=halo
    
    networks:
      halo_network:
  9. 查看当前文件夹路径

    pwd
  10. 授权该项目文件夹内的读写权限(部分NAS系统需要【如群晖】,否则容器无读写权限访问运行,按需执行。)

    # 将/volume1/blog/Halo/换成你自己的实际文件夹路径
    
    chmod -R 777 /volume1/blog/Halo/
  11. 执行命令,启动docker-compose模板文件,拉取镜像并创建容器。

    docker-compose up -d
    
    或
    
    docker compose up -d
  12. 查看正在运行的项目容器

    docker-compose ps
    
    或
    
    docker compose ps
  13. 查看正在运行的项目容器实时日志,按Ctrl+C中断查看。

    docker-compose logs -f
    
    或
    
    docker compose logs -f

配置Halo

  1. 打开浏览器,以NAS的IP+默认的端口8090进行访问。
    以本机为例:http://172.16.19.200:8090/
    根据提示设置(后面一样可以改)

  2. 设置后进行登陆

  3. 登录成功

  4. 应用市场内有几十上百个插件和主题任你挑选,选择一个合适的主题后简单配置即可开始你的创作。

Halo网站搭建经验

  • 以下将根据实际经验对各位进行排除搭建网站的坑,扫除万难!

相关地址

文末

👇👇👇