阿里雲服務器搭建Halo博客系統


歡迎訪問我的博客:飛魚舍

前言:


Halo是一款現代化的個人獨立博客系統。Halo [ˈheɪloʊ],意為光環。當然,你也可以當成拼音讀(哈嘍)。輕快,簡潔,功能強大,使用 Java 開發的博客系統。

具有以下幾個特點:

  1. 快速部署

    一條命令即可啟動,完全沒有上手難度。

  2. 多主題

    完備的主題系統,支持在線下載和在線更新,並提供 9 款主題可供選擇(主題開發文檔正在開發中)。

  3. 拓展性

    提供 Content Api 和 Admin Api。你可以用於開發單頁面應用,微信小程序,桌面端管理軟件,管理 APP(已有)等。

  4. 附件管理

    支持本地上傳,又拍雲/七牛雲/阿里雲/SM.MS 等存儲服務。

  5. 評論管理

    擁有獨立的評論插件,使用 Vue 開發,只需在頁面引入構建好的 JS 文件即可,完美地和主題相結合。

  6. APP

    擁有使用 Flutter 開發的管理端 APP,支持 Android 和 iOS,隨時隨地發表你的想法。

之前我使用的是Typecho博客系統,現在來嘗試一下Halo博客系統。

使用Docker部署Halo


環境要求

  • CentOS 7.x
  • 1G 以上內存

服務器配置

更新軟件包

請確保服務器的軟件包已經是最新的。

sudo yum update -y

配置 Docker 運行環境

安裝必要依賴

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加軟件源信息

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

更新 yum 緩存

sudo yum makecache fast

安裝Docker

sudo yum install docker-ce docker-ce-cli containerd.io

啟動Docker后台服務

sudo systemctl start docker

允許當前用戶直接運行 docker 命令

sudo usermod -aG docker your_name#修改your_name

鏡像加速

# 新建 daemon.json 文件
sudo vim /etc/docker/daemon.json

將下面的配置復制進去即可:

{
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
}

安裝 Halo

自定義配置文件

考慮到部分用戶的需要,可能需要自定義比如端口等設置項,我們提供了公共的配置文件,並且該配置文件是完全獨立於安裝包的。當然,你也可以使用安裝包內的默認配置文件,但是安裝包內的配置文件是不可修改的。請注意:配置文件的路徑為 ~/.halo/application.yaml

# 下載配置文件到 ~/.halo 目錄
curl -o ~/.halo/application.yaml --create-dirs http://halo.ryanc.cc/config/application-template.yaml

修改配置文件

完成上一步操作,我們就可以自己配置 Halo 的運行端口,以及數據庫相關的配置了。

# 使用 Vim 工具修改配置文件
vim ~/.halo/application.yaml

打開之后我們可以看到:

H2 配置如下:

server:
  port: 8090
spring:
  datasource:
    type: com.zaxxer.hikari.HikariDataSource

    # H2 Database 配置
    driver-class-name: org.h2.Driver
    url: jdbc:h2:file:~/.halo/db/halo
    username: admin
    password: openadmin
  h2:
    console:
      settings:
        web-allow-others: false
      path: /h2-console
      enabled: false
  1. 如果需要自定義端口,修改 server 節點下的 port 即可。
  2. 默認使用的是 H2 Database 數據庫,這是一種嵌入式的數據庫,使用起來非常方便。需要注意的是,默認的用戶名和密碼為 admin123456,這個是自定義的,最好將其修改,並妥善保存。
  3. h2 節點為 H2 Database 的控制台配置,默認是關閉的,如需使用請將 h2.console.settings.web-allow-othersh2.console.enabled 設置為 true。控制台地址即為 域名/h2-console。注意:非緊急情況,不建議開啟該配置。

拉取最新 Halo 鏡像

sudo docker pull ruibaby/halo

創建容器並運行

docker run --rm -it -d --name halo -p 8090:8090  -v ~/.halo:/root/.halo ruibaby/halo
  1. --rm:停止之后自動刪除容器。
  2. --name:容器名。
  3. -p:占用端口,前者為宿主機端口,后者為 Halo 的運行端口,可在 application.yaml 配置。
  4. -v:目錄映射,一般不要修改。

更新 Halo 版本

# 停止容器
sudo docker stop halo

# 拉取最新的 Halo 鏡像
sudo docker pull ruibaby/halo

# 創建容器
docker run --rm -it -d --name halo -p 8090:8090  -v ~/.halo:/root/.halo ruibaby/halo

完成以上操作即可通過 ip:端口 訪問了。不過在此之前,最好先完成后續操作,我們還需要讓域名也可以訪問到 Halo,請繼續看配置域名訪問。

使用 Caddy 進行反向代理

Caddy 是一款使用 Go 語言開發的 Web 服務器。其配置更為簡潔,並可以自動申請及配置 SSL 證書(推薦)。

安裝 Caddy

# 安裝 Caddy 軟件包
yum install caddy -y

配置 Caddy

# 下載 Halo 官方的 Caddy 配置模板
curl -o /etc/caddy/conf.d/Caddyfile.conf --create-dirs http://halo.ryanc.cc/config/Caddyfile

下載完成之后,我們還需要對其進行修改。

# 使用 vim 編輯 Caddyfile
vim /etc/caddy/conf.d/Caddyfile.conf

打開之后我們可以看到

https://www.simple.com {
 gzip
 tls xxxx@xxx.xx
 proxy / localhost:port {
  transparent
 }
}
  1. 請把 https://www.simple.com 改為自己的域名。
  2. tls 后面的 xxxx@xxx.xx 改為自己的郵箱地址,這是用於自動申請 SSL 證書用的。需要注意的是,不需要你自己配置 SSL 證書,而且會自動幫你續簽。
  3. localhost:port 請將 port 修改為 Halo 的運行端口,默認為 8090。

修改完成之后啟動 Caddy 服務即可。

# 開啟自啟 Caddy 服務
systemctl enable caddy

# 啟動 Caddy
service caddy start

# 停止運行 Caddy
service caddy stop

# 重啟 Caddy
service caddy restart

# 查看 Caddy 運行狀態
service caddy status

注意

如果 Caddy 啟動出現諸如 [/usr/lib/systemd/system/caddy.service:23] Unknown lvalue 'AmbientCapabilities' in section 'Service' 這樣的問題,請使用 yum update -y 更新系統。然后再使用 service caddy restart 重啟,已知 CentOS 7.3 會出現該問題。

進階設置

多網址重定向到主網址,比如訪問 simple.com 跳轉到 www.simple.com 應該怎么做呢?

# 使用 vim 編輯 Caddyfile
vim /etc/caddy/conf.d/Caddyfile.conf

打開之后我們在原有的基礎上添加以下配置

https://simple.com {
  redir https://www.simple.com{url}
}

https://simple.comhttps://www.simple.com{url} 修改為自己需要的網址就行了,比如我要求訪問 ryanc.cc 跳轉到 www.ryanc.cc,完整的配置如下:

https://ryanc.cc {
  redir https://www.ryanc.cc{url}
}

https://www.ryanc.cc {
  gzip
  tls i@ryanc.cc
  proxy / localhost:8090 {
    transparent
  }
}

最后我們重啟 Caddy 即可。

到這里,關於 Caddy 反向代理的配置也就完成了,現在你可以訪問一下自己的域名,並進行 Halo 的初始化了。

注意

在設置了反向代理之后,請一定記得去 halo 的管理端設置一下正確的博客地址,否則會造成資源獲取不成功。


以上內容來自於Halo博客用戶文檔,更多使用詳情,請點擊鏈接了解。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM