侧边栏壁纸
博主头像
拾艺客博主等级

行动起来,活在当下

  • 累计撰写 17 篇文章
  • 累计创建 15 个标签
  • 累计收到 7 条评论

目 录CONTENT

文章目录

软路由之-iStoreOS搭建Halo个人博客一

hfr818
2024-01-11 / 1 评论 / 0 点赞 / 327 阅读 / 6638 字

docker安装halo+mysql+nginx搭建个人博客

简介

一款现代化的开源博客/CMS系统。学习地址:https://halo.run/ 本文主要介绍iStoreOS(openWRT)软路由,使用docker安装halo+mysql,最后实现一个使用域名访问的个人博客网站。

在线体验

注:本系统在1台已安装的Docker的软路由器或(cenots/ubantu)/OpenWRT或iKAI系统,本案例属于本地部署,需要外网访问要满足以下条件之一:

  • 电信申请动态公网+备案域名+lucky软件

  • DDNS-GO动态域名解析工具(自动分配第三方域名)

  • 利用NPS(NPC)/FRPS(FRPC)内网穿透工具+公网服务器+备案域名

一.部署MSQL

docker安装mysql
# 创建 Docker 自定义桥接网络
docker network create halo-mysql-nginx-net 
# 拉取 MySQL 镜像
docker pull mysql:8.0.27
# 创建文件夹
mkdir -p ~/.halo/mysql

# 启动 MySQL 实例 xxxxxxxxx为你自己设置的密码
docker run --name halo-mysql -v ~/.halo/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=xxxxxxxx --net halo-mysql-nginx-net --restart=unless-stopped -d mysql:8.0.27

# 进入 MySQL 容器中登录 MySQL 并创建 Halo 需要的数据库
docker exec -it halo-mysql /bin/bash

# 登录 MySQL
mysql -u root -p
# 输入 MySQL 数据库密码

# 创建数据库
create database halodb character set utf8mb4 collate utf8mb4_bin;

# 使用 exit 退出MySQL 
# 使用 exit 退出容器 因为之前设置了--restart=unless-stopped 不用担心容器停止


docker安装mysql命令解释
--name halo-mysql                  # 设置容器名字
-v ~/.halo/mysql:/var/lib/mysql    # 卷挂载。 本地地址:容器内部地址
-e MYSQL_ROOT_PASSWORD=xxxxxxxx    # 设置mysql密码
--net halo-mysql-nginx-net         # 挂载网络
--restart=unless-stopped           # 除非手动停止否则自动重启
-d                                 # 后台运行
mysql:8.0.27                       # mysql版本

二.docker安装halo

# 创建 Halo 工作目录
mkdir -p ~/.halo/halo && cd ~/.halo/halo

# 下载示例配置文件到工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml

# vim编辑配置文件 
vim application.yaml
# 你需要做如下几个步骤:

# 注释 H2 database configuration.部分
# 启用 MySQL database configuration.部分
# 修改 datasource 下的 url 中的 ip 地址部分为容器名称并修改密码为您设定的 MySQL 密码

# 可以进入vim 后 ggdG 删除所有内容,再复制以下内容 粘贴

# 修改后的application.yaml文件内容如下:

server:
  port: 8090

  # Response data gzip.
  compression:
    enabled: false
spring:
  datasource:

    # H2 database configuration.
    #driver-class-name: org.h2.Driver
    #url: jdbc:h2:file:~/.halo/db/halo
    #username: admin
    #password: 123456

    # MySQL database configuration.
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://halo-mysql:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
    username: root
    password: xxxxxxxx

  # H2 database console configuration.
    h2:
    console:
      settings:
        web-allow-others: false
      path: /h2-console
      enabled: false

halo:

  # Your admin client path is https://your-domain/{admin-path}
  admin-path: admin

  # memory or level
  cache: memory
启用halo
# 启用
docker run -it -d --name halo -p 8090:8090 -v ~/.halo/halo:/root/.halo --net halo-mysql-nginx-net --restart=unless-stopped halohub/halo:2.12
docker安装halo命令解释
-it -d                             # 运行方式
--name halo                        # 设置容器名字
-p 8090:8090                       # 端口设置
-v ~/.halo/halo:/root/.halo        # 卷挂载。 本地地址:容器内部地址
--net halo-mysql-nginx-net         # 挂载网络
--restart=unless-stopped           # 除非手动停止否则自动重启
halohub/halo:1.4.17                # halo版本

到这里就可以去浏览器 使用ip:8090打开个人博客网站。会看到 Halo 安装向导

三.其他

1.版本升级

拉取最新版本镜像文件

docker pull halohub/halo:2.15      # 2.15为版本号

停止运行中的容器并删除容器

docker stop halo # 停止容器
docker rm halo   # 删除容器

重新创建容器

docker run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 halohub/halo:2.15  # 注意版本号
2.实现https(SSL)

利用lucky工具实现端口转发+https比较简单,不再具体描述!!

0

评论区