Merge pull request #404 from GaKireiTsuki/canary

docs: add chinese translation
This commit is contained in:
Mauricio Siu 2024-09-02 11:59:55 -06:00 committed by GitHub
commit 9bac042498
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
42 changed files with 1843 additions and 84 deletions

View File

@ -72,14 +72,14 @@ export default function Layout({
name: "English",
},
cn: {
name: "Chinese",
toc: "目",
search: "搜尋文檔",
lastUpdate: "最後更新於",
searchNoResult: "沒有結果",
previousPage: "上一",
nextPage: "下一",
chooseLanguage: "選擇語言",
name: "中文",
toc: "目",
search: "搜索文档",
lastUpdate: "最后更新于",
searchNoResult: "没有结果",
previousPage: "上一",
nextPage: "下一",
chooseLanguage: "选择语言",
},
}}
>
@ -88,7 +88,7 @@ export default function Layout({
i18n
tree={pageTree[params.lang]}
nav={{
title: params.lang === "cn" ? "目" : "Dokploy",
title: params.lang === "cn" ? "目" : "Dokploy",
url: `/${params.lang}`,
transparentMode: "none",
}}

View File

@ -0,0 +1,99 @@
---
title: Dokploy API
description: 如何与 Dokploy API 进行交互,面向管理员和用户
---
在某些情况下,您可能需要直接与 Dokploy API 进行交互。以下是管理员和用户如何做到这一点的指南。
## 对于管理员
1. 通过访问 `your-vps-ip:3000/swagger` 进入 Swagger UI。
2. 使用 Swagger 界面与 API 进行交互。
3. 默认情况下Swagger UI 的访问受到限制,只有经过身份验证的管理员才能访问 API。
## 对于用户
1. 默认情况下,用户无法直接访问 API。
2. 管理员可以授予用户以下访问权限:
- 生成访问令牌
- 访问 Swagger UI
3. 如果您需要访问权限,请联系您的管理员。
注意API 提供了高级功能。确保您理解所执行的操作,以避免对系统造成意外更改。
## 用法
默认情况下OpenApi 基础 URL 为 `http://localhost:3000/api`,您需要将其替换为 Dokploy 实例的 IP 或域名。
### 身份验证
API 使用 JWT 令牌进行身份验证。您可以通过访问 `/settings/profile` 页面并进入 API/CLI 部分生成令牌。
以下是一个经过身份验证的请求示例:
```bash
curl -X 'GET' \
'https://dokploy.com/api/project.all' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR-TOKEN'
```
然后您将收到类似以下内容的响应:
```json
[
{
"projectId": "klZKsyw5g-QT_jrWJ5T-w",
"name": "随机",
"description": "",
"createdAt": "2024-06-19T15:05:58.785Z",
"adminId": "_WrKZbs7iJAA3p4N2Yfyu",
"applications": [],
"mariadb": [],
"mongo": [],
"mysql": [
{
"mysqlId": "N3cudwO46TiDXzBm4SaQ1",
"name": "mysql",
"appName": "random-mysql-924715",
"description": "",
"databaseName": "mysql",
"databaseUser": "mysql",
"databasePassword": "h13BzO6y3KYSHaQg",
"databaseRootPassword": "mM1b7JeoPA7jArxj",
"dockerImage": "mysql:8",
"command": null,
"env": null,
"memoryReservation": null,
"memoryLimit": null,
"cpuReservation": null,
"cpuLimit": null,
"externalPort": null,
"applicationStatus": "完成",
"createdAt": "2024-06-24T01:55:40.378Z",
"projectId": "klZKsyw5g-QT_jrWJ5T-w"
}
],
"postgres": [],
"redis": [
{
"redisId": "TtFK5S4QFaIjaNGOb8Ku-",
"name": "redis",
"appName": "random-redis-7eec62",
"description": "",
"databasePassword": "Yvb8gqClfomjcue8",
"dockerImage": "redis:7",
"command": null,
"env": null,
"memoryReservation": null,
"memoryLimit": null,
"cpuReservation": null,
"cpuLimit": null,
"externalPort": 6379,
"createdAt": "2024-06-26T06:43:20.570Z",
"applicationStatus": "完成",
"projectId": "klZKsyw5g-QT_jrWJ5T-w"
}
],
"compose": []
}
]
```

View File

@ -0,0 +1,33 @@
{
"title": "CLI",
"root": true,
"pages": [
"---入门---",
"index",
"---API---",
"reference-api/reference-admin",
"reference-api/reference-application",
"reference-api/reference-auth",
"reference-api/reference-backup",
"reference-api/reference-certificates",
"reference-api/reference-cluster",
"reference-api/reference-compose",
"reference-api/reference-deployment",
"reference-api/reference-destination",
"reference-api/reference-docker",
"reference-api/reference-domain",
"reference-api/reference-mariadb",
"reference-api/reference-mongo",
"reference-api/reference-mounts",
"reference-api/reference-mysql",
"reference-api/reference-port",
"reference-api/reference-postgres",
"reference-api/reference-project",
"reference-api/reference-redirects",
"reference-api/reference-redis",
"reference-api/reference-registry",
"reference-api/reference-security",
"reference-api/reference-settings",
"reference-api/reference-user"
]
}

View File

@ -0,0 +1,18 @@
---
title: 应用程序
description: 使用 Dokploy CLI 管理应用程序的指南
---
Dokploy CLI 可用于创建、部署和管理应用程序。
## 要求
需要先使用 Dokploy CLI 进行身份验证。
## 命令
1. `dokploy app create` - 创建一个新应用程序。
2. `dokploy app delete` - 删除一个应用程序。
3. `dokploy app deploy` - 部署一个应用程序。
4. `dokploy app stop` - 停止一个正在运行的应用程序。

View File

@ -0,0 +1,25 @@
---
title: 身份验证
description: 使用 Dokploy CLI 进行身份验证的指南
---
Dokploy CLI 使用基于令牌的身份验证系统。要进行身份验证,您需要创建一个访问令牌并安全存储它。
## 创建访问令牌
要创建访问令牌,首先您需要具备相应的权限,如果您是管理员,则不需要权限。
默认情况下,访问令牌不会过期。
您可以前往 `dashboard/settings/profile` 并点击 `生成` 按钮。
<ImageZoom src="/assets/cli/token.png" width={800} height={630} alt='home og image' className="rounded-lg" />
## 存储访问令牌
当您创建访问令牌时Dokploy 将自动生成一个包含访问令牌和服务器 URL 的 config.json 文件。
## 命令
1. `dokploy authenticate` - 使用 Dokploy CLI 进行身份验证。
2. `dokploy verify` - 验证访问令牌是否有效。

View File

@ -0,0 +1,43 @@
---
title: 数据库
description: 使用 Dokploy CLI 管理数据库的指南
---
Dokploy CLI 可用于创建、部署和管理数据库。
## 需求
需要先进行 Dokploy CLI 的身份验证。
## 命令
### MariaDB
1. `dokploy database mariadb create` - 创建一个新的 MariaDB 数据库。
2. `dokploy database mariadb delete` - 删除一个 MariaDB 数据库。
3. `dokploy database mariadb deploy` - 部署一个 MariaDB 数据库。
4. `dokploy database mariadb stop` - 停止运行中的 MariaDB 数据库。
### PostgreSQL
1. `dokploy database postgresql create` - 创建一个新的 PostgreSQL 数据库。
2. `dokploy database postgresql delete` - 删除一个 PostgreSQL 数据库。
3. `dokploy database postgresql deploy` - 部署一个 PostgreSQL 数据库。
4. `dokploy database postgresql stop` - 停止运行中的 PostgreSQL 数据库。
### MySQL
1. `dokploy database mysql create` - 创建一个新的 MySQL 数据库。
2. `dokploy database mysql delete` - 删除一个 MySQL 数据库。
3. `dokploy database mysql deploy` - 部署一个 MySQL 数据库。
4. `dokploy database mysql stop` - 停止运行中的 MySQL 数据库。
### MongoDB
1. `dokploy database mongodb create` - 创建一个新的 MongoDB 数据库。
2. `dokploy database mongodb delete` - 删除一个 MongoDB 数据库。
3. `dokploy database mongodb deploy` - 部署一个 MongoDB 数据库。
4. `dokploy database mongodb stop` - 停止运行中的 MongoDB 数据库。
### Redis
1. `dokploy database redis create` - 创建一个新的 Redis 数据库。
2. `dokploy database redis delete` - 删除一个 Redis 数据库。
3. `dokploy database redis deploy` - 部署一个 Redis 数据库。
4. `dokploy database redis stop` - 停止运行中的 Redis 数据库。

View File

@ -0,0 +1,16 @@
---
title: 项目
description: 使用 Dokploy CLI 管理项目的指南
---
Dokploy CLI 可用于创建、部署和管理项目。
## 需求
需要先进行 Dokploy CLI 的身份验证。
## 命令
1. `dokploy project create` - 创建一个新项目。
2. `dokploy project info` - 获取有关项目的信息。
3. `dokploy project list` - 列出所有项目。

View File

@ -0,0 +1,23 @@
---
title: 介绍
description: 使用 Dokploy 命令行界面的指南
---
Dokploy CLI 是一个用于远程管理您的 Dokploy 服务器的命令行工具。它简化了应用程序和数据库的创建、部署和管理。
## 安装
```bash
npm install -g @dokploy/cli
```
## 用法
```bash
dokploy COMMAND
```
要获取特定命令的帮助:
```bash
dokploy COMMAND --help
```

View File

@ -0,0 +1,13 @@
{
"title": "CLI",
"root": true,
"pages": [
"---开始使用---",
"index",
"---命令---",
"commands/authentication",
"commands/project",
"commands/application",
"commands/databases"
]
}

View File

@ -0,0 +1,166 @@
---
title: 高级功能
description: 了解如何使用应用程序中的高级功能。
---
本节旨在为需要在 Dokploy 中管理复杂配置和编排设置的高级用户提供支持。在这里,您可以执行自定义命令、管理集群副本、选择 Docker 注册表以及配置 Docker Swarm 设置。
### 运行命令
- **目的**:允许用户在容器内直接执行自定义 Shell 命令。
- **用法**:在提供的字段中输入需要运行的命令,然后单击“保存”以在容器环境中执行。这一工具特别适合调试或特定管理任务。
### 集群设置
- **目的**:管理应用程序在多个服务器或节点上的扩展和分布。
- **副本数**:设置应运行的应用程序实例数量。
- **注册表选择**:选择将从中提取容器映像的 Docker 注册表。这对于确保在部署过程中使用正确的映像至关重要。
#### 重要提示
修改集群设置后,请始终点击“重新部署”以应用更改。
### Swarm 设置
Swarm 设置允许详细配置容器在 Docker Swarm 中的编排方式。
#### 健康检查
- **目的**:确保容器平稳运行,并在失败时重新启动它们。
- **配置**:指定测试命令、间隔、超时、启动时间和重试次数等参数。
#### 重启策略
定义容器在退出或失败时的处理方式,配置如下:
- **条件**:指定应在何种条件下发生重启。
- **延迟**:设置重启之间的时间延迟。
- **最大尝试次数**:限制重启尝试的次数。
- **窗口**:定义用于评估重启策略的时间窗口。
#### 更新配置
管理 Swarm 中服务的部署和更新过程,配置如下:
- **并行性**:同时更新的容器数量。
- **延迟**:更新之间的时间。
- **失败操作**:更新失败时采取的操作。
- **监控**:更新后监控容器的持续时间。
- **最大失败比例**:在更新被视为失败之前,允许失败的容器比例。
- **顺序**:在更新过程中停止和启动容器的顺序。
#### 放置
根据特定规则和偏好控制容器在 Swarm 中的位置,配置如下:
- **约束条件**:容器放置在节点上必须满足的条件。
- **偏好设置**:在节点之间均匀分配容器的放置偏好。
### 回滚配置
管理更新失败时服务的回滚过程,配置如下:
- **并行性**:同时回滚的容器数量。
- **延迟**:回滚之间的时间。
- **失败操作**:回滚失败时采取的操作。
- **监控**:回滚后监控容器的持续时间。
- **最大失败比例**:在回滚被视为失败之前,允许失败的容器比例。
- **顺序**:在回滚过程中停止和重新启动容器的顺序。
### 模式
定义服务在 Swarm 中的复制方式,配置如下:
- **复制模式**:服务根据指定的设置在节点上复制。
- **副本数**:每个服务的副本数量。
- **全局模式**:每个节点运行服务的单个实例。
- **复制作业**:以复制的方式运行作业。
- **最大并发**:同时运行的作业最大数量。
- **总完成次数**:作业需要完成的总次数。
### 网络
配置服务的网络设置,配置如下:
- **目标**:指定网络名称。
- **别名**:为网络提供别名。
- **驱动程序选项**:网络驱动程序选项,如 MTU 大小和主机绑定。
### 标签
为容器分配元数据以帮助识别和组织,配置如下:
- **标签**:分配给服务的键值对。例如:
1. `com.example.app.name`: "my-app"
2. `com.example.app.version`: "1.0.0"
### 注意
修改 Swarm 设置需要谨慎考虑,因为不正确的配置可能会干扰整个容器编排。始终确保您理解所做更改的影响。
## 资源
管理分配给您的应用程序或数据库的内存和 CPU 资源。
- **内存保留**:保证应用程序的最小内存量。
- **内存限制**:应用程序可以使用的最大内存量。
- **CPU 限制**:应用程序可以使用的最大 CPU 单位数量。
- **CPU 保留**:为应用程序保留的最小 CPU 单位数量。
### 卷/挂载
配置应用程序的持久存储,以确保数据在容器重启和部署之间保持完整。
**绑定挂载**:将主机文件或目录映射到容器文件或目录。通常用于特定配置或数据库。
1. **主机路径**:主机上的路径。
2. **挂载路径**:容器中的路径。
**卷挂载**:使用 Docker 管理的卷,比绑定挂载更易于备份和迁移。
1. **卷名称**Docker 管理的卷名称。
2. **挂载路径**:容器中挂载卷的路径。
**文件挂载**:专门用于单个文件,适用于配置文件。
1. **内容**:要存储在文件中的内容。
2. **挂载路径**:容器中放置文件的路径。
文件挂载是 Dokploy 的一个功能,它在项目内部的 `files` 文件夹中创建一个文件,因此每次部署项目时都会重新创建。
<ImageZoom src="/assets/file-mount-configuration.webp" width={800} height={630} className="rounded-lg"/>
<ImageZoom src="/assets/file-mount.png" width={800} height={630} className="rounded-lg"/>
### 重定向
根据指定的规则将请求重定向到应用程序的另一个 URL提高导航效率和 SEO。
- **正则表达式**:输入一个正则表达式以匹配需要重定向的 URL。
- **替换**:指定流量应重定向到的目标 URL。
- **永久性**:启用此选项以应用永久性 (HTTP 301) 重定向,指示浏览器和搜索引擎页面已永久移动。
#### 示例
要将所有流量从 "http://localhost" 重定向到 "http://mydomain",请将正则表达式设置为 `http://localhost/(.*)`,并将替换设置为 `http://mydomain/$1`。
### 安全
为您的应用程序添加基本身份验证以限制访问。
- **用户名**:输入用户名。
- **密码**:输入密码。
#### 重要提示
添加基本身份验证将在允许访问应用程序之前提示用户输入用户名和密码。在需要额外安全层的环境中使用此功能。
### 端口
通过配置网络端口将应用程序暴露于互联网,允许外部访问。
- **发布端口**:将路由流量到您的应用程序的主机上的端口号。
- **目标端口**:容器内应用程序使用的端口号。
- **协议**:根据应用程序的要求选择 TCP 或 UDP。
#### 重要提示
确保发布端口不会与主机上的其他服务冲突,以避免端口绑定错误。此外,此端口主要用于从外部访问应用程序,例如 `your-ip:port`,而不是通过域访问应用程序。
### Traefik
提供了一种动态且强大的方法来管理 HTTP 流量到您的服务,包括负载均衡和 SSL 终止。
- **规则**:使用 Traefik 强大的基于规则的配置系统定义复杂的路由、负载均衡和安全配置。

View File

@ -0,0 +1,85 @@
---
title: 自动部署
description: "了解如何将您的应用程序自动部署到 Dokploy。"
---
将应用程序自动部署到 Dokploy 可以通过两种主要方法实现:使用 Webhooks 或 Dokploy API。每种方法都支持各种平台并提供简化的部署流程。
## GitHub
对于 GitHub我们提供无需任何配置的自动部署。这将在您推送到代码库时自动部署您的应用程序。
## Webhook URL
Webhooks 允许您在源代码库中进行更改时自动部署应用程序。
- GitHub
- GitLab
- Bitbucket
- Gitea
- DockerHub
### 配置步骤
1. **启用自动部署**:在 Dokploy 的应用程序设置的一般选项卡中切换“自动部署”按钮。
2. **获取 Webhook URL**:从部署日志中找到 Webhook URL。
<ImageZoom
src="/assets/webhook-url.png"
alt="Webhook URL"
width={1000}
height={500}
/>
3. **配置您的代码库**
- 转到您选择的平台上的代码库设置。
- 添加由 Dokploy 提供的 webhook URL。
- 确保设置与触发 webhook 所需的配置匹配。
<ImageZoom
src="/assets/webhook-github.png"
alt="Webhook URL"
width={1000}
height={500}
/>
#### 重要提示
- **分支匹配**:使用基于 Git 的提供商GitHub、GitLab 等)时,请确保 Dokploy 中配置的分支与您打算推送的分支匹配。不匹配将导致“分支不匹配”错误。
- **Docker 标签**:对于使用 DockerHub 的部署,请确保推送的标签与 Dokploy 中指定的标签匹配。
- 所有提供商的步骤都是相同的。
### API 方法
通过 Dokploy API 从任何地方以编程方式部署您的应用程序。
### 使用 API 部署的步骤
步骤:
1. **生成令牌**:在 Dokploy 的个人资料设置中创建一个 API 令牌。
2. **获取应用程序 ID**
```http
curl -X 'GET' \
'https://your-domain/api/project.all' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <token>'
```
此命令列出所有项目和服务。确定您希望部署的应用程序的 applicationId。
3. **触发部署**
```http
curl -X 'POST' \
'https://your-domain/api/application.deploy' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"applicationId": "string"
}'
```
此 API 方法允许灵活的、可编程的部署选项,适用于自动化系统或不便于直接代码库集成的情况。通过这种方式,您可以从任何地方部署您的应用程序,您可以使用 webhook URL 或 API。

View File

@ -0,0 +1,46 @@
---
title: 域名
description: '域名'
---
本节概述了如何为 Dokploy 中的应用程序配置域名,确保您的应用程序可以通过自定义 URL 进行访问。
### 添加域名
将自定义域名与您的应用程序关联,使其能够通过互联网访问。
- **主机**:您希望链接到应用程序的域名(例如,`api.dokploy.com`)。
- **路径**:应用程序在域名内应可访问的具体路径。
- **容器端口**:域名应路由到容器上的端口。
- **证书**:选择是否通过 SSL/TLS 证书来保护域名。Dokploy 支持通过 Let's Encrypt 自动提供 SSL 证书。
- **HTTPS**:启用此选项以为您的域名启用 HTTPS提供安全的加密连接。
#### 添加域名的步骤
1. 点击“添加域名”。
2. 填写域名详细信息,包括主机、路径和端口。
3. 选择启用 HTTPS 并选择证书选项。
4. 点击“创建”以应用设置。
### 生成域名
快速为开发或测试目的设置域名,无需注册域名。
- **生成 TraefikMe 域名**:创建由 TraefikMe 提供的免费域名。这非常适合在购买正式域名之前进行测试或临时访问。
#### 生成域名的步骤
1. 点击“生成域名”。
2. 选择“生成 TraefikMe 域名”以快速设置。
3. 将自动为您的应用程序分配一个域名。
### 管理域名
- **查看和修改**:现有域名会列出,您可以编辑设置或删除它们。
- **详细信息**:每个域名条目显示已配置的主机、路径、端口以及 HTTPS 是否启用。
### 注意事项
正确的域名配置对于应用程序的可访问性和安全性至关重要。始终验证域名设置,并确保 DNS 配置正确指向正确的 IP 地址。启用 HTTPS 以增强安全性和信任,特别是在生产环境中。
### 关于容器端口的重要说明
域名设置中指定的“容器端口”专门用于通过 Traefik 将流量路由到正确的应用程序容器,并不会直接将端口暴露给互联网。这与“高级 -> 端口”部分中的端口设置根本不同,后者用于直接暴露应用程序端口。域名设置中的容器端口确保 Traefik 可以根据域名配置内部将流量引导到容器内的指定端口。

View File

@ -0,0 +1,42 @@
---
title: 提供者
description: '了解如何在您的应用程序中使用提供者。'
---
Dokploy 提供了几种部署方法,简化了无论您使用 GitHub、任何 Git 提供者、Docker 还是自动化部署的过程。
- GitHub
- Git任何 Git 提供者)
- Docker
## GitHub
通过 GitHub 部署非常简单:
1. 在 `/dashboard/settings/server` 中配置您的 GitHub 仓库。
2. 在创建应用程序时Dokploy 会自动检索可用的仓库和分支。
## Git
对于来自任何 Git 仓库的部署,无论是公共还是私有,您可以使用 SSH 或 HTTPS
1. 输入仓库的 URL。
2. 指定您希望部署的分支。
### 私有仓库
对于私有仓库,使用 SSH 进行身份验证。我们提供一个锁图标来生成 SSH 密钥。
<ImageZoom src="/assets/dokploy-ssh-key.png" width={800} height={630} className="rounded-lg"/>
然后,您可以复制 SSH 密钥并将其粘贴到您的帐户设置中。
<ImageZoom src="/assets/private-repository.png" width={800} height={630} className="rounded-lg"/>
这使您能够从私有仓库中拉取代码,这种方法在几乎所有提供者中都是一致的。
## Docker
对于 Docker 部署:
- 提供一个 Docker 镜像。对于私有仓库,输入用户名和密码。

