Skip to content

Commit

Permalink
Merge pull request #2 from kengwang/main
Browse files Browse the repository at this point in the history
  • Loading branch information
GZTimeWalker authored Nov 11, 2024
2 parents 345b6d0 + 256ff51 commit 36ee604
Show file tree
Hide file tree
Showing 5 changed files with 249 additions and 114 deletions.
43 changes: 40 additions & 3 deletions docs/en/config/appsettings.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ Here is a complete example of configuration:
"ConnectionStrings": {
"Database": "Host=db:5432;Database=gzctf;Username=postgres;Password=<Database Password>"
// redis is optional
//"RedisCache": "cache:6379,password=<Redis Password>"
//"RedisCache": "cache:6379,password=<Redis Password>",
// external storage (aws s3, azure blob) is optional, aws s3 for example
//"Storage": "aws.s3://keyId=<YOUR_KEY_ID>;key=<YOUR_KEY>;bucket=<YOUR_BUCKET>;region=<YOUR_REGION>"
},
"Logging": {
"LogLevel": {
Expand Down Expand Up @@ -162,16 +164,51 @@ Here is a complete example of configuration:

### ConnectionStrings

Here we can the configure the connection of the database. `Database` is required, and `RedisCache` is optional.
Here we can the configure the connection of the database.

GZCTF uses PostgreSQL as the backend database and data persistence, and Redis as the cache and message queue. In the case of single instance deployment, Redis is not necessary, and GZCTF's memory cache can be used directly; in the case of multi-instance deployment, Redis is necessary as a shared cache and SignalR's Scale-Out broadcast.
#### `Database`

This field is required.

GZCTF uses PostgreSQL as the backend database and data persistence

:::info

GZCTF only supports PostgreSQL as the database, and does not support MySQL and other databases. Please fill in the correct database connection settings in the configuration file.

:::

#### `RedisCache`

This field is optional.

GZCTF uses Redis as the cache and message queue. In the case of single instance deployment, Redis is not necessary, and GZCTF's memory cache can be used directly; in the case of multi-instance deployment, Redis is necessary as a shared cache and SignalR's Scale-Out broadcast.

In v1.0 and later, GZCTF supports using [Garnet](https://github.com/microsoft/garnet) as the cache service.


#### `Storage`

This field is optional.

GZCTF supports external storage services like AWS S3 and Azure Blob Storage. You can configure the storage service to store files and other data.

- [AWS S3](https://aws.amazon.com/s3/)

`aws.s3://keyId=...;key=...;bucket=...;region=...`

- `keyId`: Optional. Access Key ID
- `key`: Optional. Secret Access Key
- `bucket`: Bucket name
- `region`: Region (such as `us-east-1`)
- `serviceUrl` Optional. URL of the storage provider (for example for DigitalOcean).

- [Azure Blob](https://azure.microsoft.com/en-us/services/storage/blobs/)

`azure.file://account=...;key=...`

For more information, checkout [Quickstart: Azure Blob Storage client library for .NET](https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-dotnet?tabs=visual-studio%2Cconnection-string%2Croles-azure-portal%2Csign-in-azure-cli%2Cidentity-visual-studio&pivots=blob-storage-quickstart-scratch#authenticate-to-azure-and-authorize-access-to-blob-data)

### Logging

You can configure the logging level and scopes, besides, GZCTF also supports sending logs to Loki server.
Expand Down
42 changes: 39 additions & 3 deletions docs/ja/config/appsettings.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@
"ConnectionStrings": {
"Database": "Host=db:5432;Database=gzctf;Username=postgres;Password=<Database Password>"
// redis is optional
//"RedisCache": "cache:6379,password=<Redis Password>"
//"RedisCache": "cache:6379,password=<Redis Password>",
// external storage (aws s3, azure blob) is optional, aws s3 for example
//"Storage": "aws.s3://keyId=<YOUR_KEY_ID>;key=<YOUR_KEY>;bucket=<YOUR_BUCKET>;region=<YOUR_REGION>"
},
"Logging": {
"LogLevel": {
Expand Down Expand Up @@ -162,16 +164,50 @@

### ConnectionStrings

ここではデータベース接続文字列を設定します。`Database`は必須項目で、`RedisCache`はオプションです
ここでは、データベースの接続を構成できます

GZCTF は PostgreSQL をバックエンドデータベースおよびデータ永続化に使用し、Redis をキャッシュおよびメッセージキューとして使用します。単一インスタンスのデプロイでは Redis は必須ではなく、GZCTF のメモリキャッシュを直接使用できます。複数インスタンスのデプロイでは、Redis は必須であり、共有キャッシュおよび SignalR の Scale-Out ブロードキャストとして使用されます。
#### `Database`

このフィールドは必須です。

GZCTF は PostgreSQL をバックエンドデータベースおよびデータ永続化に使用します。

:::info

GZCTF はデータベースとして PostgreSQL のみをサポートしており、MySQL などの他のデータベースはサポートしていません。設定ファイルに正しいデータベース接続文字列を記入してください。

:::

#### `RedisCache`

このフィールドはオプションです。

GZCTFはRedis をキャッシュおよびメッセージキューとして使用します。単一インスタンスのデプロイでは Redis は必須ではなく、GZCTF のメモリキャッシュを直接使用できます。複数インスタンスのデプロイでは、Redis は必須であり、共有キャッシュおよび SignalR の Scale-Out ブロードキャストとして使用されます。

v1.0以降、GZCTFは[ガーネット](https://github.com/microsoft/garnet)をキャッシュサービスとして使用することをサポートしています。

#### `Storage`

このフィールドはオプションです。

GZCTFはAWS S3やAzure Blob Storageなどの外部ストレージサービスをサポートしています。ファイルやその他のデータを保存するためにストレージサービスを構成できます。

- [AWS S3](https://aws.amazon.com/s3/)

`aws.s3://keyId=...;key=...;bucket=...;region=...`

- `keyId`: 任意。Access Key ID
- `key`: 任意。Secret Access Key
- `bucket`: Bucket 名
- `region`: リージョン(例:`us-east-1`
- `serviceUrl`: 任意。ストレージプロバイダーのURL(例:DigitalOcean用)。

- [Azure Blob](https://azure.microsoft.com/en-us/services/storage/blobs/)

`azure.file://account=...;key=...`

詳細については、[クイックスタート: .NET 用 Azure Blob Storage クライアント ライブラリ](https://learn.microsoft.com/ja-jp/azure/storage/blobs/storage-quickstart-blobs-dotnet?tabs=visual-studio%2Cconnection-string%2Croles-azure-portal%2Csign-in-azure-cli%2Cidentity-visual-studio&pivots=blob-storage-quickstart-scratch#authenticate-to-azure-and-authorize-access-to-blob-data)を参照してください。

### Logging

ロギングレベルとスコープを設定することができます。さらに、GZCTF は Loki サーバーへのログ送信もサポートしています。
Expand Down
61 changes: 58 additions & 3 deletions docs/zh/config/appsettings.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@
"ConnectionStrings": {
"Database": "Host=db:5432;Database=gzctf;Username=postgres;Password=<Database Password>"
// redis is optional
//"RedisCache": "cache:6379,password=<Redis Password>"
//"RedisCache": "cache:6379,password=<Redis Password>",
// external storage (aws s3, azure blob) is optional, aws s3 for example
//"Storage": "aws.s3://keyId=<YOUR_KEY_ID>;key=<YOUR_KEY>;bucket=<YOUR_BUCKET>;region=<YOUR_REGION>"
},
"Logging": {
"LogLevel": {
Expand Down Expand Up @@ -162,16 +164,69 @@

### ConnectionStrings

此处配置数据库连接字符串,其中 `Database` 为必填项,`RedisCache` 为可选项。
此处配置连接字符串

GZCTF 使用 PostgreSQL 作为后端数据库和数据持久化,使用 Redis 作为缓存和消息队列。单实例部署的情况下 Redis 不是必须的,可以直接采用 GZCTF 的内存缓存;多实例部署的情况下,Redis 是必须的,用作共享缓存和 SignalR 的 Scale-Out 广播。
#### `Database`

必填参数。

GZCTF 使用 PostgreSQL 作为后端数据库和数据持久化。

此连接字符串的一般格式为:

```
Host=db:5432;Database=gzctf;Username=postgres;Password=<Database Password>
```

请将 `<Database Password>` 替换为你的 PostgreSQL 数据库密码 (通常是通过 `POSTGRES_PASSWORD` 环境变量设置)

更多参数可以参考 [Npgsql 连接字符串参数文档](https://www.npgsql.org/doc/connection-string-parameters.html)

:::warning

PostgreSQL 要求初始密码需要有一定复杂度并且在初始化后不支持再通过环境变量修改密码

:::

:::info

GZCTF 仅支持 PostgreSQL 作为数据库,不支持 MySQL 等其他数据库。请在配置文件中填写正确的数据库连接字符串。

:::

#### `RedisCache`

可选参数。

GZCTF 使用 Redis 作为缓存和消息队列。单实例部署的情况下 Redis 不是必须的,可以直接采用 GZCTF 的内存缓存;多实例部署的情况下,Redis 是必须的,用作共享缓存和 SignalR 的 Scale-Out 广播。

在 v1.0 后支持使用 [Garnet](https://github.com/microsoft/garnet) 作为缓存服务。

#### `Storage`

可选参数。

GZCTF 支持使用外部存储,如 AWS S3、Azure Blob 等。GZCTF 会将所有文件存储在外部存储。

我们支持以下格式,他们所对应的 `ConnectionString` 格式如下:

- [AWS S3](https://aws.amazon.com/s3/)

`aws.s3://keyId=...;key=...;bucket=...;region=...`

- `keyId`: 可选。Access Key ID
- `key`: 可选。Secret Access Key
- `bucket`: Bucket 名称
- `region`: 区域 (例如 `us-east-1`)
- `serviceUrl` 可选。兼容 S3 的服务的地址

- [Azure Blob](https://azure.microsoft.com/en-us/services/storage/blobs/)

`azure.file://account=...;key=...`

详细可以参考 [快速入门:适用于 .NET 的 Azure Blob 存储客户端库](https://learn.microsoft.com/zh-cn/azure/storage/blobs/storage-quickstart-blobs-dotnet?tabs=visual-studio%2Cconnection-string%2Croles-azure-portal%2Csign-in-azure-cli%2Cidentity-visual-studio&pivots=blob-storage-quickstart-scratch#authenticate-to-azure-and-authorize-access-to-blob-data)


### Logging

此处可以配置日志级别和范围,此外,GZCTF 还支持将日志发送到 Loki 服务器。
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"dependencies": {
"react-ga4": "^2.1.0",
"react-microsoft-clarity": "^1.2.0",
"rspress": "^1.35.4",
"rspress": "^1.36.0",
"rspress-plugin-katex": "^0.3.0",
"rspress-plugin-sitemap": "^1.1.1"
},
Expand Down
Loading

0 comments on commit 36ee604

Please sign in to comment.