1 安裝halo
1.1 切換到超級用戶
?sudo -i
1.2 新建halo文件夾
?mkdir ~/halo && cd ~/halo
1.3 編輯docker-compose.yml文件
?vim ~/halo/docker-compose.yml
英文輸入法下,按 i
version: "3"services:halo:image: halohub/halo:2.10container_name: halorestart: on-failure:3depends_on:halodb:condition: service_healthynetworks:halo_network:volumes:- ./halo2:/root/.halo2ports:- "8090:8090"healthcheck:test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]interval: 30stimeout: 5sretries: 5start_period: 30scommand:- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo- --spring.r2dbc.username=root# MySQL 的密碼,請保證與下方 MYSQL_ROOT_PASSWORD 的變量值一致。- --spring.r2dbc.password=qazwsx06210930- --spring.sql.init.platform=mysql# 外部訪問地址,請根據實際需要修改- --halo.external-url=http://localhost:8090/halodb:image: mysql:8.1.0container_name: halodbrestart: on-failure:3networks:halo_network:command: - --default-authentication-plugin=caching_sha2_password- --character-set-server=utf8mb4- --collation-server=utf8mb4_general_ci- --explicit_defaults_for_timestamp=truevolumes:- ./mysql:/var/lib/mysql- ./mysqlBackup:/data/mysqlBackupports:- "3306"healthcheck:test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]interval: 3sretries: 5start_period: 30senvironment:# 請修改此密碼,并對應修改上方 Halo 服務的 SPRING_R2DBC_PASSWORD 變量值- MYSQL_ROOT_PASSWORD=qazwsx06210930- MYSQL_DATABASE=halonetworks:halo_network:
注意:
1.修改域名:
docker-compose.yml里面的
--halo.external-url=http://localhost:8090/改為--halo.external-url=https://域名(手動修改)
2.修改數據庫密碼(手動修改)
3.數據庫端口原文檔為"3306:3306",上方docker-compose.yml為"3306",作用是不開放公網訪問數據庫(安全安全安全)
修改完yaml代碼,然后復制粘貼到輸入框
按ESC鍵,英文輸入法下輸入wq,按enter鍵完成保存
1.4 啟動halo服務
?docker-compose up -d
1.5.實時查看日志
?docker-compose logs -f
2 配置反向代理
2.1 安裝Nginx Proxy Manager
創建docker-compose.yml
?mkdir -p ~/data/docker_data/nginxproxymanager ? # 創建一個 npm 的文件夾?cd ~/data/docker_data/nginxproxymanager ? ?# 進入該文件夾?vi docker-compose.yml
英文模式下,輸入i,進入編輯模式,然后粘貼下面的內容
version: '3'
services:app:image: 'jc21/nginx-proxy-manager:latest'restart: unless-stoppedports:- '80:80' # 保持默認即可,不建議修改左側的80- '81:81' # 冒號左邊可以改成自己服務器未被占用的端口- '443:443' # 保持默認即可,不建議修改左側的443volumes:- ./data:/data # 冒號左邊可以改路徑,現在是表示把數據存放在在當前文件夾下的 data 文件夾中- ./letsencrypt:/etc/letsencrypt # 冒號左邊可以改路徑,現在是表示把數據存放在在當前文件夾下的 letsencrypt 文件夾中
在英文輸入法下,按一下Esc鍵 ,然后 輸入 :wq,按以下enter鍵,保存yml文件
2.2 啟動Nginx Proxy Manager
?docker-compose up -d
2.3 登錄Nginx Proxy Manager
啟動成功,使用http://ip:81訪問
默認賬號為:admin@example.com
默認密碼為:changeme
2.4 設置反向代理
-
Domain Names
:填我們 Halo 網站的域名,首先記得做好 DNS 解析,把域名綁定到我們的服務器的 IP 上 -
Scheme
:默認 即可,除非你有自簽名證書http
-
Forward Hostname/IP
:填入服務器的 IP,或者 Docker 容器內部的 IP(如果 NPM 和 Halo 搭建在同一臺服務器上的話) -
Forward Port
:填入 Halo 映射出的端口,這邊默認是8090
-
Cache Assets
:緩存,可以選擇打開 -
Block Common Exploits
: 阻止常見的漏洞,可以選擇打開 -
Websockets Support
:WS 支持,可以選擇打開 -
Access List
: 這個是 NPM 自帶的一個限制訪問功能,這邊我們不管,后續可以自行研究。
注:此解釋摘抄于此halo文檔
docker內部ip查詢方法:
?ip addr show docker0
如圖所示,docker內部ip為:172.17.0.1
2.5 申請SSL證書
反向代理配置完成
3 halo使用教程
3.1 初始化halo
輸入網址:https://域名/console,跳轉到初始化界面
設置站點名稱,郵箱,賬戶密碼,以后都是通過這個賬戶密碼進入后臺管理博客
點擊初始化按鈕后,等待初始化完成,刷新后出現以下界面,即代表初始化完成
點擊左上角,即可跳轉到博客前臺,這是halo博客的默認主題:theme-earth
3.2 安裝主題
1.應用市場:halo提供安裝主題功能,可以安裝自己喜歡的主題
2.上傳安裝:上傳下載好的halo主題包,上傳安裝
3.遠程下載:輸入鏈接,遠程下載主題包
4 主題推薦
4.1 極簡主題
Butterfly主題
簡潔而不簡單,好看,日常博客夠用,追求更多豐富的功能還得敲打敲打作者
這是我之前用過的一款比較好看的hexo主題,沒有想到有大佬移植到halo,在hexo中,配置主題是一個非常耗時間的工作,遷移到halo后,只需要在后臺管理配置即可
預覽:小紅 (dhjdd.cn)
jeo 3.0主題
簡潔界面且功能豐富,可操作性強
與Butterfly相比,布局更加自由,定制性更好
預覽:Jiewen’blog
4.2 多彩主題
Hao主題
win11風格,功能豐富
這款主題功能也非常豐富,相對比之下我更喜歡簡潔一點的風格
總結:想要簡潔方便選擇butterfly,想要界面簡潔功能多選擇jeo 3.0,想要體驗win11風格,功能豐富選Hao
原文鏈接:ubuntu部署Halo博客 | Zeek實驗室