View File

@ -1,96 +1,88 @@
---
title: Cluster (Advanced)
description: "Learn how to set up and manage a cluster in Dokploy with docker swarm."
title: 集群(高级)
description: "了解如何在 Dokploy 中使用 Docker Swarm 设置和管理集群。"
sidebar:
order: 1
---
对于大多数情况,除非您需要扩展应用程序,否则您可能不需要使用集群。集群是由多个节点组成的,它们协同工作以提供一个统一的服务。在 Dokploy 中,集群管理着一组服务器,共同协作以提供这一统一服务。
For most suitables cases you may not need to use a cluster, unless you need to scale your application.
A cluster is a group of nodes that work together to provide a single, unified service. In Dokploy, clusters manage a group of servers collaborating to deliver this unified service.
我们在后台使用 Traefik 来为应用程序进行流量负载均衡。
We use traefik under the hood to load balance the traffic to the application.
建议在使用集群之前先阅读 [Traefik 文档](https://doc.traefik.io/traefik/routing/providers/swarm/),以更好地理解它的工作原理。
要开始向您的集群添加节点,您需要一个注册表。节点需要注册表来拉取镜像。
We recommend to read the [Traefik Docs](https://doc.traefik.io/traefik/routing/providers/swarm/) before using a cluster, to have a better understanding of how it works.
## 要求
To start adding nodes to your cluster, you need a registry. The nodes require the registry to pull images .
- 已安装 Dokploy 的服务器。
- 用于存储镜像的注册表。
- 用于添加为节点的额外服务器VPS
## Requirements
## 注册表选项
- A server with Dokploy installed.
- A registry to store your images.
- Additional servers (VPS) to add as nodes.
我们提供两种方法将注册表添加到您的集群中:
## Registry Options
- **自定义注册表(免费)**:在您的服务器上设置私有注册表。
- **外部注册表(付费)**:使用外部注册表,如 Docker Hub、DigitalOcean、AWS ECR 等。
We provide two methods to add a registry to your cluster:
- **Custom Registry (Free)**: Set up a private registry on your server.
- **External Registry (Paid)**: Use external registries like Docker Hub, DigitalOcean, AWS ECR, etc.
You can see you can add two types of registries:
您可以看到可以添加两种类型的注册表:
<ImageZoom src="/assets/images/cluster/registry.png" width={800} height={630} alt='home og image' className="rounded-lg" />
## 向集群添加节点
## Adding Nodes to a Cluster
一旦有了注册表,您可以通过以下步骤向集群添加节点:
Once you have a registry, you can add nodes to your cluster by following these steps:
1. Click the `Add Node` button.
2. You will see two tabs: `Worker` and `Manager`.
3. Select the type of node you want to add.
4. Follow the two steps provided:
- Install the Docker engine.
- Install the Dokploy agent. These steps are the same for both node types.
5. Run the provided commands on the new server.
6. After running the commands, go to `server/settings/cluster`. You will see entries for both the worker and manager nodes in the table.
1. 点击 `Add Node` 按钮。
2. 您将看到两个标签:`Worker` 和 `Manager`。
3. 选择您要添加的节点类型。
4. 按照提供的两步进行操作:
- 安装 Docker 引擎。
- 安装 Dokploy 代理。这两个节点类型的步骤是相同的。
5. 在新服务器上运行提供的命令。
6. 运行命令后,进入 `server/settings/cluster`。您将在表格中看到 Worker 和 Manager 节点的条目。
<ImageZoom src="/assets/images/cluster/nodes.png" width={800} height={630} alt='home og image' className="rounded-lg" />
<ImageZoom src="/assets/images/cluster/cluster.png" width={800} height={630} alt='home og image' className="rounded-lg" />
<ImageZoom src="/assets/images/cluster/application.png" width={800} height={630} alt='home og image' className="rounded-lg" />
## 部署应用程序
## Deploying an Application
一旦您将节点连接到集群,您可以按以下步骤部署应用程序:
Once you have linked nodes to the cluster, you can deploy an application as follows:
1. 在项目中创建一个应用程序。
2. Fork 仓库 [Dokploy/swarm-test](https://github.com/Dokploy/swarm-test)。
3. 将其保存为 GitHub 提供商。
4. 进入应用程序的高级选项卡。
5. 在“集群设置”部分:
- 更改副本数量(默认是 1
- 选择节点拉取镜像的注册表。
6. 现在,您可以将应用程序部署到集群(通过点击 `Deploy` 按钮)。
1. Create an application in a project.
2. Fork the repository [Dokploy/swarm-test](https://github.com/Dokploy/swarm-test).
3. Save it as a GitHub provider.
4. Go to the advanced tab of the application.
5. In the "Cluster Settings" section:
- Change the number of replicas (default is 1).
- Select the registry for the nodes to pull images from.
6. Now you can deploy the application to the cluster (By clicking the `Deploy` button).
事实上这是实现多节点部署的一个简单方法。Traefik 将处理负载均衡,并将流量路由到应用程序最可用的节点。
要进一步增强此设置,您可以使用 AWS、DigitalOcean 或 Google Cloud 等服务的负载均衡器。这些负载均衡器在路由请求之前会进行健康检查,以确保只有健康的节点接收流量。如果节点未通过健康检查,负载均衡器将自动将请求路由到另一个节点。此设置提供了更稳健和可扩展的部署。
In fact, this is a straightforward way to achieve multi-node deployments. Traefik will handle load balancing and route traffic to the node where the application is most available.
要向集群添加管理节点,请按照添加 Worker 节点的相同步骤进行操作。然而,如果运行 Dokploy 的管理节点发生故障,所有其他节点将变得不可访问。这是因为我们目前为集群设置了单一入口点。为确保高可用性,您应该有多个管理节点。
To further enhance this setup, you can use load balancers from services like AWS, DigitalOcean, or Google Cloud. These load balancers perform health checks before routing requests to ensure that only healthy nodes receive traffic. If a node fails the health check, the load balancer will automatically route the request to another node. This setup provides a more robust and scalable deployment.
要实现这一点,您需要将所有持久性和 Traefik 信息复制到新的管理节点。这将为集群创建多个入口点。您可以使用 rsync、aws data sync 或其他工具在节点之间同步所有必要信息。
To add manager nodes to the cluster, follow the same steps as adding a worker node. However, if the manager node (where Dokploy is running) fails, all other nodes will become inaccessible. This is because we currently have a single entry point for the cluster. To ensure high availability, you should have multiple manager nodes.
## 自定义应用程序
To achieve this, you need to replicate all persistent and Traefik information to the new manager nodes. This will create multiple entry points for the cluster. You can use tools like rsync, aws data sync, or any other tool to synchronize all the necessary information between the nodes.
您可以在“Swarm 设置”部分自定义应用程序。在这里,您几乎可以修改与 Swarm 应用模式相关的所有设置。
界面中提供了每个设置的占位符和预期格式。所有字段必须为 JSON 值。
## Customizing the Application
#### 可自定义设置:
You can customize the application in the "Swarm Settings" section. Here, you can modify almost every setting related to the swarm application mode.
In the interface, placeholders and expected formats for each setting are provided. All fields must be JSON values.
#### Customizable Settings:
- Healthcheck
- Restart Policy
- Placement
- Update Config
- Rollback Config
- Mode
- Network
- Labels
- 健康检查
- 重启策略
- 放置策略
- 更新配置
- 回滚配置
- 模式
- 网络
- 标签
<ImageZoom src="/assets/images/cluster/swarm-settings.png" width={800} height={630} alt='home og image' className="rounded-lg" />

View File

@ -0,0 +1,32 @@
---
title: 连接
description: "了解如何使用 Dokploy 连接到您的数据库。"
---
本节解释如何为 Dokploy 中的应用程序配置数据库访问,包括内部网络中的连接和可以通过互联网访问的外部连接。
### 内部凭证
用于从同一网络连接到数据库,而无需将数据库暴露于互联网。
- **用户**:数据库访问的用户名。
- **密码**:数据库访问的安全密码。
- **数据库名称**:要连接的数据库名称。
- **内部主机**:网络内数据库的主机名或内部标识符。
- **内部端口(容器)**:在容器内连接到数据库所使用的端口。
- **内部连接 URL**:用于内部连接数据库的完整连接字符串。
### 外部凭证
使数据库可以通过互联网访问,便于远程管理或外部应用程序。
- **外部端口(互联网)**:分配一个当前未被其他服务使用的端口,以便将数据库外部暴露。
#### 配置外部访问的步骤
1. 确保外部端口可用,并且与其他服务不冲突。
2. 输入要用于暴露数据库的外部端口。
3. 系统将自动生成外部连接 URL可用于通过互联网访问数据库的任何数据库管理工具如 phpMyAdmin、MySQL Workbench、PgAdmin 等。
### 重要提示
出于安全原因,应对在同一网络或环境中运行的应用程序使用内部凭证,以防止未经授权的访问。外部凭证应仅在必要时使用,并采取适当的安全措施,如 VPN 或 IP 白名单。

View File

@ -0,0 +1,192 @@
---
title: 域名
description: 为您的 Docker Compose 应用程序配置域名。
---
在使用 Docker Compose 时,为服务添加域名是一个简单的过程。本指南将引导您完成为应用程序配置域名的必要步骤。
关键步骤:
1. 将服务添加到 `dokploy-network`。
2. 使用 Traefik 标签配置路由。
## 示例场景
让我们考虑一个包含三个组件的应用程序:前端、后端和数据库。我们将从一个基本的 Docker Compose 文件开始,然后通过域名配置对其进行增强。
```yaml
version: '3.8'
services:
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
volumes:
- ./frontend:/app
ports:
- "3000:3000"
depends_on:
- backend
backend:
build:
context: ./backend
dockerfile: Dockerfile
volumes:
- ./backend:/app
ports:
- "5000:5000"
environment:
- DATABASE_URL=postgres://postgres:password@database:5432/mydatabase
depends_on:
- database
database:
image: postgres:13
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: password
POSTGRES_DB: mydatabase
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
```
## 步骤 1添加网络
首先,我们将 `dokploy-network` 添加到我们的服务中:
```yaml
version: '3.8'
services:
frontend:
# ...(之前的配置)
networks:
- dokploy-network
backend:
# ...(之前的配置)
networks:
- dokploy-network
database:
# ...(之前的配置)
networks:
- dokploy-network
volumes:
db-data:
networks:
dokploy-network:
external: true
```
## 步骤 2配置 Traefik 标签
现在,让我们添加 Traefik 标签以将域名路由到我们的服务。我们将专注于前端和后端服务:
{/* 必须添加这些标签:
1. `traefik.enable=true`
此标签告诉 Traefik 此服务应由 Traefik 路由。
2. `traefik.http.routers.<UNIQUE-RULE>.rule=Host('your-domain.dokploy.com')`
此标签告诉 Traefik 使用的域名是 `your-domain.dokploy.com`
3. `traefik.http.routers.<UNIQUE-RULE>.entrypoints=web`
此标签告诉 Traefik 该服务应通过 `http` 协议访问。
4. `traefik.http.services.<UNIQUE-RULE>.loadbalancer.server.port=3000`
此标签告诉 Traefik 使用的端口是 `3000`
注意:对于 loadbalancer.server.port确保分配您服务所使用的端口。请注意您无需像这样暴露端口
注意:在 loadbalancer.server.port 确保分配您服务使用的端口,并且需要注意的是,您无需以这种方式暴露端口:
`'3000:3000'` 这是不正确的,您只需分配服务正在使用的端口,在这种情况下为 `3000`。
确保创建指向您的域名的 `A` 记录,这可以通过您的 DNS 提供商完成。*/}
```yaml
version: '3.8'
services:
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
volumes:
- ./frontend:/app
expose:
- 3000
depends_on:
- backend
networks:
- dokploy-network
labels:
- traefik.enable=true
- traefik.http.routers.frontend-app.rule=Host(`frontend.dokploy.com`)
- traefik.http.routers.frontend-app.entrypoints=web
- traefik.http.services.frontend-app.loadbalancer.server.port=3000
backend:
build:
context: ./backend
dockerfile: Dockerfile
volumes:
- ./backend:/app
expose:
- 5000
environment:
- DATABASE_URL=postgres://postgres:password@database:5432/mydatabase
depends_on:
- database
networks:
- dokploy-network
labels:
- traefik.enable=true
- traefik.http.routers.backend-app.rule=Host(`backend.dokploy.com`)
- traefik.http.routers.backend-app.entrypoints=web
- traefik.http.services.backend-app.loadbalancer.server.port=5000
database:
# ...(与之前相同)
volumes:
db-data:
networks:
dokploy-network:
external: true
```
## 理解 Traefik 标签
1. `traefik.enable=true` 启用服务的 Traefik 路由。
2. `traefik.http.routers.<UNIQUE-RULE>.rule=Host('your-domain.dokploy.com')` 指定服务的域名。
3. `traefik.http.routers.<UNIQUE-RULE>.entrypoints=web` 将服务设置为可通过 HTTP 访问。
4. `traefik.http.services.<UNIQUE-RULE>.loadbalancer.server.port=3000` 指定服务内部使用的端口。
**注意**:将 `<UNIQUE-RULE>` 替换为每个服务的唯一标识符例如frontend-app、backend-app 等)。
## 重要考虑事项
1. **端口暴露**:使用 `expose` 而不是 `ports` 来暴露主机机器的端口。这确保端口不会暴露给主机机器。
2. **DNS 配置**:确保您在 DNS 提供商设置中创建指向您域名的 `A` 记录。
3. **HTTPS**:对于 HTTPS您可以使用 Let's Encrypt 或其他 SSL/TLS 证书。
## 部署
有了这些配置,您现在可以使用 Docker Compose 部署您的应用程序。此设置应足以通过 Traefik 使用自定义域路由启动和运行您的服务。
## SSL 证书和进一步配置
如果您有关于何时使用 Let's Encrypt 或其他 SSL 证书选项的问题,您可以在以下资源中找到更详细的信息:
1. [证书](/docs/core/domain/certificates)
2. [Docker Compose 域名](/docs/core/domain/docker-compose-setup)
3. [Docker Compose 示例](/docs/core/docker-compose/example)
如果您有任何进一步的问题或需要帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc),我们很乐意为您提供帮助。

View File

@ -0,0 +1,107 @@
---
title: "示例"
description: "学习如何在 Dokploy 中使用 Docker Compose"
---
## 教程
在本教程中,我们将使用 Docker Compose 创建一个简单的应用程序,并将流量路由到可访问的域名。
### 步骤
1. 创建一个新项目。
2. 创建一个新服务 `Compose`,并选择 Compose 类型为 `Docker Compose`。
3. Fork 这个仓库:[Repo](https://github.com/Dokploy/docker-compose-test)。
4. 选择提供商类型GitHub 或 Git。
5. 选择仓库:`Dokploy/docker-compose-test`。
6. 选择分支:`main`。
7. 将 Compose 路径设置为 `./docker-compose.yml` 并保存。
![Docker compose configuration](/assets/images/compose/setup.png)
### 更新你的 `docker-compose.yml`
在现有的 `docker-compose.yml` 文件中添加以下内容:
1. 为每个服务添加网络 `dokploy-network`。
2. 添加 Traefik 标签,使服务能够通过域名访问。
示例:
让我们修改以下的 Compose 文件,使其能够在 Dokploy 中运行:
```yaml
version: "3"
services:
next-app:
build:
context: ./next-app
dockerfile: prod.Dockerfile
args:
ENV_VARIABLE: ${ENV_VARIABLE}
NEXT_PUBLIC_ENV_VARIABLE: ${NEXT_PUBLIC_ENV_VARIABLE}
restart: always
ports:
- 3000:3000
networks:
- my_network
networks:
my_network:
external: true
```
更新版本,添加了 dokploy-network 和 Traefik 标签:
import { Callout } from 'fumadocs-ui/components/callout';
<Callout type="warn">
不要为每个服务设置 container_name 属性,否则会导致日志、指标和其他功能出现问题。
</Callout>
{/* :::danger
不要为每个服务设置 container_name 属性,否则会导致日志、指标和其他功能出现问题。
::: */}
```yaml
version: "3"
services:
next-app:
build:
context: ./next-app
dockerfile: prod.Dockerfile
args:
ENV_VARIABLE: ${ENV_VARIABLE}
NEXT_PUBLIC_ENV_VARIABLE: ${NEXT_PUBLIC_ENV_VARIABLE}
restart: always
ports:
- 3000
networks:
- dokploy-network
labels:
- "traefik.enable=true"
- "traefik.http.routers.<unique-name>.rule=Host(`your-domain.com`)"
- "traefik.http.routers.<unique-name>.entrypoints=websecure"
- "traefik.http.routers.<unique-name>.tls.certResolver=letsencrypt"
- "traefik.http.services.<unique-name>.loadbalancer.server.port=3000"
networks:
dokploy-network:
external: true
```
确保将 A 记录指向您希望用于服务的域名。
<ImageZoom src="/assets/images/compose/domain.png" width={800} height={630} alt='home og image' className="rounded-lg" />
通过点击 "deploy" 部署应用程序,等待部署完成。然后给 Traefik 大约 10 秒的时间来生成证书。之后,您就可以通过设置的域名访问应用程序。
<ImageZoom src="/assets/images/compose/application.png" width={800} height={630} alt='home og image' className="rounded-lg" />
**提示**:
1. 为每个路由器设置唯一名称:`traefik.http.routers.<unique-name>`
2. 为每个服务设置唯一名称:`traefik.http.services.<unique-name>`
3. 确保网络已连接到 `dokploy-network`
4. 将入口点设置为 websecure并将证书解析器设置为 letsencrypt以生成证书。

View File

@ -0,0 +1,76 @@
---
title: "概述"
description: "了解如何使用 Docker Compose 和 Dokploy"
---
import { Callout } from "fumadocs-ui/components/callout";
Dokploy 集成了 Docker Compose 和 Docker Stack以提供灵活的部署解决方案。无论您是在本地开发还是进行大规模部署Dokploy 都能通过这些强大的 Docker 工具简化应用管理。
### 配置方法
Dokploy 提供两种创建 Docker Compose 配置的方法:
- **Docker Compose**:适用于标准 Docker Compose 配置。
- **Stack**:旨在使用 Docker Swarm 进行应用编排。请注意,在此模式下,一些 Docker Compose 功能(例如 `build`)不可用。
### 一般
配置代码来源、应用构建方式,并管理部署、更新、删除应用及停止应用等操作。
### 环境
Dokploy 内置的代码编辑器允许您为 Docker Compose 文件指定环境变量。默认情况下Dokploy 会在指定的 Docker Compose 文件路径中创建 `.env` 文件。
### 监控
在 Dokploy 中可以单独监控每个服务。如果您的应用包含多个服务,可以单独监控每个服务,以确保最佳性能。
### 日志
通过 Dokploy 日志查看器访问每个服务的详细日志,这可以帮助排除故障并确保服务的稳定性。
### 部署
您可以查看应用的最近 10 次部署。当您实时部署应用时,将创建一个新的部署记录,并逐渐显示应用的构建过程。
我们还提供一个按钮,可以取消排队中的部署。请注意,正在进行的部署无法取消。
我们提供了一个 webhook以便您可以通过推送到 GitHub、Gitea、GitLab、Bitbucket 仓库来触发自己的部署。
### 高级
本节为经验丰富的用户提供高级配置选项。包括在容器内自定义命令和卷的工具。
- **命令**Dokploy 定义了一个命令来运行 Docker Compose 文件,确保通过 UI 完全控制。不过,您可以向命令添加标志或选项。
- **卷**:为了确保数据在部署之间持久化,配置应用的存储卷。
<ImageZoom
src="/assets/images/compose/overview.png"
width={800}
height={630}
quality={100}
priority
alt="首页 og 图片"
className="rounded-lg"
/>
<Callout title="卷">
Docker 卷是一种持久化 Docker 容器生成和使用的数据的方式。它们对于在容器重启之间维护数据或在不同容器之间共享数据尤其有用。
要将卷绑定到主机,可以在您的 docker-compose.yml 文件中使用以下语法,但这种方式在新部署时会清理卷:
```yaml
volumes:
- "/folder:/path/in/container" ❌
```
建议使用 ../files 文件夹,以确保您的数据在部署之间保持持久。例如:
```yaml
volumes:
- "../files/my-database:/var/lib/mysql" ✅
- "../files/my-configs:/etc/my-app/config" ✅
```
</Callout>

View File

@ -0,0 +1,40 @@
---
title: "提供商"
description: "了解如何在 Dokploy 中使用 Docker Compose。"
---
Dokploy 提供几种部署方法,使得无论您是使用 GitHub、任何 Git 提供商、原始方法还是自动部署,流程都更加简化。
- GitHub
- Git任何 Git 提供商)
- 原始方法
## GitHub
通过 GitHub 部署非常简单:
1. 在 `/dashboard/settings/server` 中配置您的 GitHub 存储库。
2. 在创建应用程序时Dokploy 会自动检索可用的存储库和分支。
## Git
对于来自任何 Git 存储库的部署,无论是公共的还是私有的,您可以使用 SSH 或 HTTPS
1. 输入存储库 URL。
2. 指定您希望部署的分支。
### 私有存储库
对于私有存储库,请使用 SSH 进行身份验证。我们提供一个锁定图标以生成 SSH 密钥。
<ImageZoom src="/assets/dokploy-ssh-compose.png" width={800} height={630} className="rounded-lg"/>
然后,您可以复制 SSH 密钥并将其粘贴到您账户的设置中。
<ImageZoom src="/assets/private-repository.png" width={800} height={630} className="rounded-lg"/>
这使您能够从私有存储库中拉取代码,这种方法几乎适用于所有提供商。
## 原始方法
您可以直接在代码编辑器中指定 Docker Compose 文件并触发部署。

View File

@ -0,0 +1,59 @@
---
title: "证书"
description: "了解如何为 Dokploy 面板设置证书"
---
import { Callout } from 'fumadocs-ui/components/callout';
在为 Dokploy 使用域名时,我们提供三种证书选项:
- 不使用 (`None`)
- 使用免费的 SSL 证书(来自 [Let's Encrypt](https://letsencrypt.org/)
- 使用自定义 SSL 证书
## 不使用None
选择 `None` 意味着我们不会分配 `tlsResolver`,因此你的 DNS 提供商可以从他们的服务器实现 SSL 证书。
<Callout title="Cloudflare">当你在 Cloudflare 上注册域名时Cloudflare 会自动分配 SSL 证书,因此你需要在 Dokploy 中选择 `None` 并禁用 HTTPS。</Callout>
## Let's Encrypt
使用来自 [Let's Encrypt](https://letsencrypt.org/) 的免费 SSL 证书是最简单的选项,但它有一些限制:
1. **速率限制**:在特定时间范围内,每个域名和账户可发放的证书数量有限制。
2. **有效期短**:证书仅有效 90 天,但 Traefik 会自动为你续期。
3. **通配符证书**:虽然支持,但获取通配符证书需要 DNS-01 验证,可能会更复杂。
4. **仅域名验证**Let's Encrypt 仅提供域名验证DV证书这意味着它们只验证域名所有权而不验证背后的组织。
5. **无担保**:证书没有任何担保或责任覆盖,可能不适用于所有用例。
### 其他提供商
对于由 Cloudflare 以外的提供商管理的域名,流程非常简单:
1. 在 Dokploy 中选择 `Let's Encrypt` 并启用 `HTTPS`。
2. 确保 DNS 记录已正确设置为指向你的服务器。
3. 其余工作由 Traefik 处理,证书应在大约 20 秒内生成。
### Cloudflare 设置
如果你的域名由 Cloudflare 管理:
1. 确保你的域名在 Cloudflare 中设置为 `Full (Strict)` 模式。
2. 在 Dokploy 中选择 `Let's Encrypt` 并启用 `HTTPS`。
Cloudflare 配置步骤:
1. 登录 Cloudflare 并导航至 `Websites` -> `Your Domain` -> `SSL/TLS` -> `Overview`。
2. 你会看到四种模式Off、Flexible、Full、Full (Strict))。
3. 要使用 Let's Encrypt选择 `Full (Strict)`。
<Callout>
**注意**:在应用程序中创建域名时,确保使用 `Let's Encrypt` 证书并启用 `HTTPS`。证书的生成通常需要大约 20 秒。如果证书未生成,请重启 Traefik 并重试。
</Callout>
## 自定义 SSL
我们提供了创建证书并让 Traefik 引用它的方法,但这并不意味着它会自动生效。你需要调整 Traefik 配置以使用它。
你可以在[这里](https://docs.traefik.io/https/acme/#custom-ssl-certificates)阅读更多关于如何创建自定义证书的内容。

View File

@ -0,0 +1,73 @@
---
title: "Docker Compose 设置"
description: "了解如何为 Docker Compose 应用程序设置域名"
---
import { Step, Steps } from 'fumadocs-ui/components/steps';
本指南详细说明了如何为你的 Docker Compose 应用程序设置域名。
## 创建 DNS 记录
1. 添加一个 `A` 记录到你的 DNS 设置中:
- **名称:** 输入你希望指向的路径(例如,`app` 对应 `app.yourdomain.com`)。
- **值:** 输入你的服务器 IP 地址,例如 `1.2.3.4`。
## Docker Compose 域名设置
要使 Docker Compose 服务或容器通过域名访问,需要在现有的 Docker Compose 文件中添加两部分内容。
<Steps>
<Step>
添加 `dokploy-network` 网络到每个服务。
```yaml
services:
app:
image: nextjs-app
networks:
- dokploy-network
ports:
- "3000"
networks:
dokploy-network:
external: true
```
</Step>
<Step>
添加 Traefik 标签,使服务可以通过域名访问。
1. 如果你使用的是默认的 Cloudflare 配置,添加以下标签:
- `traefik.http.routers.<unique-name>.entrypoints=web`
2. 如果你使用的是 Let's Encrypt 或 Cloudflare 的 Full Strict 模式,添加以下标签:
- `traefik.http.routers.<unique-name>.entrypoints=websecure`
- `traefik.http.routers.<unique-name>.tls.certResolver=letsencrypt`
```yaml
services:
app:
image: nextjs-app
networks:
- dokploy-network
ports:
- "3000"
labels:
- "traefik.enable=true"
- "traefik.http.routers.<unique-name>.entrypoints=websecure"
- "traefik.http.routers.<unique-name>.tls.certResolver=letsencrypt"
- "traefik.http.routers.<unique-name>.rule=Host(`app.yourdomain.com`)"
- "traefik.http.services.<unique-name>.loadbalancer.server.port=3000"
networks:
dokploy-network:
external: true
```
</Step>
</Steps>
### 基本 `docker-compose.yml` 文件示例
有关基本 `docker-compose.yml` 文件的示例,请参阅 [Docker Compose Quickstart](/docs/core/docker-compose/example#tutorial) 文档。

View File

@ -0,0 +1,22 @@
---
title: "要求"
description: "查看为 Dokploy 面板配置域名的要求"
---
本指南将帮助你了解将域名分配给 Dokploy 面板或在其他应用程序(无论是 Docker Compose 还是其他)中使用的要求。
## 要求
在开始之前,请确保你已从以下提供商之一或你选择的其他提供商购买了域名:
- [Cloudflare](https://www.cloudflare.com/)
- [Namecheap](https://www.namecheap.com/domains/)
- [Name.com](https://www.name.com/)
- [GoDaddy](https://www.godaddy.com/)
- [Domain.com](https://www.domain.com/)
## 转移设置(可选)
我们建议将你的域名转移到 Cloudflare以获得免费 SSL 证书并灵活使用工具:
- [将域名转移到 Cloudflare](https://developers.cloudflare.com/registrar/get-started/transfer-domain-to-cloudflare/)

View File

@ -0,0 +1,29 @@
---
title: Astro SSR
description: 部署一个简单的 Astro SSR 应用程序。
---
此示例将部署一个简单的 Astro SSR 应用程序。
1. **在您的应用程序中使用 Git 提供商**
- 仓库:`https://github.com/Dokploy/examples.git`
- 分支:`main`
- 构建路径:`/astro-ssr`
2. **添加环境变量**
- 导航到“环境”选项卡并添加以下变量:
```cmd
NIXPACKS_START_CMD="pnpm run preview"
```
3. **点击部署**
- 通过点击部署按钮来部署您的应用程序。
4. **生成域名**
- 点击生成域名按钮。
- 将为您生成一个新域名。
- 您可以使用此域名访问您的应用程序。
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。

View File

@ -0,0 +1,27 @@
---
title: Astro
description: 部署一个简单的 Astro 应用程序。
---
此示例将部署一个简单的 Astro 应用程序。
1. **在您的应用程序中使用 Git 提供商**
- 仓库:`https://github.com/Dokploy/examples.git`
- 分支:`main`
- 构建路径:`/astro`
2. **添加环境变量**
- 导航到“环境”选项卡并添加以下变量:
```cmd
NIXPACKS_START_CMD="pnpm run preview"
```
3. **点击部署**
- 通过点击部署按钮来部署您的应用程序。
4. **生成域名**
- 点击生成域名按钮。
- 将为您生成一个新域名。
- 您可以使用此域名访问您的应用程序。
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。

View File

@ -0,0 +1,29 @@
---
title: Lit
description: 部署一个简单的 Lit 应用程序。
---
此示例将部署一个简单的 Lit 应用程序。
1. **在您的应用程序中使用 Git 提供商**
- 仓库:`https://github.com/Dokploy/examples.git`
- 分支:`main`
- 构建路径:`/lit`
2. **添加环境变量**
- 导航到“环境”选项卡并添加以下变量:
```cmd
NIXPACKS_START_CMD="pnpm run preview"
```
3. **点击部署**
- 通过点击部署按钮来部署您的应用程序。
4. **生成域名**
- 点击生成域名按钮。
- 将为您生成一个新域名。
- 您可以使用此域名访问您的应用程序。
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。

View File

@ -0,0 +1,22 @@
---
title: Nest.js
description: 部署一个简单的 Nest.js 应用程序。
---
此示例将部署一个简单的 Nest.js 应用程序。
1. **在您的应用程序中使用 Git 提供商**
- 仓库:`https://github.com/Dokploy/examples.git`
- 分支:`main`
- 构建路径:`/nestjs`
2. **点击部署**
- 通过点击部署按钮来部署您的应用程序。
3. **生成域名**
- 点击生成域名按钮。
- 将为您生成一个新域名。
- 您可以使用此域名访问您的应用程序。
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。

View File

@ -0,0 +1,22 @@
---
title: Next.js
description: 部署一个简单的 Next.js 应用程序。
---
此示例将部署一个简单的 Next.js 应用程序。
1. **在您的应用程序中使用 Git 提供商**
- 仓库:`https://github.com/Dokploy/examples.git`
- 分支:`main`
- 构建路径:`/nextjs`
2. **点击部署**
- 通过点击部署按钮来部署您的应用程序。
3. **生成域名**
1. 点击生成域名按钮。
2. 将为您生成一个新域名。
3. 您可以使用此域名访问您的应用程序。
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。

View File

@ -0,0 +1,28 @@
---
title: Preact
description: 部署一个简单的 Preact 应用程序。
---
此示例将部署一个简单的 Preact 应用程序。
1. **在您的应用程序中使用 Git 提供商**
- 仓库:`https://github.com/Dokploy/examples.git`
- 分支:`main`
- 构建路径:`/preact`
2. **添加环境变量**
- 导航到“环境”选项卡,并添加以下变量:
```cmd
NIXPACKS_START_CMD="pnpm run preview"
```
3. **点击部署**
- 通过点击部署按钮来部署您的应用程序。
4. **生成域名**
- 点击生成域名按钮。
- 将为您生成一个新域名。
- 您可以使用此域名访问您的应用程序。
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。

View File

@ -0,0 +1,28 @@
---
title: Qwik
description: 部署一个简单的 Qwik 应用程序。
---
此示例将部署一个简单的 Qwik 应用程序。
1. **在您的应用程序中使用 Git 提供商**
- 仓库:`https://github.com/Dokploy/examples.git`
- 分支:`main`
- 构建路径:`/qwik`
2. **添加环境变量**
- 导航到“环境”选项卡,并添加以下变量:
```cmd
NIXPACKS_START_CMD="pnpm run preview"
```
3. **点击部署**
- 通过点击部署按钮来部署您的应用程序。
4. **生成域名**
- 点击生成域名按钮。
- 将为您生成一个新域名。
- 您可以使用此域名访问您的应用程序。
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。

View File

@ -0,0 +1,22 @@
---
title: Remix
description: 部署一个简单的 Remix 应用程序。
---
此示例将部署一个简单的 Remix 应用程序。
1. **在您的应用程序中使用 Git 提供商**
- 仓库:`https://github.com/Dokploy/examples.git`
- 分支:`main`
- 构建路径:`/remix`
2. **点击部署**
- 通过点击部署按钮来部署您的应用程序。
3. **生成域名**
- 点击生成域名按钮。
- 将为您生成一个新域名。
- 您可以使用此域名访问您的应用程序。
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。

View File

@ -0,0 +1,28 @@
---
title: Solid.js
description: 部署一个简单的 Solid.js 应用程序。
---
此示例将部署一个简单的 Solid.js 应用程序。
1. **在您的应用程序中使用 Git 提供商**
- 仓库:`https://github.com/Dokploy/examples.git`
- 分支:`main`
- 构建路径:`/solidjs`
2. **添加环境变量**
- 导航到“环境”选项卡并添加以下变量:
```cmd
NIXPACKS_START_CMD="pnpm run serve"
```
3. **点击部署**
- 通过点击部署按钮来部署您的应用程序。
4. **生成域名**
- 点击生成域名按钮。
- 将为您生成一个新域名。
- 您可以使用此域名访问您的应用程序。
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。

View File

@ -0,0 +1,28 @@
---
title: Svelte
description: 部署一个简单的 Svelte 应用程序。
---
此示例将部署一个简单的 Svelte 应用程序。
1. **在您的应用程序中使用 Git 提供商**
- 仓库:`https://github.com/Dokploy/examples.git`
- 分支:`main`
- 构建路径:`/svelte`
2. **添加环境变量**
- 导航到“环境”选项卡并添加以下变量:
```cmd
NIXPACKS_START_CMD="pnpm run preview"
```
3. **点击部署**
- 通过点击部署按钮来部署您的应用程序。
4. **生成域名**
- 点击生成域名按钮。
- 将为您生成一个新域名。
- 您可以使用此域名访问您的应用程序。
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。

View File

@ -0,0 +1,28 @@
---
title: Vite React
description: 部署一个简单的 Vite React 应用程序。
---
此示例将部署一个简单的 Vite React 应用程序。
1. **在您的应用程序中使用 Git 提供商**
- 仓库:`https://github.com/Dokploy/examples.git`
- 分支:`main`
- 构建路径:`/vite`
2. **添加环境变量**
- 导航到“环境”选项卡并添加以下变量:
```cmd
NIXPACKS_START_CMD="pnpm run preview"
```
3. **点击部署**
- 通过点击部署按钮来部署您的应用程序。
4. **生成域名**
- 点击生成域名按钮。
- 将为您生成一个新域名。
- 您可以使用此域名访问您的应用程序。
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。

View File

@ -0,0 +1,28 @@
---
title: Vue.js
description: 部署一个简单的 Vue.js 应用程序。
---
此示例将部署一个简单的 Vue.js 应用程序。
1. **在您的应用程序中使用 Git 提供商**
- 仓库:`https://github.com/Dokploy/examples.git`
- 分支:`main`
- 构建路径:`/vuejs`
2. **添加环境变量**
- 导航到“环境”选项卡并添加以下变量:
```cmd
NIXPACKS_START_CMD="pnpm run preview"
```
3. **点击部署**
- 通过点击部署按钮来部署您的应用程序。
4. **生成域名**
- 点击生成域名按钮。
- 将为您生成一个新域名。
- 您可以使用此域名访问您的应用程序。
如果您需要进一步的帮助,请加入我们的 [Discord 服务器](https://discord.com/invite/2tBnJ3jDJc)。

View File

@ -2,33 +2,63 @@
"title": "Core",
"root": true,
"pages": [
"---快速入门---",
"---入门---",
"get-started/introduction",
"get-started/installation",
"get-started/reset-password",
"get-started/uninstall",
"get-started/architecture",
"get-started/features",
"get-started/installation",
"get-started/manual-installation",
"get-started/reset-password",
"get-started/uninstall",
"---域名---",
"domain/requirements",
"domain/certificates",
"domain/web-domain-setup",
"domain/application-setup",
"domain/docker-compose-setup",
"---服务器---",
"server/overview",
"server/server-configuration",
"---应用---",
"server/profile",
"server/appearance",
"server/s3-destination",
"server/certificates",
"server/users",
"server/cluster",
"---应用程序---",
"application/overview",
"application/providers",
"application/build-type",
"application/domains",
"application/auto-deploy",
"application/advanced",
"---数据库---",
"databases/overview",
"databases/backups",
"---容器编排---",
"databases/connection",
"---Docker Compose---",
"docker-compose/overview",
"docker-compose/example",
"docker-compose/providers",
"docker-compose/auto-deploy",
"docker-compose/domains",
"docker-compose/example",
"docker-compose/templates",
"---模板---",
"templates/overview",
"--- traefik---",
"---示例---",
"examples/nextjs",
"examples/vuejs",
"examples/vite-react",
"examples/nestjs",
"examples/svelte",
"examples/remix",
"examples/qwik",
"examples/preact",
"examples/solidjs",
"examples/astro",
"examples/astro-ssr",
"examples/go-fiber",
"examples/lit",
"---Traefik---",
"traefik/overview",
"---Docker---",
"docker/overview",
@ -38,7 +68,9 @@
"cluster/overview",
"---部署---",
"deployments/oracle-cloud",
"---其它---",
"extra/comparison"
"---附加内容---",
"extra/comparison",
"---故障排除---",
"troubleshooting/overview"
]
}

View File

@ -0,0 +1,12 @@
---
title: 外观
description: '调整服务器界面的视觉外观。'
---
外观部分允许您自定义服务器界面的视觉外观。
## 主题
1. **明亮**: 选择明亮主题。
2. **黑暗**: 选择黑暗主题。
3. **系统**: 选择系统主题。

View File

@ -0,0 +1,24 @@
---
title: 证书
description: '管理 SSL/TLS 证书。'
---
import { Callout } from 'fumadocs-ui/components/callout';
证书部分允许您高效管理 SSL/TLS 证书。
## 操作
- **创建**: 创建一个新的证书。
- **删除**: 删除现有的证书。
### 创建证书
要创建一个新的证书,请填写以下详细信息的表单:
- **名称**: 输入证书的名称(可以是您选择的任何名称)。
- **证书数据**: 提供证书的详细信息。
- **私钥**: 输入私钥。
<Callout>
此操作将在服务器上创建证书。有关更详细的配置和管理,请使用 `Traefik` 选项卡。
</Callout>

View File

@ -0,0 +1,86 @@
---
title: 集群(高级)
description: '管理服务器集群设置。'
---
在 Dokploy 中部署应用程序时,所有应用程序都在同一个节点上运行。如果您希望在不同的服务器上运行应用程序,可以使用集群功能。
使用集群的理念是允许每台服务器托管不同的应用程序,并通过 Traefik 和负载均衡器将流量从 Dokploy 服务器重定向到您选择的服务器。
## 服务器扩展方法
扩展服务器的主要方式有两种:
1. **垂直扩展**: 这涉及向同一 Dokploy 服务器添加更多资源,例如更多的 CPU 和 RAM。
2. **水平扩展**: 这种方法涉及添加多台服务器。
### 垂直扩展
我们建议使用垂直扩展来提高应用程序的处理能力,因为这更快,并且需要更少的额外配置。
要进行垂直扩展,您需要向 Dokploy 服务器添加更多资源,即更多的 CPU 和 RAM。这可以通过您的 VPS 提供商完成。
理想情况下,首先检查您能够处理的垂直扩展限制。如果您发现不足,可以考虑水平扩展。
### 水平扩展
水平扩展通常需要更多的额外配置并涉及添加更多服务器VPS
如果您选择第二个选项,我们将继续配置不同的服务器。
## 集群设置的要求
1. 运行中的 Dokploy 服务器(管理器)。
2. 至少有一台与 Dokploy 服务器架构相同的额外服务器。
3. 拥有一个 Docker 注册表。
## 配置 Docker 注册表
首先,我们需要配置一个 Docker 注册表,因为在部署应用程序时,您需要一个注册表来在其他服务器上部署和下载应用程序镜像。
我们提供两种配置注册表的方法:
1. **外部注册表**: 使用您想要的任何注册表。
2. **自托管注册表**: 我们为您创建和配置自托管注册表。
### 外部注册表
您可以使用任何注册表,如 Docker Hub、DigitalOcean Spaces、ECR 或您选择的注册表。确保输入正确的凭据并在添加注册表之前测试连接。
### 自托管注册表
我们将询问您以下三件事:
1. 用户名。
2. 密码。
3. 域名。确保此域名指向 Dokploy VPS。
设置完成后,集群部分将解锁。
## 理解 Docker Swarm
我们建议您阅读以下信息,以更好地理解 Docker Swarm 的工作原理及其调度: [Docker Swarm 文档](https://docs.docker.com/engine/swarm/) 以及其架构: [Swarm 模式的工作原理](https://docs.docker.com/engine/swarm/how-swarm-mode-works/nodes/)。
## 管理您的集群
现在您可以执行两项操作:
1. 添加工作节点。
2. 添加管理节点。
管理节点有两个功能:
1. 管理集群状态。
2. 调度服务。
工作节点的唯一目的是运行容器,按照管理节点创建或设定的规则进行操作。
## 添加节点
您可以点击“添加节点”按钮,系统将显示您需要遵循的说明,以将您的服务器作为节点添加并加入 Dokploy 管理节点。
<ImageZoom src="/assets/add-node.png" width={800} height={630} className="rounded-lg"/>
按照说明操作后,工作节点或管理节点将出现在表格中。
<ImageZoom src="/assets/nodes.png" width={800} height={630} className="rounded-lg"/>

View File

@ -0,0 +1,24 @@
---
title: 个人资料
description: '自定义您的个人资料设置,包括电子邮件、密码和头像。'
---
个人资料页面允许你自定义账户设置。
## 账户设置
1. **更改邮箱**:更新你的邮箱地址。
2. **更改密码**:更新你的密码。
3. **更改头像**:更新你的个人资料图片。
## 双因素认证 (2FA)
通过使用 Google Authenticator 应用程序启用双因素认证来增强账户安全性。
## API/CLI 访问
你可以生成新的 API 密钥以访问 API/CLI。
1. **生成 API 密钥**:创建一个新的 API 密钥。
2. **复制 API 密钥**:复制生成的 API 密钥以供使用。
3. **查看 API 文档**:访问 Swagger API 文档,获取详细的 API 使用信息。

View File

@ -0,0 +1,29 @@
---
title: S3 目标
description: '配置 S3 桶作为备份存储。这包括设置访问密钥、秘密密钥、桶名称、区域和端点。'
---
import { Callout } from 'fumadocs-ui/components/callout';
S3 目标部分对于备份数据库至关重要。
## 操作:
1. **创建**: 创建一个新的 S3 目标。
2. **删除**: 删除一个 S3 目标。
3. **编辑**: 编辑一个 S3 目标。
4. **测试**: 测试一个 S3 目标。
### 创建
要创建一个新的 S3 桶,您需要填写表单。
- **名称**: 这可以是您想要的任何名称,它将是桶的名称。
- **访问密钥**: 这是您用来访问桶的访问密钥。
- **秘密密钥**: 这是您用来访问桶的秘密密钥。
- **桶**: 这是您将用来访问桶的桶名称。
- **区域**: 这是您将用来访问桶的区域。
- **端点**: 这是您将用来访问桶的端点。
<Callout>
有一个按钮 `测试`,用于测试与您的桶的连接,如果正确,它会显示成功消息。
</Callout>

View File

@ -0,0 +1,25 @@
---
title: 用户
description: '管理 Dokploy 中的用户角色和权限。每个实例仅限一个管理员角色。'
---
import { Callout } from 'fumadocs-ui/components/callout';
在 Dokploy 中管理用户角色和权限。请注意,每个实例仅允许一个管理员角色。
## 权限
Dokploy 提供多种权限,以有效管理您的用户:
- **创建项目**: 允许用户创建新项目。
- **创建服务**: 允许用户创建新应用或数据库。
- **访问 Traefik 文件选项卡**: 允许用户访问 Traefik 文件选项卡。
- **删除项目**: 允许用户删除项目。
- **删除服务**: 允许用户删除服务。
- **访问 Docker 选项卡**: 允许用户访问 Docker 选项卡。
- **访问 API/CLI**: 允许用户访问 API/CLI包括 Swagger 路由。
您还可以向特定用户授予访问特定项目或服务的权限。
### 项目权限
根据您的项目和服务,您可以向特定用户分配权限,以便他们访问特定项目或服务。

View File

@ -0,0 +1,6 @@
---
title: 概述
description: 解决使用 Dokploy 时出现的最常见问题。
---
正在进行中