rkey

rkey

使用docker安裝halo博客

使用 docker 安裝 halo 博客#

1. 創建容器

docker run \
  -it -d \
  --name halo \
  -p 8090:8090 \
  -v ~/.halo2:/root/.halo2 \
  halohub/halo:2.3.0 \
  --halo.external-url=http://localhost:8090/ \
  --halo.security.initializer.superadminusername=admin \
  --halo.security.initializer.superadminpassword=P@88w0rd

注意:此命令默認使用自帶的 H2 Database 數據庫。如需使用 PostgreSQL,請參考:使用 Docker Compose 部署

  • -it:開啟輸入功能並連接偽終端
  • -d:後台運行容器
  • --name:為容器指定一個名稱
  • -p:端口映射,格式為 主機(宿主)端口:容器端口 ,可在 application.yaml 配置。
  • -v:工作目錄映射。形式為:-v 宿主機路徑:/root/.halo2,後者不能修改。

補充一點:使用上面的命令之前需要把第 7 行的http://localhost:8090 / 修改為你機器的 ip 地址。如果像修改密碼的話,建議直接把密碼也改掉,至於管理員用戶名想改就改,不想改就算了。

變量詳解:

參數名描述
spring.r2dbc.url數據庫連接地址,詳細可查閱下方的 數據庫配置
spring.r2dbc.username數據庫用戶名
spring.r2dbc.password數據庫密碼
spring.sql.init.platform數據庫平台名稱,支持 postgresqlmysqlh2,需要與 SPRING_R2DBC_URL 對應
halo.external-url外部訪問鏈接,如果需要再公網訪問,需要配置為實際訪問地址
halo.security.initializer.superadminusername初始超級管理員用戶名
halo.security.initializer.superadminpassword初始超級管理員密碼

數據庫配置:

鏈接方式鏈接地址格式SPRING_SQL_INIT_PLATFORM
PostgreSQLr2dbc:pool:postgresql://{HOST}:{PORT}/{DATABASE}postgresql
MySQLr2dbc:pool:mysql://{HOST}:{PORT}/{DATABASE}mysql
H2 Databaser2dbc:h2:file:///${halo.work-dir}/db/halo-next?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSEh2

2. 用瀏覽器訪問 $HALO_EXTERNAL_URL/console/(外部訪問鏈接)即可進入 Halo 管理端。管理員用戶名為 admin,登錄密碼為上方設置的 HALO_SECURITY_INITIALIZER_SUPERADMINPASSWORD

如果需要配置域名訪問,建議先配置好反向代理以及域名解析再進行初始化。如果通過 http://ip:端口號 的形式無法訪問,請到服務器廠商後台將運行的端口號添加到安全組,如果服務器使用了 Linux 面板,請檢查此 Linux 面板是否還有安全組配置,需要同樣將端口號添加到安全組。

升級版本#

  1. 拉取新版本鏡像

    docker pull halohub/halo:2.3.0
    
  2. 停止運行中的容器

    docker stop halo
    docker rm halo
    
  3. 備份數據(重要)

    cp -r ~/.halo2 ~/halo2.archive
    

    需要注意的是,halo2.archive 文件名不一定要根據此文檔命名,這裡僅僅是個示例。

  4. 更新 Halo

    修改版本號後,按照最初安裝的方式,重新創建容器即可。

    docker run \
      -it -d \
      --name halo \
      -p 8090:8090 \
      -v ~/.halo2:/root/.halo2 \
      halohub/halo:2.3.0 \
      --halo.external-url=http://localhost:8090/ \
      --halo.security.initializer.superadminusername=admin \
      --halo.security.initializer.superadminpassword=P@88w0rd  
    
載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。