# Halo 博客迁移说明书

## 环境要求

- Docker + Docker Compose
- Nginx（可选，用于反向代理和 HTTPS）
- 内存：建议 512MB+ 可用（当前实例占用约 270M）

## 包含文件

```
halo-migration/
  halo-data/          # Halo 数据目录（附件、数据库、主题、插件等）
  docker-compose.yml  # Docker 部署文件
  halo-nginx.conf     # Nginx 反向代理配置（可选）
```

## 部署步骤

### 1. 解压并进入目录

```bash
tar -xzf halo-migration.tar.gz
cd halo-migration
```

### 2. 修改配置（如需）

- 编辑 `halo-nginx.conf`，将 `server_name wanyue.online` 改为你自己的域名
- 如果不需要 HTTPS，可跳过 nginx 配置，直接访问 `http://你的IP:8090`

### 3. 启动 Halo

```bash
docker compose up -d
```

检查状态：

```bash
docker compose ps
docker compose logs -f
```

### 4. 配置 Nginx（可选）

```bash
cp halo-nginx.conf /etc/nginx/sites-available/halo
# 修改 server_name 为你的域名
ln -s /etc/nginx/sites-available/halo /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
```

### 5. 申请 SSL 证书（可选）

```bash
certbot --nginx -d 你的域名
```

## 访问

- 通过 Nginx：`https://你的域名`
- 直连：`http://服务器IP:8090`

后台管理：`https://你的域名/admin` 或 `http://服务器IP:8090/admin`

## 数据备份与恢复说明

- 所有数据（文章、附件、主题、插件、设置）都在 `halo-data/` 目录中
- 容器内映射路径：`./halo-data` → `/root/.halo2`
- 备份只需打包 `halo-data/` 目录即可

## 镜像版本

- halohub/halo:2.24.0
- JVM: OpenJDK 21 (OpenJ9)

## 注意事项

- 默认端口 8090，与 Nginx 反向代理配合使用
- 数据库使用 H2（内嵌，数据文件在 halo-data/db/ 中）
- 附件存储在 halo-data/attachments/ 中
- 如果迁移后登录不了，可能需要重置密码，参考 Halo 官方文档
