feat: add more
This commit is contained in:
76
src/halo/README.md
Normal file
76
src/halo/README.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# Halo
|
||||
|
||||
[English](./README.md) | [中文](./README.zh.md)
|
||||
|
||||
This service deploys Halo, a powerful and easy-to-use open-source blogging and content management system.
|
||||
|
||||
## Services
|
||||
|
||||
- `halo`: The main Halo application server.
|
||||
- `halo-db`: PostgreSQL database for Halo.
|
||||
|
||||
## Environment Variables
|
||||
|
||||
| Variable Name | Description | Default Value |
|
||||
| ------------------------ | -------------------------------------------------------------- | ----------------------- |
|
||||
| HALO_VERSION | Halo image version | `2.21.9` |
|
||||
| HALO_PORT | Host port mapping for Halo web interface | `8090` |
|
||||
| POSTGRES_VERSION | PostgreSQL image version | `17.2-alpine3.21` |
|
||||
| POSTGRES_USER | PostgreSQL username | `postgres` |
|
||||
| POSTGRES_PASSWORD | PostgreSQL password (required) | `postgres` |
|
||||
| POSTGRES_DB | PostgreSQL database name | `halo` |
|
||||
| SPRING_R2DBC_URL | R2DBC connection URL | (auto-configured) |
|
||||
| SPRING_SQL_INIT_PLATFORM | SQL platform type | `postgresql` |
|
||||
| HALO_EXTERNAL_URL | External URL for Halo | `http://localhost:8090` |
|
||||
| HALO_ADMIN_USERNAME | Initial admin username | `admin` |
|
||||
| HALO_ADMIN_PASSWORD | Initial admin password (leave empty to set during first login) | `""` |
|
||||
|
||||
Please create a `.env` file and modify it as needed for your use case.
|
||||
|
||||
## Volumes
|
||||
|
||||
- `halo_data`: A volume for storing Halo application data.
|
||||
- `halo_db_data`: A volume for storing PostgreSQL data.
|
||||
|
||||
## Getting Started
|
||||
|
||||
1. (Optional) Create a `.env` file to customize settings:
|
||||
|
||||
```env
|
||||
POSTGRES_PASSWORD=your-secure-password
|
||||
HALO_EXTERNAL_URL=https://yourdomain.com
|
||||
```
|
||||
|
||||
2. Start the services:
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
3. Access Halo at `http://localhost:8090`
|
||||
|
||||
4. Follow the setup wizard to create your admin account (if `HALO_ADMIN_PASSWORD` is not set)
|
||||
|
||||
## Initial Setup
|
||||
|
||||
On first access, you'll be guided through the initial setup:
|
||||
|
||||
- Set your admin account credentials (if not configured via environment)
|
||||
- Configure site information
|
||||
- Choose and install a theme from the marketplace
|
||||
|
||||
## Documentation
|
||||
|
||||
For more information, visit the [official Halo documentation](https://docs.halo.run).
|
||||
|
||||
## Theme and Plugin Marketplace
|
||||
|
||||
Visit the [Halo Application Store](https://www.halo.run/store/apps) to browse themes and plugins.
|
||||
|
||||
## Security Notes
|
||||
|
||||
- Change default database password in production
|
||||
- Use HTTPS in production environments
|
||||
- Set a strong admin password
|
||||
- Regularly backup both data volumes
|
||||
- Keep Halo and PostgreSQL updated to the latest stable versions
|
||||
76
src/halo/README.zh.md
Normal file
76
src/halo/README.zh.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# Halo
|
||||
|
||||
[English](./README.md) | [中文](./README.zh.md)
|
||||
|
||||
此服务部署 Halo,一个强大易用的开源博客和内容管理系统。
|
||||
|
||||
## 服务
|
||||
|
||||
- `halo`: Halo 主应用服务器。
|
||||
- `halo-db`: Halo 的 PostgreSQL 数据库。
|
||||
|
||||
## 环境变量
|
||||
|
||||
| 变量名 | 描述 | 默认值 |
|
||||
| ------------------------ | -------------------------------------- | ----------------------- |
|
||||
| HALO_VERSION | Halo 镜像版本 | `2.21.9` |
|
||||
| HALO_PORT | Halo Web 界面的主机端口映射 | `8090` |
|
||||
| POSTGRES_VERSION | PostgreSQL 镜像版本 | `17.2-alpine3.21` |
|
||||
| POSTGRES_USER | PostgreSQL 用户名 | `postgres` |
|
||||
| POSTGRES_PASSWORD | PostgreSQL 密码(必需) | `postgres` |
|
||||
| POSTGRES_DB | PostgreSQL 数据库名 | `halo` |
|
||||
| SPRING_R2DBC_URL | R2DBC 连接 URL | (自动配置) |
|
||||
| SPRING_SQL_INIT_PLATFORM | SQL 平台类型 | `postgresql` |
|
||||
| HALO_EXTERNAL_URL | Halo 的外部 URL | `http://localhost:8090` |
|
||||
| HALO_ADMIN_USERNAME | 初始管理员用户名 | `admin` |
|
||||
| HALO_ADMIN_PASSWORD | 初始管理员密码(留空则在首次登录时设置) | `""` |
|
||||
|
||||
请创建 `.env` 文件并根据需要进行修改。
|
||||
|
||||
## 数据卷
|
||||
|
||||
- `halo_data`: 用于存储 Halo 应用数据的卷。
|
||||
- `halo_db_data`: 用于存储 PostgreSQL 数据的卷。
|
||||
|
||||
## 快速开始
|
||||
|
||||
1. (可选)创建 `.env` 文件以自定义设置:
|
||||
|
||||
```env
|
||||
POSTGRES_PASSWORD=your-secure-password
|
||||
HALO_EXTERNAL_URL=https://yourdomain.com
|
||||
```
|
||||
|
||||
2. 启动服务:
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
3. 访问 `http://localhost:8090`
|
||||
|
||||
4. 按照设置向导创建管理员账户(如果未通过 `HALO_ADMIN_PASSWORD` 配置)
|
||||
|
||||
## 初始设置
|
||||
|
||||
首次访问时,您将看到初始设置向导:
|
||||
|
||||
- 设置管理员账户凭据(如果未通过环境变量配置)
|
||||
- 配置站点信息
|
||||
- 从应用市场选择并安装主题
|
||||
|
||||
## 文档
|
||||
|
||||
更多信息请访问 [Halo 官方文档](https://docs.halo.run)。
|
||||
|
||||
## 主题和插件市场
|
||||
|
||||
访问 [Halo 应用市场](https://www.halo.run/store/apps) 浏览主题和插件。
|
||||
|
||||
## 安全提示
|
||||
|
||||
- 在生产环境中更改默认数据库密码
|
||||
- 在生产环境中使用 HTTPS
|
||||
- 设置强管理员密码
|
||||
- 定期备份两个数据卷
|
||||
- 保持 Halo 和 PostgreSQL 更新到最新稳定版本
|
||||
68
src/halo/docker-compose.yaml
Normal file
68
src/halo/docker-compose.yaml
Normal file
@@ -0,0 +1,68 @@
|
||||
x-default: &default
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- &localtime /etc/localtime:/etc/localtime:ro
|
||||
- &timezone /etc/timezone:/etc/timezone:ro
|
||||
logging:
|
||||
driver: json-file
|
||||
options:
|
||||
max-size: 100m
|
||||
|
||||
services:
|
||||
halo:
|
||||
<<: *default
|
||||
image: halohub/halo:${HALO_VERSION:-2.21.9}
|
||||
container_name: halo
|
||||
ports:
|
||||
- "${HALO_PORT:-8090}:8090"
|
||||
volumes:
|
||||
- halo_data:/root/.halo2
|
||||
environment:
|
||||
- SPRING_R2DBC_URL=${SPRING_R2DBC_URL:-r2dbc:pool:postgresql://halo-db:5432/halo}
|
||||
- SPRING_R2DBC_USERNAME=${POSTGRES_USER:-postgres}
|
||||
- SPRING_R2DBC_PASSWORD=${POSTGRES_PASSWORD:-postgres}
|
||||
- SPRING_SQL_INIT_PLATFORM=${SPRING_SQL_INIT_PLATFORM:-postgresql}
|
||||
- HALO_EXTERNAL_URL=${HALO_EXTERNAL_URL:-http://localhost:8090}
|
||||
- HALO_SECURITY_INITIALIZER_SUPERADMINUSERNAME=${HALO_ADMIN_USERNAME:-admin}
|
||||
- HALO_SECURITY_INITIALIZER_SUPERADMINPASSWORD=${HALO_ADMIN_PASSWORD:-}
|
||||
depends_on:
|
||||
halo-db:
|
||||
condition: service_healthy
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '2.0'
|
||||
memory: 2G
|
||||
reservations:
|
||||
cpus: '0.5'
|
||||
memory: 512M
|
||||
|
||||
halo-db:
|
||||
<<: *default
|
||||
image: postgres:${POSTGRES_VERSION:-17.2-alpine3.21}
|
||||
container_name: halo-db
|
||||
environment:
|
||||
- POSTGRES_USER=${POSTGRES_USER:-postgres}
|
||||
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-postgres}
|
||||
- POSTGRES_DB=${POSTGRES_DB:-halo}
|
||||
- PGUSER=${POSTGRES_USER:-postgres}
|
||||
volumes:
|
||||
- halo_db_data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pg_isready"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
cpus: '1.0'
|
||||
memory: 1G
|
||||
reservations:
|
||||
cpus: '0.25'
|
||||
memory: 256M
|
||||
|
||||
volumes:
|
||||
halo_data:
|
||||
halo_db_data:
|
||||
Reference in New Issue
Block a user