diff --git a/docs/developer-guide/core/run.md b/docs/developer-guide/core/run.md index ee425d3..540761e 100644 --- a/docs/developer-guide/core/run.md +++ b/docs/developer-guide/core/run.md @@ -103,10 +103,3 @@ VITE v3.1.6 ready in 638 ms ``` 6. 最终访问 `http://localhost:8090/console` 即可进入控制台。访问 `http://localhost:8090` 即可进入站点首页。 - -:::info 注意 -目前 RC 版本有以下几个使用注意事项: -::: - -1. 由于目前评论组件被插件化且暂不支持提供默认插件,所以如果要体验完整的评论功能,需要手动在后台安装 评论组件插件。 -2. 目前 2.0 已支持的主题和插件会同步到 ,你可以在对应仓库的 release 下载最新的主题或插件。 diff --git a/docs/getting-started/install/docker-compose.md b/docs/getting-started/install/docker-compose.md index c84b767..813245e 100644 --- a/docs/getting-started/install/docker-compose.md +++ b/docs/getting-started/install/docker-compose.md @@ -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,74 @@ 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 + 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: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/ # 初始化的超级管理员用户名 - HALO_SECURITY_INITIALIZER_SUPERADMINUSERNAME=admin # 初始化的超级管理员密码 - HALO_SECURITY_INITIALIZER_SUPERADMINPASSWORD=P@88w0rd + + halodb: + image: postgres:latest + container_name: halodb + restart: on-failure:3 + networks: + halo_network: + volumes: + - ./db:/var/lib/postgresql/data + ports: + - "5432:5432" + healthcheck: + test: [ "CMD", "pg_isready" ] + interval: 10s + timeout: 5s + retries: 5 + environment: + - POSTGRES_PASSWORD=openpostgresql + - POSTGRES_USER=halo + - POSTGRES_DB=halo + + networks: + halo_network: ``` - 2. 创建 Halo + PostgreSQL 的实例: + 2. 创建 Halo + MySQL 的实例: - ```yaml {18-28,46} + ```yaml 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,11 +112,11 @@ description: 使用 Docker Compose 部署 ports: - "8090:8090" environment: - - SPRING_R2DBC_URL=r2dbc:pool:postgresql://halo_db/halo - - SPRING_R2DBC_USERNAME=halo - # PostgreSQL 的密码,请保证与下方 POSTGRES_PASSWORD 的变量值一致。 - - SPRING_R2DBC_PASSWORD=openpostgresql - - SPRING_SQL_INIT_PLATFORM=postgresql + - 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/ # 初始化的超级管理员用户名 @@ -91,48 +124,110 @@ description: 使用 Docker Compose 部署 # 初始化的超级管理员密码 - HALO_SECURITY_INITIALIZER_SUPERADMINPASSWORD=P@88w0rd - halo_db: - image: postgres:latest - container_name: halo_db + 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: - - ./db:/var/lib/postgresql/data + - ./mysql:/var/lib/mysql + - ./mysqlBackup:/data/mysqlBackup ports: - - "5432:5432" + - "3306:3306" healthcheck: - test: [ "CMD", "pg_isready" ] - interval: 10s - timeout: 5s + test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "--silent"] + interval: 3s retries: 5 + start_period: 30s environment: - - POSTGRES_PASSWORD=openpostgresql - - POSTGRES_USER=halo - - POSTGRES_DB=halo + # 请修改此密码,并对应修改上方 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 面板是否有还有安全组配置,需要同样将端口号添加到安全组。 ::: -## 使用 +## 更新容器组 + +1. 停止运行中的容器组 + + ```bash + cd ~/halo && docker-compose down + ``` + +2. 备份数据(重要) + + ```bash + cp -r ~/halo ~/halo.archive + ``` + + > 需要注意的是,`halo.archive` 文件名不一定要根据此文档命名,这里仅仅是个示例。 -目前 RC 版本有以下几个使用注意事项: +3. 更新 Halo 服务 + + 修改 `docker-compose.yaml` 中配置的镜像版本。 -1. 由于目前评论组件被插件化且暂不支持提供默认插件,所以如果要体验完整的评论功能,需要手动在后台安装 评论组件插件。 -2. 目前 2.0 已支持的主题和插件会同步到 ,你可以在对应仓库的 release 下载最新的主题或插件。 + ```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 - -```txt -https://www.yourdomain.com { - gzip - tls your@email.com - proxy / localhost:8090 { - transparent - } -} -``` - -### Caddy 2.x +### Caddy 2 -```txt +```txt {1,5} www.yourdomain.com encode gzip reverse_proxy 127.0.0.1:8090 ``` - -以上配置都可以在 找到。 - -## 更新容器组 - -:::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 - ``` diff --git a/docs/getting-started/install/docker.md b/docs/getting-started/install/docker.md index 5fde393..c338271 100644 --- a/docs/getting-started/install/docker.md +++ b/docs/getting-started/install/docker.md @@ -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. 由于目前评论组件被插件化且暂不支持提供默认插件,所以如果要体验完整的评论功能,需要手动在后台安装 评论组件插件。 -2. 目前 2.0 已支持的主题和插件会同步到 ,你可以在对应仓库的 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 -``` - -以上配置都可以在 找到。 diff --git a/docs/getting-started/install/linux.md b/docs/getting-started/install/linux.md deleted file mode 100644 index 0f2db9b..0000000 --- a/docs/getting-started/install/linux.md +++ /dev/null @@ -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 连接之后,服务会停止。你可使用 CTRL+C 停止运行测试进程。 - ::: - - :::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 -``` - -以上配置都可以在 找到。 diff --git a/docs/getting-started/install/other/bt-panel.md b/docs/getting-started/install/other/bt-panel.md deleted file mode 100644 index a403fda..0000000 --- a/docs/getting-started/install/other/bt-panel.md +++ /dev/null @@ -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 的初始化。 diff --git a/docs/getting-started/install/other/docker-mysql.md b/docs/getting-started/install/other/docker-mysql.md deleted file mode 100644 index 606da69..0000000 --- a/docs/getting-started/install/other/docker-mysql.md +++ /dev/null @@ -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 -``` diff --git a/docs/getting-started/install/other/oneinstack.md b/docs/getting-started/install/other/oneinstack.md index df3a688..c2bfb93 100644 --- a/docs/getting-started/install/other/oneinstack.md +++ b/docs/getting-started/install/other/oneinstack.md @@ -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 服务运行无误即可。 @@ -45,73 +45,73 @@ Nginx install dir: /usr/local/nginx 1. 进入到 oneinstack 目录,执行 vhost 创建命令 -```bash -cd oneinstack -``` + ```bash + cd oneinstack + ``` -```bash -sh vhost.sh -``` + ```bash + sh vhost.sh + ``` 2. 按照提示选择或输入相关信息 -```bash -What Are You Doing? - 1. Use HTTP Only - 2. Use your own SSL Certificate and Key - 3. Use Let's Encrypt to Create SSL Certificate and Key - q. Exit -Please input the correct option: -``` + ```bash + What Are You Doing? + 1. Use HTTP Only + 2. Use your own SSL Certificate and Key + 3. Use Let's Encrypt to Create SSL Certificate and Key + q. Exit + Please input the correct option: + ``` -这一步是选择证书配置方式,如果你有自己的证书,输入 2 即可。如果需要使用 `Let's Encrypt` 申请证书,选择 3 即可。 + 这一步是选择证书配置方式,如果你有自己的证书,输入 2 即可。如果需要使用 `Let's Encrypt` 申请证书,选择 3 即可。 -```bash -Please input domain(example: www.example.com): -``` + ```bash + Please input domain(example: www.example.com): + ``` -输入自己的域名即可,前提是已经提前解析好了域名。 + 输入自己的域名即可,前提是已经提前解析好了域名。 -```bash -Please input the directory for the domain:demo.halo.run : -(Default directory: /data/wwwroot/demo.halo.run): -``` + ```bash + Please input the directory for the domain:demo.halo.run : + (Default directory: /data/wwwroot/demo.halo.run): + ``` -提示输入站点根目录,因为我们是使用 Nginx 的反向代理,所以这个目录是没有必要配置的,我们直接使用默认的即可(直接回车)。 + 提示输入站点根目录,因为我们是使用 Nginx 的反向代理,所以这个目录是没有必要配置的,我们直接使用默认的即可(直接回车)。 -```bash -Do you want to add more domain name? [y/n]: -``` + ```bash + Do you want to add more domain name? [y/n]: + ``` -是否需要添加其他域名,按照需要选择即可,如果不需要,输入 n 并回车确认。 + 是否需要添加其他域名,按照需要选择即可,如果不需要,输入 n 并回车确认。 -```bash -Do you want to add hotlink protection? [y/n]: -``` + ```bash + Do you want to add hotlink protection? [y/n]: + ``` -是否需要做防盗链处理,按照需要选择即可。 + 是否需要做防盗链处理,按照需要选择即可。 -```bash -Allow Rewrite rule? [y/n]: -``` + ```bash + Allow Rewrite rule? [y/n]: + ``` -路径重写配置,我们不需要,选择 n 回车确定即可。 + 路径重写配置,我们不需要,选择 n 回车确定即可。 -```bash -Allow Nginx/Tengine/OpenResty access_log? [y/n]: -``` + ```bash + Allow Nginx/Tengine/OpenResty access_log? [y/n]: + ``` -Nginx 的请求日志,建议选择 y。 + Nginx 的请求日志,建议选择 y。 -这样就完成了 vhost 站点的创建,最终会输出站点的相关信息: + 这样就完成了 vhost 站点的创建,最终会输出站点的相关信息: -```bash -Your domain: demo.halo.run -Virtualhost conf: /usr/local/nginx/conf/vhost/demo.halo.run.conf -Directory of: /data/wwwroot/demo.halo.run -``` + ```bash + Your domain: demo.halo.run + Virtualhost conf: /usr/local/nginx/conf/vhost/demo.halo.run.conf + Directory of: /data/wwwroot/demo.halo.run + ``` -Nginx 的配置文件即 `/usr/local/nginx/conf/vhost/demo.halo.run.conf`。 + Nginx 的配置文件即 `/usr/local/nginx/conf/vhost/demo.halo.run.conf`。 ## 修改 Nginx 配置文件 @@ -119,136 +119,136 @@ Nginx 的配置文件即 `/usr/local/nginx/conf/vhost/demo.halo.run.conf`。 1. 使用你熟悉的工具打开配置文件,此教程使用 vim。 -```bash -vim /usr/local/nginx/conf/vhost/demo.halo.run.conf -``` + ```bash + vim /usr/local/nginx/conf/vhost/demo.halo.run.conf + ``` 2. 删除一些不必要的配置 -```nginx -location ~ [^/]\.php(/|$) { - #fastcgi_pass remote_php_ip:9000; - fastcgi_pass unix:/dev/shm/php-cgi.sock; - fastcgi_index index.php; - include fastcgi.conf; -} -``` + ```nginx + location ~ [^/]\.php(/|$) { + #fastcgi_pass remote_php_ip:9000; + fastcgi_pass unix:/dev/shm/php-cgi.sock; + fastcgi_index index.php; + include fastcgi.conf; + } + ``` -此段配置是针对 php 应用的,所以可以删掉。 + 此段配置是针对 php 应用的,所以可以删掉。 3. 添加 `upstream` 配置 -在 `server` 的同级节点添加如下配置: + 在 `server` 的同级节点添加如下配置: -```nginx -upstream halo { - server 127.0.0.1:8090; -} -``` + ```nginx {2} + upstream halo { + server 127.0.0.1:8090; + } + ``` 4. 在 `server` 节点添加如下配置 -```nginx -location / { - 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; - proxy_pass http://halo; -} -``` + ```nginx {6} + location / { + 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; + proxy_pass http://halo; + } + ``` 5. 修改 `location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$` 节点 -```nginx -location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ { - proxy_pass http://halo; - expires 30d; - access_log off; -} -``` - -6. 修改 `location ~ .*\.(js|css)?$` 节点 - -```nginx -location ~ .*\.(js|css)?$ { - proxy_pass http://halo; - expires 7d; - access_log off; -} -``` - -如果不按照第 5,6 步操作,请求一些图片或者样式文件不会经过 Halo,所以请不要忽略此配置。 - -7. 添加 acme.sh 续签验证路由 - -OneinStack 使用的 acme.sh 管理证书,如果你在创建 vhost 的时候选择了使用 `Let's Encrypt` 申请证书,那么 OneinStack 会在系统内添加一个定时任务去自动续签证书,acme.sh 默认验证站点所有权的方式为在站点根目录生成一个文件(.well-known)来做验证,由于配置了反向代理,所以在验证的时候是无法直接访问到站点目录下的 .well-known 文件夹下的验证文件的。需要添加如下配置: - -```nginx -location ^~ /.well-known/acme-challenge/ { - default_type "text/plain"; - allow all; - root /data/wwwroot/demo.halo.run/; -} -``` - -至此,配置修改完毕,保存即可。最终你的配置文件可能如下面配置一样: - -```nginx -upstream halo { - server 127.0.0.1:8090; -} -server { - listen 80; - listen [::]:80; - listen 443 ssl http2; - listen [::]:443 ssl http2; - ssl_certificate /usr/local/nginx/conf/ssl/demo.halo.run.crt; - ssl_certificate_key /usr/local/nginx/conf/ssl/demo.halo.run.key; - ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; - ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; - ssl_prefer_server_ciphers on; - ssl_session_timeout 10m; - ssl_session_cache builtin:1000 shared:SSL:10m; - ssl_buffer_size 1400; - add_header Strict-Transport-Security max-age=15768000; - ssl_stapling on; - ssl_stapling_verify on; - server_name demo.halo.run; - access_log /data/wwwlogs/demo.halo.run_nginx.log combined; - index index.html index.htm index.php; - root /data/wwwroot/demo.halo.run; - if ($ssl_protocol = "") { return 301 https://$host$request_uri; } - include /usr/local/nginx/conf/rewrite/none.conf; - #error_page 404 /404.html; - #error_page 502 /502.html; + ```nginx {2} location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ { proxy_pass http://halo; expires 30d; access_log off; } + ``` + +6. 修改 `location ~ .*\.(js|css)?$` 节点 + + ```nginx {2} location ~ .*\.(js|css)?$ { proxy_pass http://halo; expires 7d; access_log off; } - location ~ /(\.user\.ini|\.ht|\.git|\.svn|\.project|LICENSE|README\.md) { - deny all; - } - location / { - 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; - proxy_pass http://halo; - } + ``` + + 如果不按照第 5,6 步操作,请求一些图片或者样式文件不会经过 Halo,所以请不要忽略此配置。 + +7. 添加 acme.sh 续签验证路由 + + OneinStack 使用的 acme.sh 管理证书,如果你在创建 vhost 的时候选择了使用 `Let's Encrypt` 申请证书,那么 OneinStack 会在系统内添加一个定时任务去自动续签证书,acme.sh 默认验证站点所有权的方式为在站点根目录生成一个文件(.well-known)来做验证,由于配置了反向代理,所以在验证的时候是无法直接访问到站点目录下的 .well-known 文件夹下的验证文件的。需要添加如下配置: + + ```nginx {4} location ^~ /.well-known/acme-challenge/ { default_type "text/plain"; allow all; root /data/wwwroot/demo.halo.run/; } -} -``` + ``` + + 至此,配置修改完毕,保存即可。最终你的配置文件可能如下面配置一样: + + ```nginx {2,20,29,34,41-47,51} + upstream halo { + server 127.0.0.1:8090; + } + server { + listen 80; + listen [::]:80; + listen 443 ssl http2; + listen [::]:443 ssl http2; + ssl_certificate /usr/local/nginx/conf/ssl/demo.halo.run.crt; + ssl_certificate_key /usr/local/nginx/conf/ssl/demo.halo.run.key; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; + ssl_ciphers TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; + ssl_prefer_server_ciphers on; + ssl_session_timeout 10m; + ssl_session_cache builtin:1000 shared:SSL:10m; + ssl_buffer_size 1400; + add_header Strict-Transport-Security max-age=15768000; + ssl_stapling on; + ssl_stapling_verify on; + server_name demo.halo.run; + access_log /data/wwwlogs/demo.halo.run_nginx.log combined; + index index.html index.htm index.php; + root /data/wwwroot/demo.halo.run; + if ($ssl_protocol = "") { return 301 https://$host$request_uri; } + include /usr/local/nginx/conf/rewrite/none.conf; + #error_page 404 /404.html; + #error_page 502 /502.html; + location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ { + proxy_pass http://halo; + expires 30d; + access_log off; + } + location ~ .*\.(js|css)?$ { + proxy_pass http://halo; + expires 7d; + access_log off; + } + location ~ /(\.user\.ini|\.ht|\.git|\.svn|\.project|LICENSE|README\.md) { + deny all; + } + location / { + 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; + proxy_pass http://halo; + } + location ^~ /.well-known/acme-challenge/ { + default_type "text/plain"; + allow all; + root /data/wwwroot/demo.halo.run/; + } + } + ``` ## 重载 Nginx 使配置生效 diff --git a/docs/getting-started/install/other/tencent-cloudbase.md b/docs/getting-started/install/other/tencent-cloudbase.md deleted file mode 100644 index 681f4b2..0000000 --- a/docs/getting-started/install/other/tencent-cloudbase.md +++ /dev/null @@ -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. 费用相关请参考 - -## 进入云开发页面 - -点击下方按钮即可进入到腾讯云云开发 CloudBase 创建应用界面,此按钮可在云开发页面自动选择 Halo 的配置模板。 - -### GitHub - -[![CloudBase](https://main.qcloudimg.com/raw/67f5a389f1ac6f3b4d04c7256438e44f.svg)](https://console.cloud.tencent.com/tcb/env/index?action=CreateAndDeployCloudBaseProject&appUrl=https%3A%2F%2Fgithub.com%2Fhalo-dev%2Ftencent-cloudbase-halo&branch=master) - -### Gitee - -[![CloudBase](https://main.qcloudimg.com/raw/67f5a389f1ac6f3b4d04c7256438e44f.svg)](https://console.cloud.tencent.com/tcb/env/index?action=CreateAndDeployCloudBaseProject&appUrl=https%3A%2F%2Fgitee.com%2Fhalo-dev%2Ftencent-cloudbase-halo&branch=master) - -## 配置并部署 - -**填写环境名称**,这里建议把 `开启免费额度` 打开,然后点击下一步。 - -![tencent-cloudbase-1.png](/img/tencent-cloudbase/tencent-cloudbase-1.png) - -**应用配置**,需要注意:这里需要开通 CFS,用于存储 Halo 的工作目录。 - -![tencent-cloudbase-2.png](/img/tencent-cloudbase/tencent-cloudbase-2.png) - -**提交授权**,点击 `授权并开通`。 - -![tencent-cloudbase-3.png](/img/tencent-cloudbase/tencent-cloudbase-3.png) - -**创建环境中**,完成之后,点击 `环境` 下面的卡片,即可进入详细配置页面。 - -![tencent-cloudbase-4.png](/img/tencent-cloudbase/tencent-cloudbase-4.png) - -**构建应用中**,这里可能会等待较长时间。 - -![tencent-cloudbase-5.png](/img/tencent-cloudbase/tencent-cloudbase-5.png) - -**构建应用完成**,需要注意的是,构建完成之后可能还需要等待一小段时间才能正常访问,这个期间是在等待 Halo 应用启动完毕。点击 `访问` 按钮即可进入 Halo 初始化页面。 - -![tencent-cloudbase-6.png](/img/tencent-cloudbase/tencent-cloudbase-6.png) - -**Halo 初始化页面**: - -![tencent-cloudbase-7.png](/img/tencent-cloudbase/tencent-cloudbase-7.png) - -**CFS 管理页面**:[https://console.cloud.tencent.com/cfs/fs](https://console.cloud.tencent.com/cfs/fs) - -![tencent-cloudbase-8.png](/img/tencent-cloudbase/tencent-cloudbase-8.png) - -## 更新 Halo - -> 当 Halo 有新版本更新的时候,你可以采用下面的方式进行版本升级。 - -### 删除旧版本 - -前往 [云托管](https://console.cloud.tencent.com/tcb/service) 页面,点击服务名称进入版本列表,然后删除当前使用的版本。 - -![tencent-cloudbase-10.png](/img/tencent-cloudbase/tencent-cloudbase-10.png) - -### 重新部署 - -回到 [我的应用](https://console.cloud.tencent.com/tcb/apps/index) 页面,点击 `部署` 按钮并确定。 - -![tencent-cloudbase-11.png](/img/tencent-cloudbase/tencent-cloudbase-11.png) - -## 相关链接 - -- [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) diff --git a/docs/getting-started/install/third-party.md b/docs/getting-started/install/third-party.md index 1a3f65c..a7f1a96 100644 --- a/docs/getting-started/install/third-party.md +++ b/docs/getting-started/install/third-party.md @@ -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) diff --git a/docs/getting-started/install/windows.md b/docs/getting-started/install/windows.md deleted file mode 100644 index 72cab80..0000000 --- a/docs/getting-started/install/windows.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: 在 Windows 服务器上部署 ---- - -:::info -在继续操作之前,我们推荐您先阅读[《写在前面》](/getting-started/prepare),这可以快速帮助你了解 Halo。 -::: - -## 系统要求 - -目前运行 Halo 的最低依赖要求为 JRE 11,而 Java9 之后将不再提供 32 位系统的环境,因此请确保您的服务器属于 64 位 CPU。 - -## 依赖检查 - -如下将介绍在 Windows 下安装 OpenJRE 11 的方式。如果您的服务器已经安装过 OpenJRE 11,则可以直接跳过本节。 - -1. 使用浏览器前往 下载 OpenJRE 11 的可执行程序。 - -2. 下载时会提示登录“红帽”,任意注册账号登录即可。登录完成之后会自动下载 JRE。 - -3. 双击 MSI 安装程序,安装 JRE 至服务器,注意到安装程序第三步时,勾选 `JAVA_HOME Variable`,其余直接 `next` 即可 - -![img2.png](/img/img2.png) - -4. 安装完成之后, 使用 Win+R 打开运行窗口并输入 `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) -``` - -![1615618595.jpg](/img/1615618595.jpg) - -## 安装 Halo - -1. 下载运行包 - -使用浏览器前往 下载最新版本 Halo 运行包,**并保存至桌面**。修改 Jar 包名称为 `halo.jar` - -:::info -如果下载速度不理想,可以[在这里](/getting-started/downloads)选择其他下载地址。 -::: - -2. 下载示例配置文件 - -使用浏览器前往 下载示例配置文件,**并保存至桌面**。修改示例配置文件名字为 `application.yaml`。 - -:::tip -IE 浏览器下,配置文件可能会以文本的形式直接打开,因此推荐使用其他浏览器或下载器下载。 -::: - -3. 使用记事本编辑配置文件,配置数据库或者端口等,如需配置请参考[参考配置](/getting-started/config) - -4. 测试运行 Halo - -使用 Win+R 打开运行窗口并输入 `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 窗口之后,服务会停止。你可使用 CTRL+C 停止运行测试进程。 -::: - -:::tip -如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 `http://ip:端口号` 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。 -::: diff --git a/docs/getting-started/upgrade.md b/docs/getting-started/upgrade.md deleted file mode 100644 index 618d0c4..0000000 --- a/docs/getting-started/upgrade.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: 版本升级 -description: 版本升级指南 ---- - -当前最新版本为:1.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 - 如测试启动正常,请继续下一步。使用 CTRL+C 停止运行测试进程。 - ::: - -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 - 查看最新版本镜像: ,我们推荐使用具体版本号的镜像,但也提供了 `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 容器。 diff --git a/docs/intro.md b/docs/intro.md index 19f1d8a..7b6faef 100644 --- a/docs/intro.md +++ b/docs/intro.md @@ -23,7 +23,7 @@ slug: / GitHub Workflow Status
官网 -文档(2.0 RC) +文档 社区 Gitee Telegram 频道 @@ -31,23 +31,13 @@ slug: / ------------------------------ -## 注意 - -当前分支为 Halo 2.0 的开发分支,目前 Halo 2.0 处于 RC 阶段,暂时无法从 1.5 直接升级,不建议在生产环境使用。稳定版本(Halo 1.x)请查阅以下地址: - -- 1.5 分支: -- 1.6 分支: -- 1.6 文档: - ## 快速开始 -### 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 ``` -详细部署文档请查阅: +详细部署文档请查阅: ## 在线体验 @@ -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 的相关仓库。 ## 许可证 diff --git a/sidebars.js b/sidebars.js index a77de2a..9e4b75c 100644 --- a/sidebars.js +++ b/sidebars.js @@ -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", diff --git a/static/img/ali-pay.png b/static/img/ali-pay.png deleted file mode 100644 index 170abff..0000000 Binary files a/static/img/ali-pay.png and /dev/null differ diff --git a/static/img/wechat-pay.png b/static/img/wechat-pay.png deleted file mode 100644 index 735cfb4..0000000 Binary files a/static/img/wechat-pay.png and /dev/null differ