mirror of
https://github.com/halo-dev/docs.git
synced 2025-10-17 16:02:42 +00:00
chore: bump docusaurus version to 3.x (#395)
升级 Docusaurus 版本至 3.x 参照 https://docusaurus.io/zh-CN/docs/migration/v3 升级指南。 Fixes #394 /kind improvement ```release-note None ```
This commit is contained in:
@@ -60,7 +60,7 @@ description: 使用腾讯云轻量应用服务器的应用模板部署 Halo
|
||||
|
||||

|
||||
|
||||
除此之外,在绑定域名之后,还需要修改一下 Halo 的 **外部访问地址** 参数为实际的网站访问地址(如:<https://demo.halo.run>),否则 Halo 的部分功能或者插件可能会出现使用问题,只需要按照下图所示修改应用的参数然后点击确认即可。
|
||||
除此之外,在绑定域名之后,还需要修改一下 Halo 的 **外部访问地址** 参数为实际的网站访问地址(如:[https://demo.halo.run](https://demo.halo.run)),否则 Halo 的部分功能或者插件可能会出现使用问题,只需要按照下图所示修改应用的参数然后点击确认即可。
|
||||
|
||||

|
||||
|
||||
|
@@ -12,8 +12,8 @@ import DockerRegistryList from "./slots/_docker-registry-list.md"
|
||||
|
||||
## 环境搭建
|
||||
|
||||
- Docker 安装文档:<https://docs.docker.com/engine/install/>
|
||||
- Docker Compose 安装文档:<https://docs.docker.com/compose/install/>
|
||||
- Docker 安装文档:[https://docs.docker.com/engine/install/](https://docs.docker.com/engine/install/)
|
||||
- Docker Compose 安装文档:[https://docs.docker.com/compose/install/](https://docs.docker.com/compose/install/)
|
||||
|
||||
:::tip
|
||||
我们推荐按照 Docker 官方文档安装 Docker 和 Docker Compose,因为部分 Linux 发行版软件仓库中的 Docker 版本可能过旧。
|
||||
@@ -25,234 +25,234 @@ import DockerRegistryList from "./slots/_docker-registry-list.md"
|
||||
|
||||
1. 在系统任意位置创建一个文件夹,此文档以 `~/halo` 为例。
|
||||
|
||||
```bash
|
||||
mkdir ~/halo && cd ~/halo
|
||||
```
|
||||
```bash
|
||||
mkdir ~/halo && cd ~/halo
|
||||
```
|
||||
|
||||
:::info
|
||||
注意:后续操作中,Halo 产生的所有数据都会保存在这个目录,请妥善保存。
|
||||
:::
|
||||
:::info
|
||||
注意:后续操作中,Halo 产生的所有数据都会保存在这个目录,请妥善保存。
|
||||
:::
|
||||
|
||||
2. 创建 `docker-compose.yaml`
|
||||
|
||||
此文档提供两种场景的 Docker Compose 配置文件,请根据你的需要**选择一种**。
|
||||
此文档提供两种场景的 Docker Compose 配置文件,请根据你的需要**选择一种**。
|
||||
|
||||
:::info
|
||||
需要注意的是,此文档为了更加方便的管理配置,所有与 Halo 相关的配置都使用 Docker 容器启动参数代替,所以无需创建 application.yaml 文件。
|
||||
:::
|
||||
:::info
|
||||
需要注意的是,此文档为了更加方便的管理配置,所有与 Halo 相关的配置都使用 Docker 容器启动参数代替,所以无需创建 application.yaml 文件。
|
||||
:::
|
||||
|
||||
1. 创建 Halo + PostgreSQL 的实例:
|
||||
|
||||
```yaml {23-29,43} title="~/halo/docker-compose.yaml"
|
||||
version: "3"
|
||||
```yaml {23-29,43} title="~/halo/docker-compose.yaml"
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
halo:
|
||||
image: registry.fit2cloud.com/halo/halo:2.16
|
||||
restart: on-failure:3
|
||||
depends_on:
|
||||
halodb:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
halo_network:
|
||||
volumes:
|
||||
- ./halo2:/root/.halo2
|
||||
ports:
|
||||
- "8090:8090"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
command:
|
||||
- --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
|
||||
- --spring.r2dbc.username=halo
|
||||
# PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
|
||||
- --spring.r2dbc.password=openpostgresql
|
||||
- --spring.sql.init.platform=postgresql
|
||||
# 外部访问地址,请根据实际需要修改
|
||||
- --halo.external-url=http://localhost:8090/
|
||||
halodb:
|
||||
image: postgres:15.4
|
||||
restart: on-failure:3
|
||||
networks:
|
||||
halo_network:
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: [ "CMD", "pg_isready" ]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=openpostgresql
|
||||
- POSTGRES_USER=halo
|
||||
- POSTGRES_DB=halo
|
||||
- PGUSER=halo
|
||||
services:
|
||||
halo:
|
||||
image: registry.fit2cloud.com/halo/halo:2.16
|
||||
restart: on-failure:3
|
||||
depends_on:
|
||||
halodb:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
halo_network:
|
||||
volumes:
|
||||
- ./halo2:/root/.halo2
|
||||
ports:
|
||||
- "8090:8090"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
command:
|
||||
- --spring.r2dbc.url=r2dbc:pool:postgresql://halodb/halo
|
||||
- --spring.r2dbc.username=halo
|
||||
# PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
|
||||
- --spring.r2dbc.password=openpostgresql
|
||||
- --spring.sql.init.platform=postgresql
|
||||
# 外部访问地址,请根据实际需要修改
|
||||
- --halo.external-url=http://localhost:8090/
|
||||
halodb:
|
||||
image: postgres:15.4
|
||||
restart: on-failure:3
|
||||
networks:
|
||||
halo_network:
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: [ "CMD", "pg_isready" ]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
environment:
|
||||
- POSTGRES_PASSWORD=openpostgresql
|
||||
- POSTGRES_USER=halo
|
||||
- POSTGRES_DB=halo
|
||||
- PGUSER=halo
|
||||
|
||||
networks:
|
||||
halo_network:
|
||||
```
|
||||
networks:
|
||||
halo_network:
|
||||
```
|
||||
|
||||
:::info
|
||||
此示例的 PostgreSQL 数据库容器默认没有设置端口映射,如果需要在容器外部访问数据库,可以自行在 `halodb` 服务中添加端口映射,PostgreSQL 的端口为 `5432`。
|
||||
:::
|
||||
:::info
|
||||
此示例的 PostgreSQL 数据库容器默认没有设置端口映射,如果需要在容器外部访问数据库,可以自行在 `halodb` 服务中添加端口映射,PostgreSQL 的端口为 `5432`。
|
||||
:::
|
||||
|
||||
2. 创建 Halo + MySQL 的实例:
|
||||
|
||||
```yaml {23-29,51} title="~/halo/docker-compose.yaml"
|
||||
version: "3"
|
||||
```yaml {23-29,51} title="~/halo/docker-compose.yaml"
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
halo:
|
||||
image: registry.fit2cloud.com/halo/halo:2.16
|
||||
restart: on-failure:3
|
||||
depends_on:
|
||||
halodb:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
halo_network:
|
||||
volumes:
|
||||
- ./halo2:/root/.halo2
|
||||
ports:
|
||||
- "8090:8090"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
command:
|
||||
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
|
||||
- --spring.r2dbc.username=root
|
||||
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
|
||||
- --spring.r2dbc.password=o#DwN&JSa56
|
||||
- --spring.sql.init.platform=mysql
|
||||
# 外部访问地址,请根据实际需要修改
|
||||
- --halo.external-url=http://localhost:8090/
|
||||
services:
|
||||
halo:
|
||||
image: registry.fit2cloud.com/halo/halo:2.16
|
||||
restart: on-failure:3
|
||||
depends_on:
|
||||
halodb:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
halo_network:
|
||||
volumes:
|
||||
- ./halo2:/root/.halo2
|
||||
ports:
|
||||
- "8090:8090"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
command:
|
||||
- --spring.r2dbc.url=r2dbc:pool:mysql://halodb:3306/halo
|
||||
- --spring.r2dbc.username=root
|
||||
# MySQL 的密码,请保证与下方 MYSQL_ROOT_PASSWORD 的变量值一致。
|
||||
- --spring.r2dbc.password=o#DwN&JSa56
|
||||
- --spring.sql.init.platform=mysql
|
||||
# 外部访问地址,请根据实际需要修改
|
||||
- --halo.external-url=http://localhost:8090/
|
||||
|
||||
halodb:
|
||||
image: mysql:8.1.0
|
||||
restart: on-failure:3
|
||||
networks:
|
||||
halo_network:
|
||||
command:
|
||||
- --default-authentication-plugin=caching_sha2_password
|
||||
- --character-set-server=utf8mb4
|
||||
- --collation-server=utf8mb4_general_ci
|
||||
- --explicit_defaults_for_timestamp=true
|
||||
volumes:
|
||||
- ./mysql:/var/lib/mysql
|
||||
- ./mysqlBackup:/data/mysqlBackup
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
|
||||
interval: 3s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
environment:
|
||||
# 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
|
||||
- MYSQL_ROOT_PASSWORD=o#DwN&JSa56
|
||||
- MYSQL_DATABASE=halo
|
||||
halodb:
|
||||
image: mysql:8.1.0
|
||||
restart: on-failure:3
|
||||
networks:
|
||||
halo_network:
|
||||
command:
|
||||
- --default-authentication-plugin=caching_sha2_password
|
||||
- --character-set-server=utf8mb4
|
||||
- --collation-server=utf8mb4_general_ci
|
||||
- --explicit_defaults_for_timestamp=true
|
||||
volumes:
|
||||
- ./mysql:/var/lib/mysql
|
||||
- ./mysqlBackup:/data/mysqlBackup
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"]
|
||||
interval: 3s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
environment:
|
||||
# 请修改此密码,并对应修改上方 Halo 服务的 SPRING_R2DBC_PASSWORD 变量值
|
||||
- MYSQL_ROOT_PASSWORD=o#DwN&JSa56
|
||||
- MYSQL_DATABASE=halo
|
||||
|
||||
networks:
|
||||
halo_network:
|
||||
```
|
||||
networks:
|
||||
halo_network:
|
||||
```
|
||||
|
||||
:::info
|
||||
此示例的 MySQL 数据库容器默认没有设置端口映射,如果需要在容器外部访问数据库,可以自行在 `halodb` 服务中添加端口映射,MySQL 的端口为 `3306`。
|
||||
:::
|
||||
:::info
|
||||
此示例的 MySQL 数据库容器默认没有设置端口映射,如果需要在容器外部访问数据库,可以自行在 `halodb` 服务中添加端口映射,MySQL 的端口为 `3306`。
|
||||
:::
|
||||
|
||||
3. 仅创建 Halo 实例(使用默认的 H2 数据库):
|
||||
|
||||
:::caution
|
||||
不推荐在生产环境使用默认的 H2 数据库,这可能因为操作不当导致数据文件损坏。如果因为某些原因(如内存不足以运行独立数据库)必须要使用,建议按时[备份数据](../../user-guide/backup.md)。
|
||||
:::
|
||||
:::warning
|
||||
不推荐在生产环境使用默认的 H2 数据库,这可能因为操作不当导致数据文件损坏。如果因为某些原因(如内存不足以运行独立数据库)必须要使用,建议按时[备份数据](../../user-guide/backup.md)。
|
||||
:::
|
||||
|
||||
```yaml {19-24} title="~/halo/docker-compose.yaml"
|
||||
version: "3"
|
||||
```yaml {19-24} title="~/halo/docker-compose.yaml"
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
halo:
|
||||
image: registry.fit2cloud.com/halo/halo:2.16
|
||||
restart: on-failure:3
|
||||
volumes:
|
||||
- ./halo2:/root/.halo2
|
||||
ports:
|
||||
- "8090:8090"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
command:
|
||||
# 外部访问地址,请根据实际需要修改
|
||||
- --halo.external-url=http://localhost:8090/
|
||||
```
|
||||
services:
|
||||
halo:
|
||||
image: registry.fit2cloud.com/halo/halo:2.16
|
||||
restart: on-failure:3
|
||||
volumes:
|
||||
- ./halo2:/root/.halo2
|
||||
ports:
|
||||
- "8090:8090"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:8090/actuator/health/readiness"]
|
||||
interval: 30s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
command:
|
||||
# 外部访问地址,请根据实际需要修改
|
||||
- --halo.external-url=http://localhost:8090/
|
||||
```
|
||||
|
||||
4. 仅创建 Halo 实例(使用已有外部数据库,MySQL 为例):
|
||||
|
||||
```yaml {7,12-20} title="~/halo/docker-compose.yaml"
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
halo:
|
||||
image: registry.fit2cloud.com/halo/halo:2.16
|
||||
restart: on-failure:3
|
||||
network_mode: "host"
|
||||
volumes:
|
||||
- ./halo2:/root/.halo2
|
||||
command:
|
||||
# 修改为自己已有的 MySQL 配置
|
||||
- --spring.r2dbc.url=r2dbc:pool:mysql://localhost:3306/halo
|
||||
- --spring.r2dbc.username=root
|
||||
- --spring.r2dbc.password=
|
||||
- --spring.sql.init.platform=mysql
|
||||
# 外部访问地址,请根据实际需要修改
|
||||
- --halo.external-url=http://localhost:8090/
|
||||
# 端口号 默认8090
|
||||
- --server.port=8090
|
||||
```
|
||||
```yaml {7,12-20} title="~/halo/docker-compose.yaml"
|
||||
version: "3"
|
||||
|
||||
运行参数详解:
|
||||
services:
|
||||
halo:
|
||||
image: registry.fit2cloud.com/halo/halo:2.16
|
||||
restart: on-failure:3
|
||||
network_mode: "host"
|
||||
volumes:
|
||||
- ./halo2:/root/.halo2
|
||||
command:
|
||||
# 修改为自己已有的 MySQL 配置
|
||||
- --spring.r2dbc.url=r2dbc:pool:mysql://localhost:3306/halo
|
||||
- --spring.r2dbc.username=root
|
||||
- --spring.r2dbc.password=
|
||||
- --spring.sql.init.platform=mysql
|
||||
# 外部访问地址,请根据实际需要修改
|
||||
- --halo.external-url=http://localhost:8090/
|
||||
# 端口号 默认8090
|
||||
- --server.port=8090
|
||||
```
|
||||
|
||||
<DockerArgs />
|
||||
运行参数详解:
|
||||
|
||||
<DockerArgs />
|
||||
|
||||
3. 启动 Halo 服务
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
实时查看日志:
|
||||
实时查看日志:
|
||||
|
||||
```bash
|
||||
docker-compose logs -f
|
||||
```
|
||||
```bash
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
4. 用浏览器访问 /console 即可进入 Halo 管理页面,首次启动会进入初始化页面。
|
||||
|
||||
:::tip
|
||||
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 `http://ip:端口号` 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
|
||||
:::
|
||||
:::tip
|
||||
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 `http://ip:端口号` 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
|
||||
:::
|
||||
|
||||
## 更新容器组
|
||||
|
||||
1. 备份数据,可以参考 [备份与恢复](../../user-guide/backup.md) 进行完整备份。
|
||||
2. 更新 Halo 服务
|
||||
|
||||
修改 `docker-compose.yaml` 中配置的镜像版本。
|
||||
修改 `docker-compose.yaml` 中配置的镜像版本。
|
||||
|
||||
```yaml {3}
|
||||
services:
|
||||
```yaml {3}
|
||||
services:
|
||||
halo:
|
||||
image: registry.fit2cloud.com/halo/halo:2.16
|
||||
```
|
||||
```
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
## 反向代理
|
||||
|
||||
|
@@ -10,7 +10,7 @@ import DockerRegistryList from "./slots/_docker-registry-list.md"
|
||||
在继续操作之前,我们推荐您先阅读[《写在前面》](../prepare),这可以快速帮助你了解 Halo。
|
||||
:::
|
||||
|
||||
:::caution
|
||||
:::warning
|
||||
此文档仅提供使用默认 H2 数据库的 Docker 运行方式,主要用于体验和测试,在生产环境我们不推荐使用 H2 数据库,这可能因为操作不当导致数据文件损坏。如果因为某些原因(如内存不足以运行独立数据库)必须要使用,建议按时[备份数据](../../user-guide/backup.md)。
|
||||
|
||||
如果需要使用其他数据库部署,我们推荐使用 Docker Compose 部署:[使用 Docker Compose 部署](./docker-compose)
|
||||
@@ -18,7 +18,7 @@ import DockerRegistryList from "./slots/_docker-registry-list.md"
|
||||
|
||||
## 环境搭建
|
||||
|
||||
- Docker 安装文档:<https://docs.docker.com/engine/install/>
|
||||
- Docker 安装文档:[https://docs.docker.com/engine/install/](https://docs.docker.com/engine/install/)
|
||||
|
||||
:::tip
|
||||
我们推荐按照 Docker 官方文档安装 Docker,因为部分 Linux 发行版软件仓库中的 Docker 版本可能过旧。
|
||||
@@ -30,50 +30,50 @@ import DockerRegistryList from "./slots/_docker-registry-list.md"
|
||||
|
||||
1. 创建容器
|
||||
|
||||
```bash
|
||||
docker run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 registry.fit2cloud.com/halo/halo:2.16
|
||||
```
|
||||
```bash
|
||||
docker run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 registry.fit2cloud.com/halo/halo:2.16
|
||||
```
|
||||
|
||||
:::info
|
||||
注意:此命令默认使用自带的 H2 Database 数据库。如需使用 PostgreSQL,请参考:[使用 Docker Compose 部署](./docker-compose)
|
||||
:::
|
||||
:::info
|
||||
注意:此命令默认使用自带的 H2 Database 数据库。如需使用 PostgreSQL,请参考:[使用 Docker Compose 部署](./docker-compose)
|
||||
:::
|
||||
|
||||
- **-it**:开启输入功能并连接伪终端
|
||||
- **-d**:后台运行容器
|
||||
- **--name**:为容器指定一个名称
|
||||
- **-p**:端口映射,格式为 `主机(宿主)端口:容器端口` ,可在 `application.yaml` 配置。
|
||||
- **-v**:工作目录映射。形式为:`-v 宿主机路径:/root/.halo2`,后者不能修改。
|
||||
- **-it**:开启输入功能并连接伪终端
|
||||
- **-d**:后台运行容器
|
||||
- **--name**:为容器指定一个名称
|
||||
- **-p**:端口映射,格式为 `主机(宿主)端口:容器端口` ,可在 `application.yaml` 配置。
|
||||
- **-v**:工作目录映射。形式为:`-v 宿主机路径:/root/.halo2`,后者不能修改。
|
||||
|
||||
运行参数详解:
|
||||
运行参数详解:
|
||||
|
||||
<DockerArgs />
|
||||
<DockerArgs />
|
||||
|
||||
1. 用浏览器访问 `/console` 即可进入 Halo 管理页面,首次启动会进入初始化页面。
|
||||
2. 用浏览器访问 `/console` 即可进入 Halo 管理页面,首次启动会进入初始化页面。
|
||||
|
||||
:::tip
|
||||
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 `http://ip:端口号` 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
|
||||
:::
|
||||
:::tip
|
||||
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 `http://ip:端口号` 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
|
||||
:::
|
||||
|
||||
## 升级版本
|
||||
|
||||
1. 备份数据,可以参考 [备份与恢复](../../user-guide/backup.md) 进行完整备份。
|
||||
2. 拉取新版本镜像
|
||||
|
||||
```bash
|
||||
docker pull registry.fit2cloud.com/halo/halo:2.16
|
||||
```
|
||||
```bash
|
||||
docker pull registry.fit2cloud.com/halo/halo:2.16
|
||||
```
|
||||
|
||||
3. 停止运行中的容器
|
||||
|
||||
```bash
|
||||
docker stop halo
|
||||
docker rm halo
|
||||
```
|
||||
```bash
|
||||
docker stop halo
|
||||
docker rm halo
|
||||
```
|
||||
|
||||
4. 更新 Halo
|
||||
|
||||
修改版本号后,按照最初安装的方式,重新创建容器即可。
|
||||
修改版本号后,按照最初安装的方式,重新创建容器即可。
|
||||
|
||||
```bash
|
||||
docker run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 registry.fit2cloud.com/halo/halo:2.16
|
||||
```
|
||||
```bash
|
||||
docker run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 registry.fit2cloud.com/halo/halo:2.16
|
||||
```
|
||||
|
@@ -58,8 +58,8 @@ title: 使用 JAR 文件部署
|
||||
|
||||
:::info
|
||||
以下是官方维护的下载地址:
|
||||
1. <https://download.halo.run>
|
||||
2. <https://github.com/halo-dev/halo/releases>
|
||||
1. [https://download.halo.run](https://download.halo.run)
|
||||
2. [https://github.com/halo-dev/halo/releases](https://github.com/halo-dev/halo/releases)
|
||||
:::
|
||||
|
||||
4. 创建 [工作目录](../prepare#工作目录)
|
||||
@@ -132,7 +132,7 @@ title: 使用 JAR 文件部署
|
||||
- DATABASE:数据库名称,如 `halo`,需要提前创建
|
||||
:::
|
||||
|
||||
:::caution
|
||||
:::warning
|
||||
不推荐在生产环境使用默认的 H2 数据库,这可能因为操作不当导致数据文件损坏。如果因为某些原因(如内存不足以运行独立数据库)必须要使用,建议按时[备份数据](../../user-guide/backup.md)。
|
||||
:::
|
||||
|
||||
|
@@ -25,7 +25,7 @@ Nginx Proxy Manager 后台还可以一键申请 SSL 证书,并且会自动续
|
||||
|
||||
> 说明:默认你的服务器已经安装了 Docker 和 Docker Compose,如果你没有安装,可以参考:[使用 Docker Compose 部署](../docker-compose) 的环境搭建部分来进行安装。
|
||||
|
||||
点击下方链接进入 Nginx Proxy Manager(以下简称 NPM) 官网:<https://nginxproxymanager.com/>
|
||||
点击下方链接进入 Nginx Proxy Manager(以下简称 NPM) 官网:[https://nginxproxymanager.com/](https://nginxproxymanager.com/)
|
||||
|
||||
我们可以直接选择 [快速安装](https://nginxproxymanager.com/guide/#quick-setup)。
|
||||
|
||||
|
@@ -26,7 +26,7 @@ description: 使用 Traefik 管理 Halo 服务的反向代理
|
||||
3. 开启 Traefik Dashboard,建议使用二级域名的形式(示例:`traefik.yourdomain.com`)。[文档](https://doc.traefik.io/traefik/operations/dashboard/#dashboard-router-rule)
|
||||
4. 开启证书自动生成,通过 ACME 自动管理 TLS 证书的申请、校验与续期。[文档](https://doc.traefik.io/traefik/https/acme/)
|
||||
|
||||
:::caution
|
||||
:::warning
|
||||
ACME 证书 (`/acme.json`) 一定要 [持久化](https://doc.traefik.io/traefik/https/acme/#storage),否则每次重启 Traefik 服务,都会去申请签发证书。可能会触发 Let's
|
||||
Encrypt 的 [速率限制](https://letsencrypt.org/zh-cn/docs/rate-limits/),导致签名的域名一段时间内无法签发新的证书。
|
||||
:::
|
||||
|
@@ -37,7 +37,7 @@ Podman 采用无守护进程的包容性架构,因此可以更安全、更简
|
||||
|
||||
## 环境搭建
|
||||
|
||||
- Podman 安装文档:<https://podman.io/docs/installation>
|
||||
- Podman 安装文档:[https://podman.io/docs/installation](https://podman.io/docs/installation)
|
||||
|
||||
:::tip
|
||||
我们推荐您先阅读 Podman 官方文档对 Podman 有了相关了解后,再考虑通过Linux包管理系统安装 Podman 或者使用文档中指定的方式安装 。
|
||||
@@ -55,50 +55,50 @@ Podman 采用无守护进程的包容性架构,因此可以更安全、更简
|
||||
|
||||
1. 创建容器
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.halo2
|
||||
podman run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 registry.fit2cloud.com/halo/halo:2.16
|
||||
```
|
||||
```bash
|
||||
mkdir -p ~/.halo2
|
||||
podman run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 registry.fit2cloud.com/halo/halo:2.16
|
||||
```
|
||||
|
||||
:::info
|
||||
注意:此命令默认使用自带的 H2 Database 数据库。如需使用 PostgreSQL,请参考:[使用 Docker Compose 部署](./docker-compose)
|
||||
:::
|
||||
:::info
|
||||
注意:此命令默认使用自带的 H2 Database 数据库。如需使用 PostgreSQL,请参考:[使用 Docker Compose 部署](./docker-compose)
|
||||
:::
|
||||
|
||||
- **-it**:开启输入功能并连接伪终端
|
||||
- **-d**:后台运行容器
|
||||
- **--name**:为容器指定一个名称
|
||||
- **-p**:端口映射,格式为 `主机(宿主)端口:容器端口` ,可在 `application.yaml` 配置。
|
||||
- **-v**:工作目录映射。形式为:`-v 宿主机路径:/root/.halo2`,后者不能修改。
|
||||
- **-it**:开启输入功能并连接伪终端
|
||||
- **-d**:后台运行容器
|
||||
- **--name**:为容器指定一个名称
|
||||
- **-p**:端口映射,格式为 `主机(宿主)端口:容器端口` ,可在 `application.yaml` 配置。
|
||||
- **-v**:工作目录映射。形式为:`-v 宿主机路径:/root/.halo2`,后者不能修改。
|
||||
|
||||
运行参数详解:
|
||||
运行参数详解:
|
||||
|
||||
<DockerArgs />
|
||||
<DockerArgs />
|
||||
|
||||
1. 用浏览器访问 `/console` 即可进入 Halo 管理页面,首次启动会进入初始化页面。
|
||||
2. 用浏览器访问 `/console` 即可进入 Halo 管理页面,首次启动会进入初始化页面。
|
||||
|
||||
:::tip
|
||||
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 `http://ip:端口号` 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
|
||||
:::
|
||||
:::tip
|
||||
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 `http://ip:端口号` 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
|
||||
:::
|
||||
|
||||
## 升级版本
|
||||
|
||||
1. 备份数据,可以参考 [备份与恢复](../../user-guide/backup.md) 进行完整备份。
|
||||
2. 拉取新版本镜像
|
||||
|
||||
```bash
|
||||
podman pull registry.fit2cloud.com/halo/halo:2.16
|
||||
```
|
||||
```bash
|
||||
podman pull registry.fit2cloud.com/halo/halo:2.16
|
||||
```
|
||||
|
||||
3. 停止运行中的容器
|
||||
|
||||
```bash
|
||||
podman stop halo
|
||||
podman rm halo
|
||||
```
|
||||
```bash
|
||||
podman stop halo
|
||||
podman rm halo
|
||||
```
|
||||
|
||||
4. 更新 Halo
|
||||
|
||||
修改版本号后,按照最初安装的方式,重新创建容器即可。
|
||||
修改版本号后,按照最初安装的方式,重新创建容器即可。
|
||||
|
||||
```bash
|
||||
podman run -it -d --name halo -p 8090:8090 -v ~/.halo2:/root/.halo2 registry.fit2cloud.com/halo/halo:2.16
|
||||
@@ -113,50 +113,50 @@ Podman 没有和 Docker 类似的管理进程,在低配置的主机上更友
|
||||
|
||||
下面是一个使用 Podstgresql 数据库的示例:
|
||||
|
||||
```bash
|
||||
mkdir -p /opt/podman-data/halo
|
||||
mkdir -p /etc/containers/systemd
|
||||
vim /etc/containers/systemd/halo.container
|
||||
```
|
||||
```bash
|
||||
mkdir -p /opt/podman-data/halo
|
||||
mkdir -p /etc/containers/systemd
|
||||
vim /etc/containers/systemd/halo.container
|
||||
```
|
||||
|
||||
```conf
|
||||
[Unit]
|
||||
Description=The halo container
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
```conf
|
||||
[Unit]
|
||||
Description=The halo container
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
|
||||
[Container]
|
||||
AutoUpdate=registry
|
||||
ContainerName=halo
|
||||
User=60000
|
||||
Group=60000
|
||||
UserNS=keep-id:uid=60000,gid=60000
|
||||
Environment=JVM_OPTS="-Xmx512m -Xms256m"
|
||||
Environment=HALO_WORK_DIR="/.halo"
|
||||
Environment=SPRING_CONFIG_LOCATION="optional:classpath:/;optional:file:/.halo/"
|
||||
Environment=TZ=Asia/Shanghai
|
||||
Volume=/opt/podman-data/halo:/.halo
|
||||
PublishPort=127.0.0.1:8090:8090
|
||||
Image=ghcr.io/halo-dev/halo:2.16
|
||||
Exec=--halo.external-url=https://localhost:8090 --spring.sql.init.platform=postgresql --spring.r2dbc.url=r2dbc:pool:postgresql://127.0.0.1:5432/my-db --spring.r2dbc.username=my-user --spring.r2dbc.password=my-password --halo.cache.page.disabled=false
|
||||
[Container]
|
||||
AutoUpdate=registry
|
||||
ContainerName=halo
|
||||
User=60000
|
||||
Group=60000
|
||||
UserNS=keep-id:uid=60000,gid=60000
|
||||
Environment=JVM_OPTS="-Xmx512m -Xms256m"
|
||||
Environment=HALO_WORK_DIR="/.halo"
|
||||
Environment=SPRING_CONFIG_LOCATION="optional:classpath:/;optional:file:/.halo/"
|
||||
Environment=TZ=Asia/Shanghai
|
||||
Volume=/opt/podman-data/halo:/.halo
|
||||
PublishPort=127.0.0.1:8090:8090
|
||||
Image=ghcr.io/halo-dev/halo:2.16
|
||||
Exec=--halo.external-url=https://localhost:8090 --spring.sql.init.platform=postgresql --spring.r2dbc.url=r2dbc:pool:postgresql://127.0.0.1:5432/my-db --spring.r2dbc.username=my-user --spring.r2dbc.password=my-password --halo.cache.page.disabled=false
|
||||
|
||||
[Service]
|
||||
Restart=always
|
||||
RestartSec=30s
|
||||
StartLimitInterval=30
|
||||
TimeoutStartSec=900
|
||||
TimeoutStopSec=70
|
||||
[Service]
|
||||
Restart=always
|
||||
RestartSec=30s
|
||||
StartLimitInterval=30
|
||||
TimeoutStartSec=900
|
||||
TimeoutStopSec=70
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target default.target
|
||||
```
|
||||
[Install]
|
||||
WantedBy=multi-user.target default.target
|
||||
```
|
||||
|
||||
```bash
|
||||
systemctl daemon-reload
|
||||
systemctl start halo
|
||||
# 只需要systemctl start halo.
|
||||
# 之后重启会自动启动不需要enable服务.
|
||||
```
|
||||
```bash
|
||||
systemctl daemon-reload
|
||||
systemctl start halo
|
||||
# 只需要systemctl start halo.
|
||||
# 之后重启会自动启动不需要enable服务.
|
||||
```
|
||||
|
||||
Podman Quadlet 解析:
|
||||
|
||||
@@ -191,34 +191,34 @@ Podman Quadlet 解析:
|
||||
使用默认的 root 用户运行时无需定义 `User=60000 Group=60000 UserNS=keep-id:uid=60000,gid=60000` 与 `Environment=HALO_WORK_DIR="/.halo"` `Environment=SPRING_CONFIG_LOCATION="optional:classpath:/;optional:file:/.halo/"`,
|
||||
示例:
|
||||
|
||||
```bash
|
||||
mkdir -p /opt/podman-data/halo
|
||||
mkdir -p /etc/containers/systemd
|
||||
vim /etc/containers/systemd/halo.container
|
||||
```
|
||||
```bash
|
||||
mkdir -p /opt/podman-data/halo
|
||||
mkdir -p /etc/containers/systemd
|
||||
vim /etc/containers/systemd/halo.container
|
||||
```
|
||||
|
||||
```conf
|
||||
# /etc/containers/systemd/halo.container
|
||||
[Unit]
|
||||
Description=The halo container
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
```conf
|
||||
# /etc/containers/systemd/halo.container
|
||||
[Unit]
|
||||
Description=The halo container
|
||||
Wants=network-online.target
|
||||
After=network-online.target
|
||||
|
||||
[Container]
|
||||
AutoUpdate=registry
|
||||
ContainerName=halo
|
||||
Volume=/opt/podman-data/halo:/root/.halo
|
||||
PublishPort=127.0.0.1:8090:8090
|
||||
Image=ghcr.io/halo-dev/halo:2.16
|
||||
Exec=--halo.external-url=https://localhost:8090 --spring.sql.init.platform=postgresql --spring.r2dbc.url=r2dbc:pool:postgresql://127.0.0.1:5432/my-db --spring.r2dbc.username=my-user --spring.r2dbc.password=my-password --halo.cache.page.disabled=false
|
||||
[Container]
|
||||
AutoUpdate=registry
|
||||
ContainerName=halo
|
||||
Volume=/opt/podman-data/halo:/root/.halo
|
||||
PublishPort=127.0.0.1:8090:8090
|
||||
Image=ghcr.io/halo-dev/halo:2.16
|
||||
Exec=--halo.external-url=https://localhost:8090 --spring.sql.init.platform=postgresql --spring.r2dbc.url=r2dbc:pool:postgresql://127.0.0.1:5432/my-db --spring.r2dbc.username=my-user --spring.r2dbc.password=my-password --halo.cache.page.disabled=false
|
||||
|
||||
[Service]
|
||||
Restart=always
|
||||
RestartSec=30s
|
||||
StartLimitInterval=30
|
||||
TimeoutStartSec=900
|
||||
TimeoutStopSec=70
|
||||
[Service]
|
||||
Restart=always
|
||||
RestartSec=30s
|
||||
StartLimitInterval=30
|
||||
TimeoutStartSec=900
|
||||
TimeoutStopSec=70
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target default.target
|
||||
```
|
||||
[Install]
|
||||
WantedBy=multi-user.target default.target
|
||||
```
|
||||
|
@@ -16,8 +16,8 @@
|
||||
| MariaDB | `r2dbc:pool:mysql://{HOST}:{PORT}/{DATABASE}` | mysql |
|
||||
| H2 Database | `r2dbc:h2:file:///${halo.work-dir}/db/halo-next?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSE` | h2 |
|
||||
|
||||
:::caution
|
||||
:::warning
|
||||
由于 MariaDB 数据库驱动目前存在问题,使用 MariaDB 数据库时也选择使用 MySQL 驱动,即链接地址格式为 `r2dbc:pool:mysql://{HOST}:{PORT}/{DATABASE}`。
|
||||
|
||||
详情可见:<https://github.com/halo-dev/halo/issues/5534>
|
||||
详情可见:[https://github.com/halo-dev/halo/issues/5534](https://github.com/halo-dev/halo/issues/5534)
|
||||
:::
|
||||
|
@@ -8,21 +8,21 @@ description: 从 Halo 1.x 迁移的完整指南和注意事项
|
||||
- Halo 版本必须为 1.5.x 或 1.6.x。如果不满足,需要先升级到 1.5.x 或 1.6.x 版本。
|
||||
- Halo 2.0 不兼容 1.x 的主题,建议在升级前先查询你正在使用的主题是否已经支持 2.0。你可以访问 [halo-sigs/awesome-halo](https://github.com/halo-sigs/awesome-halo) 或 [应用市场](https://halo.run/store/apps?type=THEME) 查阅目前支持的主题。
|
||||
- Halo 2.0 目前没有内置 Markdown 编辑器,如果需要重新编辑迁移后的文章,需要额外安装 Markdown 编辑器插件。目前社区已经提供了以下插件:
|
||||
- StackEdit:<https://halo.run/store/apps/app-hDXMG>
|
||||
- ByteMD:<https://halo.run/store/apps/app-HTyhC>
|
||||
- StackEdit:[https://halo.run/store/apps/app-hDXMG](https://halo.run/store/apps/app-hDXMG)
|
||||
- ByteMD:[https://halo.run/store/apps/app-HTyhC](https://halo.run/store/apps/app-HTyhC)
|
||||
- Halo 2.0 不再内置友情链接、日志、图库等模块,需要安装额外的插件,目前官方已提供:
|
||||
- 链接管理:<https://halo.run/store/apps/app-hfbQg>
|
||||
- 图库:<https://halo.run/store/apps/app-BmQJW>
|
||||
- 瞬间(原日志):<https://halo.run/store/apps/app-SnwWD>
|
||||
- 链接管理:[https://halo.run/store/apps/app-hfbQg](https://halo.run/store/apps/app-hfbQg)
|
||||
- 图库:[https://halo.run/store/apps/app-BmQJW](https://halo.run/store/apps/app-BmQJW)
|
||||
- 瞬间(原日志):[https://halo.run/store/apps/app-SnwWD](https://halo.run/store/apps/app-SnwWD)
|
||||
- Halo 2.0 不再内置外部云存储的支持。需要安装额外的插件,目前官方已提供:
|
||||
- S3(兼容国内主流的云存储):<https://halo.run/store/apps/app-Qxhpp>
|
||||
- 阿里云 OSS:<https://halo.run/store/apps/app-wCJCD>
|
||||
- S3(兼容国内主流的云存储):[https://halo.run/store/apps/app-Qxhpp](https://halo.run/store/apps/app-Qxhpp)
|
||||
- 阿里云 OSS:[https://halo.run/store/apps/app-wCJCD](https://halo.run/store/apps/app-wCJCD)
|
||||
- 在迁移过程中不会保留旧版本的用户数据,迁移完成之后,关于文章等数据的关联都将改为 Halo 2.0 的新用户。
|
||||
- 为了防止直接升级 2.0 导致 1.x 的数据受到破坏,我们已经将工作目录由 `~/.halo` 变更为 `~/.halo2`。
|
||||
- 目前 Halo 2.0 仅提供 Docker 部署方式,没有提供可执行 JAR 包,但可以自编译,请参考 [构建](../developer-guide/core/build.md) 文档
|
||||
- 可以考虑先在本地运行一个 Halo 2.0,模拟一下导入,检查导入后是否满足要求。
|
||||
|
||||
如果遇到了迁移过程中的问题,也可以向我们提交 Issue: <https://github.com/halo-dev/halo/issues/new/choose>,以上暂不支持的功能我们也会陆续完善。
|
||||
如果遇到了迁移过程中的问题,也可以向我们提交 Issue: [https://github.com/halo-dev/halo/issues/new/choose](https://github.com/halo-dev/halo/issues/new/choose),以上暂不支持的功能我们也会陆续完善。
|
||||
|
||||
## 备份数据
|
||||
|
||||
@@ -54,11 +54,11 @@ description: 从 Halo 1.x 迁移的完整指南和注意事项
|
||||
|
||||
在迁移过程中,需要提前安装必要的插件:
|
||||
|
||||
- 站点迁移:<https://halo.run/store/apps/app-TlUBt>
|
||||
- 链接管理:<https://halo.run/store/apps/app-hfbQg>
|
||||
- 图库:<https://halo.run/store/apps/app-BmQJW>
|
||||
- 瞬间(原日志):<https://halo.run/store/apps/app-SnwWD>
|
||||
- S3(如果需要迁移存在云存储的附件,需要安装):<https://halo.run/store/apps/app-Qxhpp>
|
||||
- 站点迁移:[https://halo.run/store/apps/app-TlUBt](https://halo.run/store/apps/app-TlUBt)
|
||||
- 链接管理:[https://halo.run/store/apps/app-hfbQg](https://halo.run/store/apps/app-hfbQg)
|
||||
- 图库:[https://halo.run/store/apps/app-BmQJW](https://halo.run/store/apps/app-BmQJW)
|
||||
- 瞬间(原日志):[https://halo.run/store/apps/app-SnwWD](https://halo.run/store/apps/app-SnwWD)
|
||||
- S3(如果需要迁移存在云存储的附件,需要安装):[https://halo.run/store/apps/app-Qxhpp](https://halo.run/store/apps/app-Qxhpp)
|
||||
|
||||
## 配置存储策略
|
||||
|
||||
|
@@ -63,7 +63,7 @@ Halo 目前支持以下数据库:
|
||||
|
||||
其中,H2 不需要单独运行,其他数据库需要单独安装并配置。一般情况下,推荐按照 [使用 Docker Compose 部署](./install/docker-compose.md) 文档将 Halo 和数据库容器编排在一起。
|
||||
|
||||
:::caution
|
||||
:::warning
|
||||
不推荐在生产环境使用默认的 H2 数据库,这可能因为操作不当导致数据文件损坏。如果因为某些原因(如内存不足以运行独立数据库)必须要使用,建议按时[备份数据](../user-guide/backup.md)。
|
||||
:::
|
||||
|
||||
|
Reference in New Issue
Block a user