Skip to content
This repository was archived by the owner on Jul 14, 2025. It is now read-only.

Commit c484f72

Browse files
committed
Add super admin and jwt configs to apiserver.md
1 parent ab960c9 commit c484f72

8 files changed

Lines changed: 399 additions & 188 deletions

File tree

docs/configuration/apiserver.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,3 +110,27 @@ openai:
110110
```
111111

112112
目前仅集成了OpenAI API兼容的LLMs调用
113+
114+
## 超级管理员配置
115+
116+
超级管理员配置用于设置系统初始管理员账户,每次启动 `apiserver` 会自动检测是否存在,若不存在会自动创建
117+
118+
```yaml
119+
super_admin:
120+
username: "${SUPER_ADMIN_USERNAME:admin}" # 超级管理员用户名
121+
password: "${SUPER_ADMIN_PASSWORD:admin}" # 超级管理员密码(生产环境请修改)
122+
```
123+
124+
**强烈建议生产环境或者公网环境使用强密码!**
125+
126+
## JWT配置
127+
128+
JWT配置用于设置web认证相关的参数:
129+
130+
```yaml
131+
jwt:
132+
secret_key: "${APISERVER_JWT_SECRET_KEY:Pls-Change-Me!}" # JWT密钥(生产环境请修改)
133+
duration: "${APISERVER_JWT_DURATION:24h}" # Token有效期
134+
```
135+
136+
**强烈建议生产环境或者公网环境使用强密码!**

docs/deployment/binary.md

Lines changed: 45 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,48 @@
11
# 二进制部署
22

3-
**很用力的补充中...**
3+
目前支持的linux/amd64, linux/arm64
4+
5+
可以到 https://github.com/mcp-ecosystem/mcp-gateway/releases 查看下载二进制
6+
7+
## 运行
8+
1. 创建必要的目录并下载配置文件和二进制:
9+
10+
```bash
11+
mkdir -p mcp-gateway/{configs,data}
12+
cd mcp-gateway/
13+
curl -sL https://raw.githubusercontent.com/mcp-ecosystem/mcp-gateway/refs/heads/main/configs/apiserver.yaml -o configs/apiserver.yaml
14+
curl -sL https://raw.githubusercontent.com/mcp-ecosystem/mcp-gateway/refs/heads/main/configs/mcp-gateway.yaml -o configs/mcp-gateway.yaml
15+
curl -sL https://raw.githubusercontent.com/mcp-ecosystem/mcp-gateway/refs/heads/main/.env.example -o .env
16+
```
17+
18+
### mcp-gateway
19+
20+
MacOS下/var/run/mcp-gateway.pid可能没权限,可以直接替换成`./data/mcp-gateway.pid`
21+
22+
> ```bash
23+
> sed -i 's|/var/run/mcp-gateway.pid|./data/mcp-gateway.pid|g' .env
24+
> ```
25+
26+
linux/amd64
27+
```bash
28+
LATEST_VERSION=$(curl -s https://api.github.com/repos/mcp-ecosystem/mcp-gateway/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
29+
curl -sL "https://github.com/mcp-ecosystem/mcp-gateway/releases/download/${LATEST_VERSION}/mcp-gateway-linux-amd64" -o mcp-gateway
30+
chmod +x mcp-gateway
31+
```
32+
33+
linux/arm64
34+
```bash
35+
LATEST_VERSION=$(curl -s https://api.github.com/repos/mcp-ecosystem/mcp-gateway/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
36+
curl -sL "https://github.com/mcp-ecosystem/mcp-gateway/releases/download/${LATEST_VERSION}/mcp-gateway-linux-arm64" -o mcp-gateway
37+
chmod +x mcp-gateway
38+
```
39+
40+
https://github.com/mcp-ecosystem/mcp-gateway/releases/download/v0.2.6/mcp-gateway-linux-arm64
41+
42+
3. 使用二进制运行 MCP Gateway:
43+
44+
```bash
45+
./mcp-gateway
46+
```
47+
448

5-
👇👇👇👇👇👇 如果你想帮忙完善可以点这里,十分感谢❤️
Lines changed: 66 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,42 @@
11
# apiserver.yaml
22

3-
Die Konfigurationsdatei unterstützt die Einbindung von Umgebungsvariablen mit der Syntax `${VAR:default}`. Wenn die Umgebungsvariable nicht gesetzt ist, wird der Standardwert verwendet.
3+
Die Konfigurationsdatei unterstützt die Injektion von Umgebungsvariablen mit der Syntax `${VAR:default}`. Wenn die Umgebungsvariable nicht gesetzt ist, wird der Standardwert verwendet.
44

5-
Die übliche Praxis ist die Einbindung von Werten über verschiedene `.env`, `.env.development`, `.env.prod` Dateien, oder Sie können die Konfiguration direkt mit hartcodierten Werten ändern.
5+
Die übliche Praxis ist, Werte über verschiedene `.env`, `.env.development`, `.env.prod` Dateien zu injizieren, oder die Konfiguration direkt mit festen Werten zu ändern.
66

7-
## Chat-Nachrichten-Datenbankkonfiguration
7+
## Chat-Nachrichten-Datenbank-Konfiguration
88

9-
Diese Konfiguration ist speziell für die Speicherung von Chat-Nachrichten im Backend (obwohl sie die gleiche Datenbank mit Proxy-Konfigurationen teilen kann). Sie entspricht den Informationen, die im Bild unten gezeigt werden:
9+
Diese Konfiguration ist speziell für die Speicherung von Chat-Nachrichten im Backend (obwohl sie die gleiche Datenbank mit Proxy-Konfigurationen teilen kann). Sie entspricht den Informationen, die im folgenden Bild gezeigt werden:
1010

11-
![Chat Sessions and Messages](/img/chat_histories.png)
11+
![Chat-Sitzungen und Nachrichten](/img/chat_histories.png)
1212

13-
Derzeit werden 3 Datenbanktypen unterstützt:
13+
Derzeit werden 3 Arten von Datenbanken unterstützt:
1414
- SQLite3
1515
- PostgreSQL
1616
- MySQL
1717

18-
Wenn Sie Unterstützung für zusätzliche Datenbanken benötigen, können Sie dies im [Issue](https://github.com/mcp-ecosystem/mcp-gateway/issues)-Bereich anfordern, oder Sie können die entsprechende Implementierung selbst implementieren und einen PR einreichen :)
18+
Wenn Sie Unterstützung für zusätzliche Datenbanken benötigen, können Sie dies im [Issue](https://github.com/mcp-ecosystem/mcp-gateway/issues) Bereich anfordern oder die entsprechende Implementierung selbst erstellen und einen PR einreichen :)
1919

2020
```yaml
2121
database:
2222
type: "${APISERVER_DB_TYPE:sqlite}" # Datenbanktyp (sqlite, postgres, mysql)
2323
host: "${APISERVER_DB_HOST:localhost}" # Datenbank-Host-Adresse
24-
port: ${APISERVER_DB_PORT:5432} # Datenbankport
25-
user: "${APISERVER_DB_USER:postgres}" # Datenbankbenutzername
26-
password: "${APISERVER_DB_PASSWORD:example}" # Datenbankpasswort
24+
port: ${APISERVER_DB_PORT:5432} # Datenbank-Port
25+
user: "${APISERVER_DB_USER:postgres}" # Datenbank-Benutzername
26+
password: "${APISERVER_DB_PASSWORD:example}" # Datenbank-Passwort
2727
dbname: "${APISERVER_DB_NAME:./mcp-gateway.db}" # Datenbankname oder Dateipfad
28-
sslmode: "${APISERVER_DB_SSL_MODE:disable}" # SSL-Modus für Datenbankverbindung
28+
sslmode: "${APISERVER_DB_SSL_MODE:disable}" # SSL-Modus für die Datenbankverbindung
2929
```
3030
31-
## Gateway-Proxy-Speicherkonfiguration
31+
## Gateway-Proxy-Speicher-Konfiguration
3232
33-
Dies wird verwendet, um Gateway-Proxy-Konfigurationen zu speichern, insbesondere die Zuordnungen von MCP zu API, wie im Bild unten gezeigt:
33+
Dies wird verwendet, um Gateway-Proxy-Konfigurationen zu speichern, insbesondere die Mappings von MCP zu API, wie im folgenden Bild gezeigt:
3434
35-
![Gateway Proxy Configuration](/img/gateway_proxies.png)
35+
![Gateway-Proxy-Konfiguration](/img/gateway_proxies.png)
3636
37-
Derzeit werden 2 Typen unterstützt:
38-
- disk: Konfigurationen werden als Dateien auf der Festplatte gespeichert, wobei jede Konfiguration in einer separaten Datei liegt, ähnlich dem vhost-Konzept von nginx, z.B. `svc-a.yaml`, `svc-b.yaml`
39-
- db: Speicherung in Datenbank, jede Konfiguration ist ein Datensatz. Derzeit werden drei Datenbanktypen unterstützt:
37+
Derzeit werden 2 Arten unterstützt:
38+
- disk: Konfigurationen werden als Dateien auf der Festplatte gespeichert, wobei jede Konfiguration in einer separaten Datei gespeichert wird, ähnlich dem vhost-Konzept von nginx, z.B. `svc-a.yaml`, `svc-b.yaml`
39+
- db: Speicherung in der Datenbank, jede Konfiguration ist ein Datensatz. Derzeit werden drei Arten von Datenbanken unterstützt:
4040
- SQLite3
4141
- PostgreSQL
4242
- MySQL
@@ -45,62 +45,62 @@ Derzeit werden 2 Typen unterstützt:
4545
storage:
4646
type: "${GATEWAY_STORAGE_TYPE:db}" # Speichertyp: db, disk
4747
48-
# Datenbankkonfiguration (verwendet wenn type 'db' ist)
48+
# Datenbank-Konfiguration (wird verwendet, wenn type 'db' ist)
4949
database:
5050
type: "${GATEWAY_DB_TYPE:sqlite}" # Datenbanktyp (sqlite, postgres, mysql)
5151
host: "${GATEWAY_DB_HOST:localhost}" # Datenbank-Host-Adresse
52-
port: ${GATEWAY_DB_PORT:5432} # Datenbankport
53-
user: "${GATEWAY_DB_USER:postgres}" # Datenbankbenutzername
54-
password: "${GATEWAY_DB_PASSWORD:example}" # Datenbankpasswort
52+
port: ${GATEWAY_DB_PORT:5432} # Datenbank-Port
53+
user: "${GATEWAY_DB_USER:postgres}" # Datenbank-Benutzername
54+
password: "${GATEWAY_DB_PASSWORD:example}" # Datenbank-Passwort
5555
dbname: "${GATEWAY_DB_NAME:./data/mcp-gateway.db}" # Datenbankname oder Dateipfad
56-
sslmode: "${GATEWAY_DB_SSL_MODE:disable}" # SSL-Modus für Datenbankverbindung
56+
sslmode: "${GATEWAY_DB_SSL_MODE:disable}" # SSL-Modus für die Datenbankverbindung
5757
58-
# Festplattenkonfiguration (verwendet wenn type 'disk' ist)
58+
# Festplatten-Konfiguration (wird verwendet, wenn type 'disk' ist)
5959
disk:
60-
path: "${GATEWAY_STORAGE_DISK_PATH:}" # Datenspeicherungspfad
60+
path: "${GATEWAY_STORAGE_DISK_PATH:}" # Datendatei-Speicherpfad
6161
```
6262

63-
## Benachrichtigungskonfiguration
63+
## Benachrichtigungs-Konfiguration
6464

65-
Das Benachrichtigungsmodul wird hauptsächlich verwendet, um `mcp-gateway` über Konfigurationsaktualisierungen zu informieren und Hot-Reloads ohne Neustart des Dienstes auszulösen.
65+
Das Benachrichtigungs-Modul wird hauptsächlich verwendet, um `mcp-gateway` über Konfigurationsaktualisierungen zu informieren und Hot-Reloads ohne Neustart des Dienstes auszulösen.
6666

6767
Derzeit werden 4 Benachrichtigungsmethoden unterstützt:
68-
- signal: Benachrichtigung über Betriebssystemsignale, ähnlich wie `kill -SIGHUP <pid>` oder `nginx -s reload`. Kann über den Befehl `mcp-gateway reload` ausgelöst werden, geeignet für Einzelmaschinen-Deployment
69-
- api: Benachrichtigung über einen API-Aufruf. `mcp-gateway` hört auf einem separaten Port und führt Hot-Reload bei Empfang von Anfragen durch. Kann über `curl http://localhost:5235/_reload` ausgelöst werden, geeignet für Einzelmaschinen- und Cluster-Deployments
70-
- redis: Benachrichtigung über Redis-Pub/Sub-Funktionalität, geeignet für Einzelmaschinen- und Cluster-Deployments
71-
- composite: Kombinierte Benachrichtigung, verwendet mehrere Methoden. Standardmäßig sind `signal` und `api` immer aktiviert und können mit anderen Methoden kombiniert werden. Geeignet für Einzelmaschinen- und Cluster-Deployments und ist der empfohlene Standardansatz
68+
- signal: Benachrichtigung über Betriebssystem-Signale, ähnlich wie `kill -SIGHUP <pid>` oder `nginx -s reload`. Kann über den Befehl `mcp-gateway reload` ausgelöst werden, geeignet für Einzelmaschinen-Bereitstellungen
69+
- api: Benachrichtigung über einen API-Aufruf. `mcp-gateway` hört auf einem unabhängigen Port und führt Hot-Reloads durch, wenn Anfragen empfangen werden. Kann über `curl http://localhost:5235/_reload` direkt ausgelöst werden, geeignet für Einzelmaschinen- und Cluster-Bereitstellungen
70+
- redis: Benachrichtigung über die Redis Pub/Sub-Funktionalität, geeignet für Einzelmaschinen- und Cluster-Bereitstellungen
71+
- composite: Kombinierte Benachrichtigung, die mehrere Methoden verwendet. Standardmäßig sind `signal` und `api` immer aktiviert und können mit anderen Methoden kombiniert werden. Geeignet für Einzelmaschinen- und Cluster-Bereitstellungen und die empfohlene Standardmethode
7272

73-
Benachrichtigungsrollen:
74-
- sender: Sender-Rolle, verantwortlich für das Senden von Benachrichtigungen. `apiserver` kann nur diesen Modus verwenden
75-
- receiver: Empfänger-Rolle, verantwortlich für den Empfang von Benachrichtigungen. Einzelmaschinen-`mcp-gateway` sollte nur diesen Modus verwenden
76-
- both: Sowohl Sender- als auch Empfänger-Rolle. Cluster-deployed `mcp-gateway` kann diesen Modus verwenden
73+
Benachrichtigungs-Rollen:
74+
- sender: Absender-Rolle, verantwortlich für das Senden von Benachrichtigungen. `apiserver` kann nur diesen Modus verwenden
75+
- receiver: Empfänger-Rolle, verantwortlich für das Empfangen von Benachrichtigungen. Einzelmaschinen-`mcp-gateway` sollte nur diesen Modus verwenden
76+
- both: Sowohl Absender- als auch Empfänger-Rolle. Cluster-bereitgestellter `mcp-gateway` kann diesen Modus verwenden
7777

7878
```yaml
7979
notifier:
80-
role: "${APISERVER_NOTIFIER_ROLE:sender}" # Rolle: sender, receiver oder both
81-
type: "${APISERVER_NOTIFIER_TYPE:signal}" # Typ: signal, api, redis oder composite
80+
role: "${APISERVER_NOTIFIER_ROLE:sender}" # Rolle: sender, receiver, oder both
81+
type: "${APISERVER_NOTIFIER_TYPE:signal}" # Typ: signal, api, redis, oder composite
8282
83-
# Signalkonfiguration (verwendet wenn type 'signal' ist)
83+
# Signal-Konfiguration (wird verwendet, wenn type 'signal' ist)
8484
signal:
8585
signal: "${APISERVER_NOTIFIER_SIGNAL:SIGHUP}" # Zu sendendes Signal
8686
pid: "${APISERVER_NOTIFIER_SIGNAL_PID:/var/run/mcp-gateway.pid}" # PID-Dateipfad
8787
88-
# API-Konfiguration (verwendet wenn type 'api' ist)
88+
# API-Konfiguration (wird verwendet, wenn type 'api' ist)
8989
api:
9090
port: ${APISERVER_NOTIFIER_API_PORT:5235} # API-Port
9191
target_url: "${APISERVER_NOTIFIER_API_TARGET_URL:http://localhost:5235/_reload}" # Reload-Endpunkt
9292
93-
# Redis-Konfiguration (verwendet wenn type 'redis' ist)
93+
# Redis-Konfiguration (wird verwendet, wenn type 'redis' ist)
9494
redis:
9595
addr: "${APISERVER_NOTIFIER_REDIS_ADDR:localhost:6379}" # Redis-Adresse
9696
password: "${APISERVER_NOTIFIER_REDIS_PASSWORD:UseStrongPasswordIsAGoodPractice}" # Redis-Passwort
9797
db: ${APISERVER_NOTIFIER_REDIS_DB:0} # Redis-Datenbanknummer
98-
topic: "${APISERVER_NOTIFIER_REDIS_TOPIC:mcp-gateway:reload}" # Redis-Pub/Sub-Thema
98+
topic: "${APISERVER_NOTIFIER_REDIS_TOPIC:mcp-gateway:reload}" # Redis Pub/Sub-Thema
9999
```
100100

101101
## OpenAI API-Konfiguration
102102

103-
Der OpenAI-Konfigurationsblock definiert Einstellungen für die OpenAI API-Integration:
103+
Der OpenAI-Konfigurationsblock definiert die Einstellungen für die OpenAI API-Integration:
104104

105105
```yaml
106106
openai:
@@ -109,4 +109,28 @@ openai:
109109
base_url: "${OPENAI_BASE_URL:https://api.openai.com/v1/}" # API-Basis-URL
110110
```
111111

112-
Derzeit werden nur OpenAI API-kompatible LLM-Aufrufe integriert
112+
Derzeit werden nur OpenAI API-kompatible LLMs-Aufrufe integriert
113+
114+
## Super-Administrator-Konfiguration
115+
116+
Die Super-Administrator-Konfiguration wird verwendet, um das initiale Administrator-Konto des Systems einzurichten. Jedes Mal, wenn `apiserver` gestartet wird, prüft es, ob es existiert, und erstellt es automatisch, wenn es nicht existiert
117+
118+
```yaml
119+
super_admin:
120+
username: "${SUPER_ADMIN_USERNAME:admin}" # Super-Administrator-Benutzername
121+
password: "${SUPER_ADMIN_PASSWORD:admin}" # Super-Administrator-Passwort (in Produktion ändern)
122+
```
123+
124+
**Es wird dringend empfohlen, in Produktionsumgebungen oder öffentlichen Netzwerken starke Passwörter zu verwenden!**
125+
126+
## JWT-Konfiguration
127+
128+
Die JWT-Konfiguration wird verwendet, um die Web-Authentifizierungsparameter einzurichten:
129+
130+
```yaml
131+
jwt:
132+
secret_key: "${APISERVER_JWT_SECRET_KEY:Pls-Change-Me!}" # JWT-Schlüssel (in Produktion ändern)
133+
duration: "${APISERVER_JWT_DURATION:24h}" # Token-Gültigkeitsdauer
134+
```
135+
136+
**Es wird dringend empfohlen, in Produktionsumgebungen oder öffentlichen Netzwerken starke Passwörter zu verwenden!**

0 commit comments

Comments
 (0)