歡迎訪問我的博客:飛魚舍
前言:
Halo是一款現代化的個人獨立博客系統。Halo [ˈheɪloʊ],意為光環。當然,你也可以當成拼音讀(哈嘍)。輕快,簡潔,功能強大,使用 Java 開發的博客系統。
具有以下幾個特點:
-
快速部署
一條命令即可啟動,完全沒有上手難度。
-
多主題
完備的主題系統,支持在線下載和在線更新,並提供 9 款主題可供選擇(主題開發文檔正在開發中)。
-
拓展性
提供 Content Api 和 Admin Api。你可以用於開發單頁面應用,微信小程序,桌面端管理軟件,管理 APP(已有)等。
-
附件管理
支持本地上傳,又拍雲/七牛雲/阿里雲/SM.MS 等存儲服務。
-
評論管理
擁有獨立的評論插件,使用 Vue 開發,只需在頁面引入構建好的 JS 文件即可,完美地和主題相結合。
-
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
- 如果需要自定義端口,修改
server
節點下的port
即可。 - 默認使用的是
H2 Database
數據庫,這是一種嵌入式的數據庫,使用起來非常方便。需要注意的是,默認的用戶名和密碼為admin
和123456
,這個是自定義的,最好將其修改,並妥善保存。 h2
節點為H2 Database
的控制台配置,默認是關閉的,如需使用請將h2.console.settings.web-allow-others
和h2.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
- --rm:停止之后自動刪除容器。
- --name:容器名。
- -p:占用端口,前者為宿主機端口,后者為 Halo 的運行端口,可在
application.yaml
配置。 - -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
}
}
- 請把
https://www.simple.com
改為自己的域名。 tls
后面的xxxx@xxx.xx
改為自己的郵箱地址,這是用於自動申請 SSL 證書用的。需要注意的是,不需要你自己配置 SSL 證書,而且會自動幫你續簽。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.com
和 https://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博客用戶文檔,更多使用詳情,請點擊鏈接了解。