mirror of
https://github.com/halo-dev/docs.git
synced 2025-10-19 17:04:09 +00:00
docs: update documentation for Halo 2.0.0 (#125)
为 Halo 2.0 正式版更新文档。 /kind documentation ```release-note None ```
This commit is contained in:
@@ -103,10 +103,3 @@ VITE v3.1.6 ready in 638 ms
|
||||
```
|
||||
|
||||
6. 最终访问 `http://localhost:8090/console` 即可进入控制台。访问 `http://localhost:8090` 即可进入站点首页。
|
||||
|
||||
:::info 注意
|
||||
目前 RC 版本有以下几个使用注意事项:
|
||||
:::
|
||||
|
||||
1. 由于目前评论组件被插件化且暂不支持提供默认插件,所以如果要体验完整的评论功能,需要手动在后台安装 <https://github.com/halo-sigs/plugin-comment-widget> 评论组件插件。
|
||||
2. 目前 2.0 已支持的主题和插件会同步到 <https://github.com/halo-sigs/awesome-halo>,你可以在对应仓库的 release 下载最新的主题或插件。
|
||||
|
@@ -9,23 +9,23 @@ description: 使用 Docker Compose 部署
|
||||
|
||||
## 创建容器组
|
||||
|
||||
可用的 Halo 2.0.0-rc.1 的 Docker 镜像:
|
||||
可用的 Halo 2.0.0 的 Docker 镜像:
|
||||
|
||||
- [halohub/halo-dev](https://hub.docker.com/r/halohub/halo-dev)
|
||||
- [ghcr.io/halo-dev/halo-dev](https://github.com/halo-dev/halo/pkgs/container/halo-dev)
|
||||
- [halohub/halo](https://hub.docker.com/r/halohub/halo)
|
||||
- [ghcr.io/halo-dev/halo](https://github.com/halo-dev/halo/pkgs/container/halo)
|
||||
|
||||
:::info 注意
|
||||
以上两个镜像仅作为 Halo 2.0 测试期间的镜像,正式发布之后会更改为 `halohub/halo` 和 `ghcr.io/halo-dev/halo`。
|
||||
目前 Halo 2.0 并未更新 Docker 的 latest 标签镜像,主要因为 2.0 不兼容 1.x 版本,防止使用者误操作。我们推荐使用固定版本的标签,比如 `halohub/halo:2.0.0`。
|
||||
:::
|
||||
|
||||
1. 在系统任意位置创建一个文件夹,此文档以 `~/halo-next` 为例。
|
||||
1. 在系统任意位置创建一个文件夹,此文档以 `~/halo` 为例。
|
||||
|
||||
```bash
|
||||
mkdir ~/halo-next && cd ~/halo-next
|
||||
mkdir ~/halo && cd ~/halo
|
||||
```
|
||||
|
||||
:::info
|
||||
注意:后续操作中,Halo 的所有相关数据都会保存在这个目录,请妥善保存。
|
||||
注意:后续操作中,Halo 产生的所有数据都会保存在这个目录,请妥善保存。
|
||||
:::
|
||||
|
||||
2. 创建 `docker-compose.yaml`
|
||||
@@ -36,41 +36,18 @@ description: 使用 Docker Compose 部署
|
||||
需要注意的是,此文档为了更加方便的管理配置,所有与 Halo 相关的配置都使用 Docker 环境变量代替,所以无需创建 application.yaml 文件。
|
||||
:::
|
||||
|
||||
1. 仅创建 Halo 实例(使用默认的 H2 数据库):
|
||||
1. 创建 Halo + PostgreSQL 的实例:
|
||||
|
||||
```yaml {13-20}
|
||||
```yaml {18-28,46} title="~/halo/docker-compose.yaml"
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
halo_next:
|
||||
image: halohub/halo-dev:2.0.0-rc.1
|
||||
container_name: halo_next
|
||||
restart: on-failure:3
|
||||
volumes:
|
||||
- ./:/root/.halo2
|
||||
ports:
|
||||
- "8090:8090"
|
||||
environment:
|
||||
# 外部访问地址,请根据实际需要修改
|
||||
- HALO_EXTERNAL_URL=http://localhost:8090/
|
||||
# 初始化的超级管理员用户名
|
||||
- HALO_SECURITY_INITIALIZER_SUPERADMINUSERNAME=admin
|
||||
# 初始化的超级管理员密码
|
||||
- HALO_SECURITY_INITIALIZER_SUPERADMINPASSWORD=P@88w0rd
|
||||
```
|
||||
|
||||
2. 创建 Halo + PostgreSQL 的实例:
|
||||
|
||||
```yaml {18-28,46}
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
halo_next:
|
||||
image: halohub/halo-dev:2.0.0-rc.1
|
||||
container_name: halo_next
|
||||
halo:
|
||||
image: halohub/halo:2.0.0
|
||||
container_name: halo
|
||||
restart: on-failure:3
|
||||
depends_on:
|
||||
halo_db:
|
||||
halodb:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
halo_network:
|
||||
@@ -79,7 +56,7 @@ description: 使用 Docker Compose 部署
|
||||
ports:
|
||||
- "8090:8090"
|
||||
environment:
|
||||
- SPRING_R2DBC_URL=r2dbc:pool:postgresql://halo_db/halo
|
||||
- SPRING_R2DBC_URL=r2dbc:pool:postgresql://halodb/halo
|
||||
- SPRING_R2DBC_USERNAME=halo
|
||||
# PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。
|
||||
- SPRING_R2DBC_PASSWORD=openpostgresql
|
||||
@@ -91,9 +68,9 @@ description: 使用 Docker Compose 部署
|
||||
# 初始化的超级管理员密码
|
||||
- HALO_SECURITY_INITIALIZER_SUPERADMINPASSWORD=P@88w0rd
|
||||
|
||||
halo_db:
|
||||
halodb:
|
||||
image: postgres:latest
|
||||
container_name: halo_db
|
||||
container_name: halodb
|
||||
restart: on-failure:3
|
||||
networks:
|
||||
halo_network:
|
||||
@@ -115,24 +92,142 @@ description: 使用 Docker Compose 部署
|
||||
halo_network:
|
||||
```
|
||||
|
||||
2. 创建 Halo + MySQL 的实例:
|
||||
|
||||
```yaml
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
halo:
|
||||
image: halohub/halo:2.0.0
|
||||
container_name: halo
|
||||
restart: on-failure:3
|
||||
depends_on:
|
||||
halodb:
|
||||
condition: service_healthy
|
||||
networks:
|
||||
halo_network:
|
||||
volumes:
|
||||
- ./:/root/.halo2
|
||||
ports:
|
||||
- "8090:8090"
|
||||
environment:
|
||||
- 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/
|
||||
# 初始化的超级管理员用户名
|
||||
- HALO_SECURITY_INITIALIZER_SUPERADMINUSERNAME=admin
|
||||
# 初始化的超级管理员密码
|
||||
- HALO_SECURITY_INITIALIZER_SUPERADMINPASSWORD=P@88w0rd
|
||||
|
||||
halodb:
|
||||
image: mysql:8.0.27
|
||||
container_name: halodb
|
||||
restart: on-failure:3
|
||||
networks:
|
||||
halo_network:
|
||||
command: --default-authentication-plugin=mysql_native_password
|
||||
--character-set-server=utf8mb4
|
||||
--collation-server=utf8mb4_general_ci
|
||||
--explicit_defaults_for_timestamp=true
|
||||
volumes:
|
||||
- ./mysql:/var/lib/mysql
|
||||
- ./mysqlBackup:/data/mysqlBackup
|
||||
ports:
|
||||
- "3306:3306"
|
||||
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:
|
||||
```
|
||||
|
||||
3. 仅创建 Halo 实例(使用默认的 H2 数据库,**不推荐用于生产环境,建议体验和测试的时候使用**):
|
||||
|
||||
```yaml {13-20} title="~/halo/docker-compose.yaml"
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
halo:
|
||||
image: halohub/halo:2.0.0
|
||||
container_name: halo
|
||||
restart: on-failure:3
|
||||
volumes:
|
||||
- ./:/root/.halo2
|
||||
ports:
|
||||
- "8090:8090"
|
||||
environment:
|
||||
# 外部访问地址,请根据实际需要修改
|
||||
- HALO_EXTERNAL_URL=http://localhost:8090/
|
||||
# 初始化的超级管理员用户名
|
||||
- HALO_SECURITY_INITIALIZER_SUPERADMINUSERNAME=admin
|
||||
# 初始化的超级管理员密码
|
||||
- HALO_SECURITY_INITIALIZER_SUPERADMINPASSWORD=P@88w0rd
|
||||
```
|
||||
|
||||
3. 启动 Halo 服务
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
实时查看日志:
|
||||
|
||||
```bash
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
4. 用浏览器访问 `$HALO_EXTERNAL_URL/console/`(外部访问链接)即可进入 Halo 管理端。管理员用户名为 `admin`,登录密码为上方设置的 `HALO_SECURITY_INITIALIZER_SUPERADMINPASSWORD`。
|
||||
|
||||
:::tip
|
||||
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 `http://ip:端口号` 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
|
||||
:::
|
||||
|
||||
## 使用
|
||||
## 更新容器组
|
||||
|
||||
目前 RC 版本有以下几个使用注意事项:
|
||||
1. 停止运行中的容器组
|
||||
|
||||
1. 由于目前评论组件被插件化且暂不支持提供默认插件,所以如果要体验完整的评论功能,需要手动在后台安装 <https://github.com/halo-sigs/plugin-comment-widget> 评论组件插件。
|
||||
2. 目前 2.0 已支持的主题和插件会同步到 <https://github.com/halo-sigs/awesome-halo>,你可以在对应仓库的 release 下载最新的主题或插件。
|
||||
```bash
|
||||
cd ~/halo && docker-compose down
|
||||
```
|
||||
|
||||
2. 备份数据(重要)
|
||||
|
||||
```bash
|
||||
cp -r ~/halo ~/halo.archive
|
||||
```
|
||||
|
||||
> 需要注意的是,`halo.archive` 文件名不一定要根据此文档命名,这里仅仅是个示例。
|
||||
|
||||
3. 更新 Halo 服务
|
||||
|
||||
修改 `docker-compose.yaml` 中配置的镜像版本。
|
||||
|
||||
```yaml {3}
|
||||
services:
|
||||
halo:
|
||||
image: halohub/halo:2.0.0
|
||||
container_name: halo
|
||||
```
|
||||
|
||||
```bash
|
||||
docker-compose pull
|
||||
```
|
||||
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
## 反向代理
|
||||
|
||||
@@ -140,7 +235,7 @@ description: 使用 Docker Compose 部署
|
||||
|
||||
### Nginx
|
||||
|
||||
```nginx
|
||||
```nginx {2,7,10}
|
||||
upstream halo {
|
||||
server 127.0.0.1:8090;
|
||||
}
|
||||
@@ -159,61 +254,12 @@ server {
|
||||
}
|
||||
```
|
||||
|
||||
### Caddy 1.x
|
||||
### Caddy 2
|
||||
|
||||
```txt
|
||||
https://www.yourdomain.com {
|
||||
gzip
|
||||
tls your@email.com
|
||||
proxy / localhost:8090 {
|
||||
transparent
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Caddy 2.x
|
||||
|
||||
```txt
|
||||
```txt {1,5}
|
||||
www.yourdomain.com
|
||||
|
||||
encode gzip
|
||||
|
||||
reverse_proxy 127.0.0.1:8090
|
||||
```
|
||||
|
||||
以上配置都可以在 <https://github.com/halo-dev/halo-common> 找到。
|
||||
|
||||
## 更新容器组
|
||||
|
||||
:::info
|
||||
我们假设您的 Halo 服务容器是按照 [使用 Docker Compose 部署 Halo](docker-compose.md) 中的方式启动的。如有不同,请根据实际情况修改。
|
||||
:::
|
||||
|
||||
1. 停止运行中的容器组
|
||||
|
||||
```bash
|
||||
cd ~/halo-next && docker-compose stop
|
||||
```
|
||||
|
||||
2. 备份数据(重要)
|
||||
|
||||
```bash
|
||||
cp -r ~/halo-next ~/halo-next.archive
|
||||
```
|
||||
|
||||
> 需要注意的是,`halo-next.archive` 文件名不一定要根据此文档命名,这里仅仅是个示例。
|
||||
|
||||
3. 更新 Halo 服务
|
||||
|
||||
修改 `docker-compose.yaml` 中配置的镜像版本。
|
||||
|
||||
```yaml {3}
|
||||
services:
|
||||
halo_next:
|
||||
image: halohub/halo-dev:2.0.0-rc.1
|
||||
container_name: halo_next
|
||||
```
|
||||
|
||||
```bash
|
||||
docker-compose pull && docker-compose up -d
|
||||
```
|
||||
|
@@ -4,29 +4,37 @@ description: 使用 Docker 部署
|
||||
---
|
||||
|
||||
:::info
|
||||
暂时我们仅提供使用 Docker 运行的文档。在继续操作之前,我们推荐您先阅读[《写在前面》](../prepare),这可以快速帮助你了解 Halo。
|
||||
在继续操作之前,我们推荐您先阅读[《写在前面》](../prepare),这可以快速帮助你了解 Halo。
|
||||
:::
|
||||
|
||||
:::tip
|
||||
此文档仅提供使用默认 H2 数据库的 Docker 运行方式,主要用于体验和测试,在生产环境我们不推荐使用 H2 数据库。
|
||||
|
||||
如果需要使用其他数据库部署,我们推荐使用 Docker Compose 部署:[使用 Docker Compose 部署](./docker-compose)
|
||||
:::
|
||||
|
||||
## 使用 Docker 镜像
|
||||
|
||||
可用的 Halo 2.0.0-rc.1 的 Docker 镜像:
|
||||
可用的 Halo 2.0.0 的 Docker 镜像:
|
||||
|
||||
- [halohub/halo-dev](https://hub.docker.com/r/halohub/halo-dev)
|
||||
- [ghcr.io/halo-dev/halo-dev](https://github.com/halo-dev/halo/pkgs/container/halo-dev)
|
||||
- [halohub/halo](https://hub.docker.com/r/halohub/halo)
|
||||
- [ghcr.io/halo-dev/halo](https://github.com/halo-dev/halo/pkgs/container/halo)
|
||||
|
||||
> 注意:以上两个镜像仅作为 Halo 2.0 测试期间的镜像,正式发布之后会更改为 `halohub/halo` 和 `ghcr.io/halo-dev/halo`。
|
||||
:::info 注意
|
||||
目前 Halo 2.0 并未更新 Docker 的 latest 标签镜像,主要因为 2.0 不兼容 1.x 版本,防止使用者误操作。我们推荐使用固定版本的标签,比如 `halohub/halo:2.0.0`。
|
||||
:::
|
||||
|
||||
1. 创建容器
|
||||
|
||||
```bash
|
||||
docker run \
|
||||
-it -d \
|
||||
--name halo-next \
|
||||
--name halo \
|
||||
-p 8090:8090 \
|
||||
-v ~/.halo2:/root/.halo2 \
|
||||
-e HALO_EXTERNAL_URL=http://localhost:8090/ \
|
||||
-e HALO_SECURITY_INITIALIZER_SUPERADMINPASSWORD=P@88w0rd \
|
||||
halohub/halo-dev:2.0.0-rc.1
|
||||
halohub/halo:2.0.0
|
||||
```
|
||||
|
||||
:::info
|
||||
@@ -47,59 +55,3 @@ description: 使用 Docker 部署
|
||||
:::tip
|
||||
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 `http://ip:端口号` 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
|
||||
:::
|
||||
|
||||
## 使用
|
||||
|
||||
目前 RC 版本有以下几个使用注意事项:
|
||||
|
||||
1. 由于目前评论组件被插件化且暂不支持提供默认插件,所以如果要体验完整的评论功能,需要手动在后台安装 <https://github.com/halo-sigs/plugin-comment-widget> 评论组件插件。
|
||||
2. 目前 2.0 已支持的主题和插件会同步到 <https://github.com/halo-sigs/awesome-halo>,你可以在对应仓库的 release 下载最新的主题或插件。
|
||||
|
||||
## 反向代理
|
||||
|
||||
你可以在下面的反向代理软件中任选一项,我们假设你已经安装好了其中一项,并对其的基本操作有一定了解。如果你对 Nginx 不熟悉,我们推荐使用 [OneinStack](./other/oneinstack) 来管理 Nginx。
|
||||
|
||||
### Nginx
|
||||
|
||||
```nginx
|
||||
upstream halo {
|
||||
server 127.0.0.1:8090;
|
||||
}
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name www.yourdomain.com;
|
||||
client_max_body_size 1024m;
|
||||
location / {
|
||||
proxy_pass http://halo;
|
||||
proxy_set_header HOST $host;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Caddy 1.x
|
||||
|
||||
```txt
|
||||
https://www.yourdomain.com {
|
||||
gzip
|
||||
tls your@email.com
|
||||
proxy / localhost:8090 {
|
||||
transparent
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Caddy 2.x
|
||||
|
||||
```txt
|
||||
www.yourdomain.com
|
||||
|
||||
encode gzip
|
||||
|
||||
reverse_proxy 127.0.0.1:8090
|
||||
```
|
||||
|
||||
以上配置都可以在 <https://github.com/halo-dev/halo-common> 找到。
|
||||
|
@@ -1,271 +0,0 @@
|
||||
---
|
||||
title: 在 Linux 环境部署
|
||||
description: 在 Linux 上快速安装 Halo
|
||||
---
|
||||
|
||||
:::info
|
||||
在继续操作之前,我们推荐您先阅读[《写在前面》](../prepare),这可以快速帮助你了解 Halo。
|
||||
:::
|
||||
|
||||
## 依赖检查
|
||||
|
||||
目前运行 Halo 的最低依赖要求为 JRE 11,请务必确保在进行下面操作之前已经正确安装了 JRE。
|
||||
|
||||
目前介绍两种 Linux 发行版的安装方式,均为 OpenJRE,不推荐 Oracle 版本。
|
||||
|
||||
### CentOS
|
||||
|
||||
```bash
|
||||
sudo yum install java-17-openjdk -y
|
||||
```
|
||||
|
||||
检查版本:
|
||||
|
||||
```bash
|
||||
java -version
|
||||
```
|
||||
|
||||
如果输出以下类似内容即代表成功
|
||||
|
||||
```bash
|
||||
openjdk version "17.0.4.1" 2022-08-12
|
||||
OpenJDK Runtime Environment Homebrew (build 17.0.4.1+1)
|
||||
OpenJDK 64-Bit Server VM Homebrew (build 17.0.4.1+1, mixed mode, sharing)
|
||||
```
|
||||
|
||||
### Ubuntu
|
||||
|
||||
```bash
|
||||
sudo apt-get install openjdk-17-jre -y
|
||||
```
|
||||
|
||||
检查版本:
|
||||
|
||||
```bash
|
||||
java -version
|
||||
```
|
||||
|
||||
如果输出以下类似内容即代表成功
|
||||
|
||||
```bash
|
||||
openjdk version "17.0.4.1" 2022-08-12
|
||||
OpenJDK Runtime Environment Homebrew (build 17.0.4.1+1)
|
||||
OpenJDK 64-Bit Server VM Homebrew (build 17.0.4.1+1, mixed mode, sharing)
|
||||
```
|
||||
|
||||
## 安装
|
||||
|
||||
1. 创建新的系统用户
|
||||
|
||||
:::info
|
||||
我们不推荐直接使用系统 root 用户来运行 Halo。如果您需要直接使用 root 用户,请跳过这一步。
|
||||
:::
|
||||
|
||||
创建一个名为 halo 的用户(名字可以随意)
|
||||
|
||||
```bash
|
||||
useradd -m halo
|
||||
```
|
||||
|
||||
给予 sudo 权限
|
||||
|
||||
```bash
|
||||
usermod -aG wheel halo
|
||||
```
|
||||
|
||||
为 halo 用户创建密码
|
||||
|
||||
```bash
|
||||
passwd halo
|
||||
```
|
||||
|
||||
登录到 halo 账户
|
||||
|
||||
```bash
|
||||
su - halo
|
||||
```
|
||||
|
||||
2. 创建存放 [运行包](../prepare#运行包) 的目录,这里以 `~/app` 为例
|
||||
|
||||
```bash
|
||||
mkdir ~/app && cd ~/app
|
||||
```
|
||||
|
||||
3. 下载运行包
|
||||
|
||||
```bash
|
||||
wget https://dl.halo.run/prerelease/halo-2.0-alpha.1.jar -O halo.jar
|
||||
```
|
||||
|
||||
:::info
|
||||
如果下载速度不理想,可以 [在这里](../downloads) 选择其他下载地址。
|
||||
:::
|
||||
|
||||
4. 创建 [工作目录](../prepare#工作目录)
|
||||
|
||||
```bash
|
||||
mkdir ~/halo-next && cd ~/halo-next
|
||||
```
|
||||
|
||||
5. 下载示例配置文件到 [工作目录](../prepare#工作目录)
|
||||
|
||||
```bash
|
||||
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
|
||||
```
|
||||
|
||||
6. 编辑配置文件,配置数据库或者端口等,如需配置请参考 [配置参考](../config)
|
||||
|
||||
```bash
|
||||
vim application.yaml
|
||||
```
|
||||
|
||||
7. 测试运行 Halo
|
||||
|
||||
```bash
|
||||
cd ~/app && java -jar halo.jar
|
||||
```
|
||||
|
||||
8. 如看到类似以下日志输出,则代表启动成功。
|
||||
|
||||
```bash
|
||||
run.halo.app.listener.StartedListener : Halo started at http://127.0.0.1:8090
|
||||
run.halo.app.listener.StartedListener : Halo admin started at http://127.0.0.1:8090/admin
|
||||
run.halo.app.listener.StartedListener : Halo has started successfully!
|
||||
```
|
||||
|
||||
打开 `http://ip:端口号` 即可看到安装引导界面。
|
||||
|
||||
:::info
|
||||
如测试启动正常,请继续看`作为服务运行`部分,第 8 步仅仅作为测试。当你关闭 ssh 连接之后,服务会停止。你可使用 <kbd>CTRL</kbd>+<kbd>C</kbd> 停止运行测试进程。
|
||||
:::
|
||||
|
||||
:::tip
|
||||
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 `http://ip: 端口号` 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
|
||||
:::
|
||||
|
||||
## 作为服务运行
|
||||
|
||||
1. 退出 halo 账户,登录到 root 账户
|
||||
|
||||
> 如果当前就是 root 账户,请略过此步骤。
|
||||
|
||||
```bash
|
||||
exit
|
||||
```
|
||||
|
||||
2. 下载 Halo 官方的 halo.service 模板
|
||||
|
||||
```bash
|
||||
wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service
|
||||
```
|
||||
|
||||
3. 修改 halo.service
|
||||
|
||||
```bash
|
||||
vim /etc/systemd/system/halo.service
|
||||
```
|
||||
|
||||
4. 修改配置
|
||||
|
||||
- **YOUR_JAR_PATH**:Halo 运行包的绝对路径,例如 `/home/halo/app/halo.jar`,注意:此路径不支持 `~` 符号。
|
||||
- **USER**:运行 Halo 的系统用户,如果有按照上方教程创建新的用户来运行 Halo,修改为你创建的用户名称即可。反之请删除 `User=USER`。
|
||||
|
||||
```ini
|
||||
[Unit]
|
||||
Description=Halo Service
|
||||
Documentation=https://halo.run
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=USER
|
||||
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar YOUR_JAR_PATH
|
||||
ExecStop=/bin/kill -s QUIT $MAINPID
|
||||
Restart=always
|
||||
StandOutput=syslog
|
||||
|
||||
StandError=inherit
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
:::tip
|
||||
请确保 `/usr/bin/java` 是正确无误的。建议将 `ExecStart` 中的命令复制出来运行一下,保证命令有效。
|
||||
:::
|
||||
|
||||
5. 重新加载 systemd
|
||||
|
||||
```bash
|
||||
systemctl daemon-reload
|
||||
```
|
||||
|
||||
6. 运行服务
|
||||
|
||||
```bash
|
||||
systemctl start halo
|
||||
```
|
||||
|
||||
7. 在系统启动时启动服务
|
||||
|
||||
```bash
|
||||
systemctl enable halo
|
||||
```
|
||||
|
||||
您可以查看服务日志检查启动状态
|
||||
|
||||
```bash
|
||||
journalctl -n 20 -u halo
|
||||
```
|
||||
|
||||
## 反向代理
|
||||
|
||||
你可以在下面的反向代理软件中任选一项,我们假设你已经安装好了其中一项,并对其基本操作有一定了解。如果你对 Nginx 不熟悉,我们推荐使用 [OneinStack](./other/oneinstack) 来管理 Nginx。
|
||||
|
||||
### Nginx
|
||||
|
||||
```nginx
|
||||
upstream halo {
|
||||
server 127.0.0.1:8090;
|
||||
}
|
||||
server {
|
||||
listen 80;
|
||||
listen [::]:80;
|
||||
server_name www.yourdomain.com;
|
||||
client_max_body_size 1024m;
|
||||
location / {
|
||||
proxy_pass http://halo;
|
||||
proxy_set_header HOST $host;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
注意:Nginx 默认的 `client_max_body_size` 配置大小为 1m,可能会导致你在 Halo 后台上传文件被 Nginx 限制,所以此示例配置文件加上了 `client_max_body_size 1024m;` 这行配置。当然,1024m 可根据你的需要自行修改。
|
||||
|
||||
### Caddy 1.x
|
||||
|
||||
```txt
|
||||
https://www.yourdomain.com {
|
||||
gzip
|
||||
tls your@email.com
|
||||
proxy / localhost:8090 {
|
||||
transparent
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Caddy 2.x
|
||||
|
||||
```txt
|
||||
www.yourdomain.com
|
||||
|
||||
encode gzip
|
||||
|
||||
reverse_proxy 127.0.0.1:8090
|
||||
```
|
||||
|
||||
以上配置都可以在 <https://github.com/halo-dev/halo-common> 找到。
|
@@ -1,149 +0,0 @@
|
||||
---
|
||||
title: 与宝塔面板配合使用
|
||||
description: 与宝塔面板配合使用的指南
|
||||
---
|
||||
|
||||
## 声明
|
||||
|
||||
1. 本组织与宝塔面板官方无任何合作和利益关系。
|
||||
2. 您在使用期间如果有宝塔面板所带来的问题,均与我们无关。
|
||||
3. 开始之前,我们默认认为您已经安装好了宝塔面板,以及熟悉宝塔面板的使用。
|
||||
4. 建议使用宝塔面板最新版本,截止到撰写指南的时刻,宝塔面板的版本为 `7.4.7`。
|
||||
|
||||
## Halo 部署
|
||||
|
||||
参见 [在 Linux 环境部署](/getting-started/install/linux)
|
||||
|
||||
:::info
|
||||
`「作为服务运行」` 部分可以不进行操作,只需测试启动无误即可,后面将使用宝塔面板软件包中的 `Supervisor` 托管 Halo 进程。
|
||||
:::
|
||||
|
||||
## 宝塔面板所需软件包下载
|
||||
|
||||
需要在宝塔面板的软件商店安装的软件包有:
|
||||
|
||||
1. Nginx
|
||||
2. Supervisor
|
||||
|
||||
## 使用 Supervisor 托管 Halo 进程
|
||||
|
||||
打开 Supervisor 管理器的设置,点击 `添加守护进程` 按钮。
|
||||
|
||||
需要填写的表单信息如下:
|
||||
|
||||
- **名称**:随意
|
||||
- **启动用户**:如果您按照 [在 Linux 环境部署](/getting-started/install/linux) 创建了用于运行 Halo 的用户,则选择您创建的用户即可。否则选择默认的 root。
|
||||
- **运行目录**:运行包的存放目录,按照实际情况填写,需要保证你所选的目录包含运行包。
|
||||
- **启动命令**:`java -server -Xms256m -Xmx256m -jar halo.jar`
|
||||
|
||||
填写完成之后点击 `确定` 按钮即可。
|
||||
|
||||
## 添加站点并配置 Nginx
|
||||
|
||||
1. 点击左侧的 `网站` 菜单项,点击 `添加站点` 按钮。
|
||||
|
||||
需要填写的表单信息如下:
|
||||
|
||||
- **域名**:填写您已经解析到当前服务器公网 IP 的域名。
|
||||
- **PHP版本**:纯静态
|
||||
|
||||
填写完成之后点击 `提交` 按钮即可。
|
||||
|
||||
2. 设置 SSL
|
||||
|
||||
:::info
|
||||
在配置反向代理之前,我们推荐先设置好 SSL 证书。
|
||||
:::
|
||||
|
||||
- 可选择 `宝塔 SSL` 或者 `Let's Encrypt` 进行证书申请。
|
||||
- 需要开启右上角的 `强制 HTTPS`。
|
||||
|
||||
3. 修改配置文件
|
||||
|
||||
在根节点添加:
|
||||
|
||||
```nginx
|
||||
upstream halo {
|
||||
server 127.0.0.1:8090;
|
||||
}
|
||||
```
|
||||
|
||||
> 其中的 8090 为 Halo 的运行端口,请按需修改。
|
||||
|
||||
在 server 节点添加:
|
||||
|
||||
```nginx
|
||||
location / {
|
||||
proxy_pass http://halo;
|
||||
proxy_set_header HOST $host;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
}
|
||||
```
|
||||
|
||||
修改 server 节点中的 `location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$` 节点:
|
||||
|
||||
```nginx
|
||||
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
|
||||
{
|
||||
proxy_pass http://halo;
|
||||
expires 30d;
|
||||
error_log /dev/null;
|
||||
access_log off;
|
||||
}
|
||||
```
|
||||
|
||||
修改 server 节点中的 `location ~ .*\.(js|css)?$` 节点:
|
||||
|
||||
```nginx
|
||||
location ~ .*\.(js|css)?$
|
||||
{
|
||||
proxy_pass http://halo;
|
||||
expires 12h;
|
||||
error_log /dev/null;
|
||||
access_log off;
|
||||
}
|
||||
```
|
||||
|
||||
完整配置文件示例(仅包含关键部分):
|
||||
|
||||
```nginx
|
||||
upstream halo {
|
||||
server 127.0.0.1:8090;
|
||||
}
|
||||
server
|
||||
{
|
||||
...
|
||||
|
||||
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
|
||||
{
|
||||
proxy_pass http://halo;
|
||||
expires 30d;
|
||||
error_log /dev/null;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
location ~ .*\.(js|css)?$
|
||||
{
|
||||
proxy_pass http://halo;
|
||||
expires 12h;
|
||||
error_log /dev/null;
|
||||
access_log off;
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_pass http://halo;
|
||||
proxy_set_header HOST $host;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
}
|
||||
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
随后点击保存即可。如果配置不生效,请重载 Nginx 或者 重启 Nginx。
|
||||
|
||||
最后,访问域名即可进行 Halo 的初始化。
|
@@ -1,202 +0,0 @@
|
||||
---
|
||||
title: 使用 Docker 部署 Halo 和 MySQL
|
||||
description: Halo 与 MySQL 在 Docker 中的部署方案
|
||||
---
|
||||
|
||||
### 简介
|
||||
|
||||
该章节我们将分三种情况为您说明该如何同时使用 Docker + MySQL 来部署 Halo
|
||||
|
||||
前提条件: 我们默认您的机器上已经安装好 `Docker`
|
||||
|
||||
- 如果你想完全通过 `Docker` 运行 `MySQL` 和 `Halo` 请参考小节《统一使用 Docker 安装》
|
||||
- 如果你已经有 `Docker`部署的 `MySQL`,想安装 `Halo` 请参考小节《MySQL 部署在 Docker 如何使用 Docker 安装 Halo》
|
||||
- 如果你已有 `MySQL` 但部署在宿主机,想通过 `Docker` 安装 `Halo` 请参考小节《MySQL 在宿主机如何通过 Docker 安装 Halo》
|
||||
|
||||
### 统一使用 Docker 安装
|
||||
|
||||
如果你的机器上没有现成的 `MySQL` 可供使用,那么您可以选择使用 `Docker` 来运行 `MySQL` 和 `Halo`
|
||||
|
||||
1. 创建 Docker 自定义桥接网络
|
||||
|
||||
```shell
|
||||
docker network create halo-net
|
||||
```
|
||||
|
||||
:::tip
|
||||
如果你之前有 Docker 使用经验,你可能已经习惯了使用 `--link` 参数来使容器互联。
|
||||
|
||||
但随着 Docker 网络的完善,强烈建议大家将容器加入自定义的 Docker 网络来连接多个容器,而不是使用 --link 参数。
|
||||
Docker 官方文档中称:该--link 标志是 Docker 的遗留功能。它可能最终会被删除。除非您确定需要继续使用它,否则我们建议您使用用户定义的网络来促进两个容器之间的通信,而不是使用 --link。
|
||||
:::
|
||||
|
||||
2. 拉取 `MySQL` 镜像
|
||||
|
||||
```shell
|
||||
docker pull mysql:8.0.27
|
||||
```
|
||||
|
||||
3. 创建 `MySQL` 数据目录
|
||||
|
||||
```shell
|
||||
mkdir -p ~/.halo/mysql
|
||||
```
|
||||
|
||||
3. 启动 `MySQL` 实例
|
||||
|
||||
```shell
|
||||
docker run --name some-mysql -v ~/.halo/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw --net halo-net --restart=unless-stopped -d mysql:8.0.27
|
||||
```
|
||||
|
||||
注意: 请将 `my-secret-pw` 修改为自己需要的密码后再执行,密码尽量包含小写字母、大写字母、数字和特殊字符且长度超过 8 位。
|
||||
|
||||
:::tip 释意
|
||||
|
||||
`-e MYSQL_ROOT_PASSWORD=my-secret-pw`: 指定`MySQL`的登录密码为 `my-secret-pw`
|
||||
|
||||
`-v ~/.halo/mysql:/var/lib/mysql` 命令: 将宿主机的目录 `~/.halo/mysql` 挂载到容器内部的目录 `/var/lib/mysql`,默认情况下 MySQL 将向 `~/.halo/mysql` 写入其数据文件。
|
||||
|
||||
`--net halo-net`: 将该容器加入到 `halo-net` 网络,连接到 `halo-net` 网络的任何其他容器都可以访问 `some-mysql`容器上的所有端口。
|
||||
|
||||
:::
|
||||
|
||||
4. 进入 MySQL 容器中登录 MySQL 并创建 Halo 需要的数据库
|
||||
|
||||
- (1) some-mysql 为 MySQL 实例的容器名称
|
||||
|
||||
```shell
|
||||
docker exec -it some-mysql /bin/bash
|
||||
```
|
||||
|
||||
- (2) 登录 MySQL
|
||||
|
||||
```shell
|
||||
mysql -u root -p
|
||||
```
|
||||
|
||||
- (3) 输入 MySQL 数据库密码
|
||||
|
||||
- (4) 创建数据库
|
||||
|
||||
```shell
|
||||
create database halodb character set utf8mb4 collate utf8mb4_bin;
|
||||
```
|
||||
|
||||
- (5) 使用 `exit`退出`MySQL` 并退出容器
|
||||
|
||||
5. 创建 `Halo` 工作目录
|
||||
|
||||
```bash
|
||||
mkdir ~/.halo && cd ~/.halo
|
||||
```
|
||||
|
||||
6. 下载示例配置文件到[工作目录](https://docs.halo.run/getting-started/prepare#工作目录)
|
||||
|
||||
```shell
|
||||
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
|
||||
```
|
||||
|
||||
7. 编辑配置文件,配置数据库,其他配置请参考[参考配置](https://docs.halo.run/getting-started/config)
|
||||
|
||||
```shell
|
||||
vim application.yaml
|
||||
```
|
||||
|
||||
你需要做如下几个步骤:
|
||||
|
||||
- 注释 H2 database configuration.部分
|
||||
- 启用 MySQL database configuration.部分
|
||||
- 修改 datasource 下的 url 中的 ip 地址部分为容器名称并修改密码为您设定的 `MySQL` 密码
|
||||
|
||||
修改后的内容如下:
|
||||
|
||||
```yaml
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
url: jdbc:mysql://some-mysql:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||||
username: root
|
||||
password: my-secret-pw
|
||||
```
|
||||
|
||||
8. 创建 Halo 容器实例
|
||||
|
||||
```shell
|
||||
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --net halo-net --restart=unless-stopped halohub/halo:1.5.4
|
||||
```
|
||||
|
||||
9. 打开 `http://ip:端口号` 即可看到安装引导界面。
|
||||
|
||||
### MySQL 部署在 Docker 如何使用 Docker 安装 Halo
|
||||
|
||||
如果您已有 `Docker` 部署的 `MySQL` 实例,那么为了保证 `Halo` 和 `MySQL` 两个容器的网络可以互通,和上文同样的思路可以创建一个网络让 `MySQL` 和 `Halo` 都加入进来。
|
||||
|
||||
1. 使用 `docker ps` 来查看的你 `MySQL` 容器实例的名称或 `container id`, 例如 `some-mysql`
|
||||
2. 创建一个桥接网络,让 `MySQL` 加入,首先使用 `docker network ls` 来查看一下都有哪些网络名称,起一个不会冲突的网络名称,例如 `halo-net`,其次让已经存在的 MySQL 容器实例加入到该网络中
|
||||
|
||||
```shell
|
||||
docker network connect halo-net some-mysql
|
||||
```
|
||||
|
||||
3. 同之前一样创建 `Halo` 工作目录
|
||||
|
||||
```bash
|
||||
mkdir ~/.halo && cd ~/.halo
|
||||
```
|
||||
|
||||
4. 下载示例配置文件到[工作目录](https://docs.halo.run/getting-started/prepare#工作目录)
|
||||
|
||||
```shell
|
||||
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
|
||||
```
|
||||
|
||||
5. 编辑配置文件,修改 `MySQL` 的数据库连接和密码
|
||||
|
||||
```shell
|
||||
vim application.yaml
|
||||
```
|
||||
|
||||
你需要做如下几个步骤:
|
||||
|
||||
- 注释 H2 database configuration.部分
|
||||
- 启用 MySQL database configuration.部分
|
||||
- 修改 datasource 下的 url 中的 ip 地址部分为容器名称并修改密码为您设定的 `MySQL` 密码
|
||||
|
||||
修改后的内容如下:
|
||||
|
||||
```yaml
|
||||
spring:
|
||||
datasource:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
url: jdbc:mysql://some-mysql:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||||
username: root
|
||||
password: my-secret-pw
|
||||
```
|
||||
|
||||
6. 创建 `Halo` 容器实例,并使用 `--net` 指定网络为刚才创建的`halo-net`
|
||||
|
||||
```shell
|
||||
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --net halo-net --restart=unless-stopped halohub/halo:1.5.4
|
||||
```
|
||||
|
||||
### MySQL 在宿主机如何通过 Docker 安装 Halo
|
||||
|
||||
如果你已有 `MySQL` 但安装在宿主机,你想使用 `Docker` 安装 `Halo` 那么此时为了保证 `MySQL` 和 `Halo` 能网络互通,可以使用 `host` 网络模式即 `--net host`。
|
||||
|
||||
1. 创建 `Halo` 的工作目录
|
||||
|
||||
```shell
|
||||
mkdir ~/.halo && cd ~/.halo
|
||||
```
|
||||
|
||||
2. 拉取配置
|
||||
|
||||
```shell
|
||||
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
|
||||
```
|
||||
|
||||
3. 使用 `Docker` 启动 `Halo` 实例并指定网络模式为 `host`
|
||||
|
||||
```shell
|
||||
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --net host --restart=unless-stopped halohub/halo:1.5.4
|
||||
```
|
@@ -1,11 +1,11 @@
|
||||
---
|
||||
title: 与 OneinStack 配合使用
|
||||
description: 使用 OneinStack 的 vhost 脚本创建 Halo 站点的 Nginx 配置文件
|
||||
description: 使用 OneinStack 管理 Halo 服务的反向代理
|
||||
---
|
||||
|
||||
## Halo 部署
|
||||
|
||||
参见 [在 Linux 环境部署](../linux.md)
|
||||
参见 [使用 Docker Compose 部署](../docker-compose.md)
|
||||
|
||||
:::info
|
||||
`「反向代理」` 部分不进行操作,保证 Halo 服务运行无误即可。
|
||||
@@ -140,7 +140,7 @@ location ~ [^/]\.php(/|$) {
|
||||
|
||||
在 `server` 的同级节点添加如下配置:
|
||||
|
||||
```nginx
|
||||
```nginx {2}
|
||||
upstream halo {
|
||||
server 127.0.0.1:8090;
|
||||
}
|
||||
@@ -148,7 +148,7 @@ upstream halo {
|
||||
|
||||
4. 在 `server` 节点添加如下配置
|
||||
|
||||
```nginx
|
||||
```nginx {6}
|
||||
location / {
|
||||
proxy_set_header HOST $host;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
@@ -160,7 +160,7 @@ location / {
|
||||
|
||||
5. 修改 `location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$` 节点
|
||||
|
||||
```nginx
|
||||
```nginx {2}
|
||||
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
|
||||
proxy_pass http://halo;
|
||||
expires 30d;
|
||||
@@ -170,7 +170,7 @@ location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
|
||||
|
||||
6. 修改 `location ~ .*\.(js|css)?$` 节点
|
||||
|
||||
```nginx
|
||||
```nginx {2}
|
||||
location ~ .*\.(js|css)?$ {
|
||||
proxy_pass http://halo;
|
||||
expires 7d;
|
||||
@@ -184,7 +184,7 @@ location ~ .*\.(js|css)?$ {
|
||||
|
||||
OneinStack 使用的 acme.sh 管理证书,如果你在创建 vhost 的时候选择了使用 `Let's Encrypt` 申请证书,那么 OneinStack 会在系统内添加一个定时任务去自动续签证书,acme.sh 默认验证站点所有权的方式为在站点根目录生成一个文件(.well-known)来做验证,由于配置了反向代理,所以在验证的时候是无法直接访问到站点目录下的 .well-known 文件夹下的验证文件的。需要添加如下配置:
|
||||
|
||||
```nginx
|
||||
```nginx {4}
|
||||
location ^~ /.well-known/acme-challenge/ {
|
||||
default_type "text/plain";
|
||||
allow all;
|
||||
@@ -194,7 +194,7 @@ location ^~ /.well-known/acme-challenge/ {
|
||||
|
||||
至此,配置修改完毕,保存即可。最终你的配置文件可能如下面配置一样:
|
||||
|
||||
```nginx
|
||||
```nginx {2,20,29,34,41-47,51}
|
||||
upstream halo {
|
||||
server 127.0.0.1:8090;
|
||||
}
|
||||
|
@@ -1,85 +0,0 @@
|
||||
---
|
||||
title: 腾讯云 CloudBase
|
||||
description: 使用腾讯云 CloudBase 一键部署
|
||||
---
|
||||
|
||||
## 声明
|
||||
|
||||
1. 本组织与腾讯云官方无任何合作和利益关系。
|
||||
2. 您在使用期间如果有腾讯云所带来的问题,均与我们无关。
|
||||
3. 开始之前,我们默认认为您已经了解过 [腾讯云云开发](https://cloud.tencent.com/product/tcb)。
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. 系统使用内置的 H2 Database,暂不支持使用 MySQL。
|
||||
1. 工作目录保存在腾讯云提供的 CFS 上,在使用此方式创建应用的时候会要求创建 CFS。
|
||||
1. 目前使用该方式部署,不支持修改 [配置文件](/getting-started/config)。
|
||||
1. 费用相关请参考 <https://cloud.tencent.com/document/product/876/18864>
|
||||
|
||||
## 进入云开发页面
|
||||
|
||||
点击下方按钮即可进入到腾讯云云开发 CloudBase 创建应用界面,此按钮可在云开发页面自动选择 Halo 的配置模板。
|
||||
|
||||
### GitHub
|
||||
|
||||
[](https://console.cloud.tencent.com/tcb/env/index?action=CreateAndDeployCloudBaseProject&appUrl=https%3A%2F%2Fgithub.com%2Fhalo-dev%2Ftencent-cloudbase-halo&branch=master)
|
||||
|
||||
### Gitee
|
||||
|
||||
[](https://console.cloud.tencent.com/tcb/env/index?action=CreateAndDeployCloudBaseProject&appUrl=https%3A%2F%2Fgitee.com%2Fhalo-dev%2Ftencent-cloudbase-halo&branch=master)
|
||||
|
||||
## 配置并部署
|
||||
|
||||
**填写环境名称**,这里建议把 `开启免费额度` 打开,然后点击下一步。
|
||||
|
||||

|
||||
|
||||
**应用配置**,需要注意:这里需要开通 CFS,用于存储 Halo 的工作目录。
|
||||
|
||||

|
||||
|
||||
**提交授权**,点击 `授权并开通`。
|
||||
|
||||

|
||||
|
||||
**创建环境中**,完成之后,点击 `环境` 下面的卡片,即可进入详细配置页面。
|
||||
|
||||

|
||||
|
||||
**构建应用中**,这里可能会等待较长时间。
|
||||
|
||||

|
||||
|
||||
**构建应用完成**,需要注意的是,构建完成之后可能还需要等待一小段时间才能正常访问,这个期间是在等待 Halo 应用启动完毕。点击 `访问` 按钮即可进入 Halo 初始化页面。
|
||||
|
||||

|
||||
|
||||
**Halo 初始化页面**:
|
||||
|
||||

|
||||
|
||||
**CFS 管理页面**:[https://console.cloud.tencent.com/cfs/fs](https://console.cloud.tencent.com/cfs/fs)
|
||||
|
||||

|
||||
|
||||
## 更新 Halo
|
||||
|
||||
> 当 Halo 有新版本更新的时候,你可以采用下面的方式进行版本升级。
|
||||
|
||||
### 删除旧版本
|
||||
|
||||
前往 [云托管](https://console.cloud.tencent.com/tcb/service) 页面,点击服务名称进入版本列表,然后删除当前使用的版本。
|
||||
|
||||

|
||||
|
||||
### 重新部署
|
||||
|
||||
回到 [我的应用](https://console.cloud.tencent.com/tcb/apps/index) 页面,点击 `部署` 按钮并确定。
|
||||
|
||||

|
||||
|
||||
## 相关链接
|
||||
|
||||
- [Halo 配置文件仓库](https://github.com/halo-dev/tencent-cloudbase-halo)
|
||||
- [腾讯云 CloudBase](https://console.cloud.tencent.com/tcb/env/index)
|
||||
- [云开发使用指南](https://cloud.tencent.com/document/product/876)
|
@@ -6,6 +6,8 @@ title: 三方指南
|
||||
此类指南或教程均来自第三方或者网友提供,我们不能一直保证其具有有效性,请参考的时候仔细甄别。另外,如果您有写类似的教程,也可以[联系我们](mailto:hi@halo.run)放在下方。
|
||||
:::
|
||||
|
||||
## Halo 1.0
|
||||
|
||||
- [Halo 博客安装教程,一款优秀的 Java 开源博客系统](https://www.cnblogs.com/bronya0/p/14198512.html)
|
||||
- [如何用服务器优雅地搭建一个博客—Hello,Halo!](https://www.bilibili.com/video/BV1JN411Q7Na/)
|
||||
- [Halo+云服务器+Nginx反向代理实现个人博客搭建](https://yusart.xyz/archives/halo%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2%E6%90%AD%E5%BB%BA)
|
||||
|
@@ -1,79 +0,0 @@
|
||||
---
|
||||
title: 在 Windows 服务器上部署
|
||||
---
|
||||
|
||||
:::info
|
||||
在继续操作之前,我们推荐您先阅读[《写在前面》](/getting-started/prepare),这可以快速帮助你了解 Halo。
|
||||
:::
|
||||
|
||||
## 系统要求
|
||||
|
||||
目前运行 Halo 的最低依赖要求为 JRE 11,而 Java9 之后将不再提供 32 位系统的环境,因此请确保您的服务器属于 64 位 CPU。
|
||||
|
||||
## 依赖检查
|
||||
|
||||
如下将介绍在 Windows 下安装 OpenJRE 11 的方式。如果您的服务器已经安装过 OpenJRE 11,则可以直接跳过本节。
|
||||
|
||||
1. 使用浏览器前往 <https://developers.redhat.com/content-gateway/file/java-11-openjdk-jre-11.0.10.9-1.windows.redhat.x86_64.msi> 下载 OpenJRE 11 的可执行程序。
|
||||
|
||||
2. 下载时会提示登录“红帽”,任意注册账号登录即可。登录完成之后会自动下载 JRE。
|
||||
|
||||
3. 双击 MSI 安装程序,安装 JRE 至服务器,注意到安装程序第三步时,勾选 `JAVA_HOME Variable`,其余直接 `next` 即可
|
||||
|
||||

|
||||
|
||||
4. 安装完成之后, 使用 <kbd>Win</kbd>+<kbd>R</kbd> 打开运行窗口并输入 `CMD` 后,回车打开 CMD 窗口。之后键入 `java -version`。显示如下所示内容即代表安装成功。
|
||||
|
||||
```bash
|
||||
openjdk version "11.0.10" 2021-01-19 LTS
|
||||
OpenJDK Runtime Environment 18.9 (build 11.0.10+9-LTS)
|
||||
OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9-LTS, mixed mode)
|
||||
```
|
||||
|
||||

|
||||
|
||||
## 安装 Halo
|
||||
|
||||
1. 下载运行包
|
||||
|
||||
使用浏览器前往 <https://dl.halo.run/release/halo-1.4.6.jar> 下载最新版本 Halo 运行包,**并保存至桌面**。修改 Jar 包名称为 `halo.jar`
|
||||
|
||||
:::info
|
||||
如果下载速度不理想,可以[在这里](/getting-started/downloads)选择其他下载地址。
|
||||
:::
|
||||
|
||||
2. 下载示例配置文件
|
||||
|
||||
使用浏览器前往 <https://dl.halo.run/config/application-template.yaml> 下载示例配置文件,**并保存至桌面**。修改示例配置文件名字为 `application.yaml`。
|
||||
|
||||
:::tip
|
||||
IE 浏览器下,配置文件可能会以文本的形式直接打开,因此推荐使用其他浏览器或下载器下载。
|
||||
:::
|
||||
|
||||
3. 使用记事本编辑配置文件,配置数据库或者端口等,如需配置请参考[参考配置](/getting-started/config)
|
||||
|
||||
4. 测试运行 Halo
|
||||
|
||||
使用 <kbd>Win</kbd>+<kbd>R</kbd> 打开运行窗口并输入 `CMD` 后,回车打开 CMD 窗口,并键入如下命令。
|
||||
|
||||
```bash
|
||||
cd Desktop && java -jar halo.jar
|
||||
```
|
||||
|
||||
5. 如看到类似以下日志输出,则代表启动成功。
|
||||
|
||||
```bash
|
||||
run.halo.app.listener.StartedListener : Halo started at http://127.0.0.1:8090
|
||||
run.halo.app.listener.StartedListener : Halo admin started at http://127.0.0.1:8090/admin
|
||||
run.halo.app.listener.StartedListener : Halo has started successfully!
|
||||
```
|
||||
|
||||
浏览器打开 `http://ip:端口号` 即可看到安装引导界面。
|
||||
|
||||
:::info
|
||||
如测试启动正常,请继续看`作为服务运行`部分,第 4 ~ 5 步仅仅作为测试。当你关闭 CMD 窗口之后,服务会停止。你可使用 <kbd>CTRL</kbd>+<kbd>C</kbd> 停止运行测试进程。
|
||||
:::
|
||||
|
||||
:::tip
|
||||
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 `http://ip:端口号` 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
|
||||
:::
|
@@ -1,119 +0,0 @@
|
||||
---
|
||||
title: 版本升级
|
||||
description: 版本升级指南
|
||||
---
|
||||
|
||||
当前最新版本为:1.5.4。在更新之前建议先查阅变更日志:<https://github.com/halo-dev/halo/releases/tag/v1.5.4>
|
||||
|
||||
## Linux
|
||||
|
||||
:::info
|
||||
我们假设你存放运行包的路径为 `~/app`,运行包的文件名为 `halo.jar`,且使用了 systemd 进行进程管理,如有不同,下列命令请按需修改。
|
||||
:::
|
||||
|
||||
1. 停止正在运行的服务
|
||||
|
||||
```bash
|
||||
service halo stop
|
||||
```
|
||||
|
||||
2. 备份数据以及旧的运行包(**重要**)
|
||||
|
||||
```bash
|
||||
cp -r ~/.halo ~/.halo.archive
|
||||
```
|
||||
|
||||
```bash
|
||||
mv ~/app/halo.jar ~/app/halo.jar.archive
|
||||
```
|
||||
|
||||
> 需要注意的是,`.halo.archive` 和 `halo.jar.archive` 文件名不一定要根据此文档命名,这里仅仅是个示例。
|
||||
|
||||
3. 清空 [leveldb](./config.md#缓存) 缓存(如果有使用 leveldb 作为缓存策略)
|
||||
|
||||
```bash
|
||||
rm -rf ~/.halo/.leveldb
|
||||
```
|
||||
|
||||
4. 下载最新版本的运行包
|
||||
|
||||
```bash
|
||||
cd ~/app && wget https://dl.halo.run/release/halo-1.5.4.jar -O halo.jar
|
||||
```
|
||||
|
||||
:::info
|
||||
如果下载速度不理想,可以[在这里](/getting-started/downloads)选择其他下载地址。
|
||||
:::
|
||||
|
||||
5. 启动测试
|
||||
|
||||
```bash
|
||||
java -jar halo.jar
|
||||
```
|
||||
|
||||
:::info
|
||||
如测试启动正常,请继续下一步。使用 <kbd>CTRL</kbd>+<kbd>C</kbd> 停止运行测试进程。
|
||||
:::
|
||||
|
||||
6. 重启服务
|
||||
|
||||
```bash
|
||||
service halo start
|
||||
```
|
||||
|
||||
## Docker
|
||||
|
||||
:::info
|
||||
我们假设您的容器是按照 [使用 Docker 部署 Halo](/getting-started/install/docker) 中的命令构建的。如有不同,请根据实际情况修改。
|
||||
:::
|
||||
|
||||
1. 停止并删除当前运行中的容器
|
||||
|
||||
```bash
|
||||
docker stop halo
|
||||
```
|
||||
|
||||
```bash
|
||||
docker rm -f halo
|
||||
```
|
||||
|
||||
:::info
|
||||
你的容器名称不一定为 `halo`,在执行前可以先执行 `docker ps -a` 查看一下。
|
||||
:::
|
||||
|
||||
2. 备份数据(重要)
|
||||
|
||||
```bash
|
||||
cp -r ~/.halo ~/.halo.archive
|
||||
```
|
||||
|
||||
> 需要注意的是,`.halo.archive` 文件名不一定要根据此文档命名,这里仅仅是个示例。
|
||||
|
||||
3. 清空 [leveldb](./config.md#缓存) 缓存(如果有使用 leveldb 作为缓存策略)
|
||||
|
||||
```bash
|
||||
rm -rf ~/.halo/.leveldb
|
||||
```
|
||||
|
||||
4. 拉取最新的 Halo 镜像
|
||||
|
||||
```bash
|
||||
docker pull halohub/halo:1.5.4
|
||||
```
|
||||
|
||||
:::info
|
||||
查看最新版本镜像:<https://hub.docker.com/r/halohub/halo> ,我们推荐使用具体版本号的镜像,但也提供了 `latest` 标签的镜像,它始终是最新的。
|
||||
:::
|
||||
|
||||
5. 创建容器
|
||||
|
||||
```bash
|
||||
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.5.4
|
||||
```
|
||||
|
||||
- **-it:** 开启输入功能并连接伪终端
|
||||
- **-d:** 后台运行容器
|
||||
- **--name:** 为容器指定一个名称
|
||||
- **-p:** 端口映射,格式为 `主机(宿主)端口:容器端口` ,可在 `application.yaml` 配置。
|
||||
- **-v:** 工作目录映射。形式为:-v 宿主机路径:/root/.halo,后者不能修改。
|
||||
- **--restart:** 建议设置为 `unless-stopped`,在 Docker 启动的时候自动启动 Halo 容器。
|
@@ -23,7 +23,7 @@ slug: /
|
||||
<a href="https://github.com/halo-dev/halo/actions"><img alt="GitHub Workflow Status" src="https://img.shields.io/github/workflow/status/halo-dev/halo/Halo%20CI?style=flat-square" /></a>
|
||||
<br />
|
||||
<a href="https://halo.run">官网</a>
|
||||
<a href="https://docs.halo.run/2.0.0-SNAPSHOT">文档(2.0 RC)</a>
|
||||
<a href="https://docs.halo.run">文档</a>
|
||||
<a href="https://bbs.halo.run">社区</a>
|
||||
<a href="https://gitee.com/halo-dev">Gitee</a>
|
||||
<a href="https://t.me/halo_dev">Telegram 频道</a>
|
||||
@@ -31,23 +31,13 @@ slug: /
|
||||
|
||||
------------------------------
|
||||
|
||||
## 注意
|
||||
|
||||
当前分支为 Halo 2.0 的开发分支,目前 Halo 2.0 处于 RC 阶段,暂时无法从 1.5 直接升级,不建议在生产环境使用。稳定版本(Halo 1.x)请查阅以下地址:
|
||||
|
||||
- 1.5 分支:<https://github.com/halo-dev/halo/tree/release-1.5>
|
||||
- 1.6 分支:<https://github.com/halo-dev/halo/tree/release-1.6>
|
||||
- 1.6 文档:<https://docs.halo.run>
|
||||
|
||||
## 快速开始
|
||||
|
||||
### Docker
|
||||
|
||||
```bash
|
||||
docker run -it -d --name halo-next -p 8090:8090 -v ~/.halo2:/root/.halo2 --restart=unless-stopped halohub/halo-dev:2.0.0-rc.1
|
||||
docker run -it -d --name halo-next -p 8090:8090 -v ~/.halo2:/root/.halo2 --restart=unless-stopped halohub/halo:2.0.0
|
||||
```
|
||||
|
||||
详细部署文档请查阅:<https://docs.halo.run/2.0.0-SNAPSHOT/getting-started/install/docker>
|
||||
详细部署文档请查阅:<https://docs.halo.run/getting-started/install/docker-compose>
|
||||
|
||||
## 在线体验
|
||||
|
||||
@@ -58,7 +48,8 @@ docker run -it -d --name halo-next -p 8090:8090 -v ~/.halo2:/root/.halo2 --resta
|
||||
|
||||
## 生态
|
||||
|
||||
可访问 [awesome-halo](https://github.com/halo-sigs/awesome-halo) 查看已经适用于 Halo 2.0 的主题和插件,以及适用于 Halo 1.x 的相关仓库。
|
||||
可访问 [awesome-halo](https://github.com/halo-sigs/awesome-halo) 查看已经适用于 Halo 2.0 的主题和插件,以及适用于 Halo
|
||||
1.x 的相关仓库。
|
||||
|
||||
## 许可证
|
||||
|
||||
|
@@ -32,9 +32,14 @@ module.exports = {
|
||||
type: "generated-index",
|
||||
},
|
||||
items: [
|
||||
// "getting-started/install/linux",
|
||||
"getting-started/install/docker",
|
||||
"getting-started/install/docker-compose",
|
||||
"getting-started/install/docker",
|
||||
{
|
||||
type: "category",
|
||||
label: "其他指南",
|
||||
items: ["getting-started/install/other/oneinstack"],
|
||||
},
|
||||
"getting-started/install/third-party",
|
||||
],
|
||||
},
|
||||
"getting-started/migrate-from-1.x",
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 8.6 KiB |
Binary file not shown.
Before Width: | Height: | Size: 8.5 KiB |
Reference in New Issue
Block a user