mirror of
https://github.com/Dokploy/website
synced 2025-06-26 18:16:01 +00:00
feat: migration to fumadocs 14
This commit is contained in:
@@ -1,18 +0,0 @@
|
||||
---
|
||||
title: 应用程序
|
||||
description: 使用 Dokploy CLI 管理应用程序的指南
|
||||
---
|
||||
|
||||
|
||||
Dokploy CLI 可用于创建、部署和管理应用程序。
|
||||
|
||||
## 要求
|
||||
|
||||
需要先使用 Dokploy CLI 进行身份验证。
|
||||
|
||||
## 命令
|
||||
|
||||
1. `dokploy app create` - 创建一个新应用程序。
|
||||
2. `dokploy app delete` - 删除一个应用程序。
|
||||
3. `dokploy app deploy` - 部署一个应用程序。
|
||||
4. `dokploy app stop` - 停止一个正在运行的应用程序。
|
||||
@@ -1,25 +0,0 @@
|
||||
---
|
||||
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` - 验证访问令牌是否有效。
|
||||
@@ -1,43 +0,0 @@
|
||||
---
|
||||
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 数据库。
|
||||
@@ -1,16 +0,0 @@
|
||||
---
|
||||
title: 项目
|
||||
description: 使用 Dokploy CLI 管理项目的指南
|
||||
---
|
||||
|
||||
Dokploy CLI 可用于创建、部署和管理项目。
|
||||
|
||||
## 需求
|
||||
|
||||
需要先进行 Dokploy CLI 的身份验证。
|
||||
|
||||
## 命令
|
||||
|
||||
1. `dokploy project create` - 创建一个新项目。
|
||||
2. `dokploy project info` - 获取有关项目的信息。
|
||||
3. `dokploy project list` - 列出所有项目。
|
||||
@@ -1,23 +0,0 @@
|
||||
---
|
||||
title: 介绍
|
||||
description: 使用 Dokploy 命令行界面的指南
|
||||
---
|
||||
|
||||
Dokploy CLI 是一个用于远程管理您的 Dokploy 服务器的命令行工具。它简化了应用程序和数据库的创建、部署和管理。
|
||||
|
||||
## 安装
|
||||
|
||||
```bash
|
||||
npm install -g @dokploy/cli
|
||||
```
|
||||
|
||||
## 用法
|
||||
|
||||
```bash
|
||||
dokploy COMMAND
|
||||
```
|
||||
要获取特定命令的帮助:
|
||||
|
||||
```bash
|
||||
dokploy COMMAND --help
|
||||
```
|
||||
@@ -1,13 +0,0 @@
|
||||
{
|
||||
"title": "CLI",
|
||||
"root": true,
|
||||
"pages": [
|
||||
"---开始使用---",
|
||||
"index",
|
||||
"---命令---",
|
||||
"commands/authentication",
|
||||
"commands/project",
|
||||
"commands/application",
|
||||
"commands/databases"
|
||||
]
|
||||
}
|
||||
@@ -1,166 +0,0 @@
|
||||
---
|
||||
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 强大的基于规则的配置系统定义复杂的路由、负载均衡和安全配置。
|
||||
@@ -1,85 +0,0 @@
|
||||
---
|
||||
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。
|
||||
@@ -1,32 +0,0 @@
|
||||
---
|
||||
title: 构建类型
|
||||
description: "了解 Dokploy 中可用的不同构建类型,包括 Nixpack、Dockerfile 和 Building pack 选项。"
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
|
||||
## 构建类型
|
||||
|
||||
Dokploy 提供了三种不同的构建类型来部署应用程序,每种类型都适合不同的开发需求和偏好。
|
||||
|
||||
### Nixpacks
|
||||
|
||||
这是 Dokploy 中的默认构建类型。当您选择 Nixpack 时,Dokploy 会将您的应用程序构建为 Nixpack,该 Nixpack 针对易用性和效率进行了优化。
|
||||
|
||||
### Dockerfile
|
||||
|
||||
如果您的项目包含 Dockerfile,您可以指定其路径。 Dokploy 将使用此 Dockerfile 直接构建您的应用程序,让您完全控制构建环境和依赖项。
|
||||
|
||||
### Buildpack
|
||||
|
||||
Dokploy 支持两种类型的构建包:
|
||||
|
||||
- **Heroku**: 这些构建包改编自 Heroku 流行的云平台,旨在兼容性和易于迁移。
|
||||
- **Paketo**: 提供利用现代标准和实践来构建应用程序的云原生构建包。
|
||||
|
||||
<Callout>
|
||||
**Tip:**
|
||||
我们建议使用“Nixpack”构建类型,因为它是大多数应用程序最简单、最常用的选项。
|
||||
</Callout>
|
||||
|
||||
通过选择适当的构建类型,您可以定制部署过程,以最适合您的应用程序的要求和您的操作偏好。
|
||||
@@ -1,46 +0,0 @@
|
||||
---
|
||||
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 可以根据域名配置内部将流量引导到容器内的指定端口。
|
||||
@@ -1,41 +0,0 @@
|
||||
---
|
||||
title: 概述
|
||||
description: "探索 Dokploy 中可用的多种部署方法,包括 GitHub、Git、Docker 以及通过 webhook 的自动化部署。"
|
||||
---
|
||||
|
||||
Dokploy 提供了多种部署应用程序的方法,无论您使用 GitHub、任何 Git 提供商、Docker 还是自动化部署,都可以简化流程。
|
||||
|
||||
- Github
|
||||
- Git (Any Git Provider)
|
||||
- Docker
|
||||
|
||||
## GitHub
|
||||
|
||||
通过 GitHub 部署很简单:
|
||||
|
||||
1. 在以下配置您的 GitHub 存储库 `/dashboard/settings/server`.
|
||||
2. 创建应用程序时,Dokploy 会自动加载可用的存储库和分支。
|
||||
|
||||
## Git
|
||||
|
||||
对于来自任何 Git 存储库(公共或私有)的部署,您可以使用 SSL 或 HTTPS:
|
||||
|
||||
1. 提供存储库 URL。
|
||||
2. 指定您要部署的分支。
|
||||
|
||||
## Docker
|
||||
|
||||
对于 Docker 部署:
|
||||
|
||||
- 指定 Docker 镜像。对于私人存储库,您需要提供用户名和密码。
|
||||
|
||||
## 自动部署
|
||||
|
||||
设置自动部署:
|
||||
|
||||
1. 导航至`deployments`选项卡并复制`Webhook URL`。
|
||||
2. 在 Git 提供商的设置中,将此 URL 粘贴到 Webhook URL 字段中。
|
||||
3. 选择应该触发部署的事件,例如`Push`。
|
||||
4. 配置后,任何指定的操作(例如推送新提交)都将自动触发部署。
|
||||
|
||||
Dokploy 支持 GitHub、GitLab、Bitbucket、Gitea 和 DockerHub 的 webhook。
|
||||
@@ -1,42 +0,0 @@
|
||||
---
|
||||
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 镜像。对于私有仓库,输入用户名和密码。
|
||||
@@ -1,26 +0,0 @@
|
||||
---
|
||||
title: 备份
|
||||
description: "了解如何在 Dokploy 中设置和管理数据库的备份,并提供 S3 存储桶中的存储选项。"
|
||||
---
|
||||
|
||||
Dokploy 提供了一个集成的解决方案来备份您的数据库,确保数据安全和恢复能力。
|
||||
|
||||
## 备份数据库
|
||||
|
||||
要配置数据库备份,请导航至 Dokploy 仪表板中的 `Backup` 选项卡。以下是您需要设置的内容:
|
||||
|
||||
- **Select Destination S3 Bucket(选择备份位置 S3 桶)**: 指定备份将存储在哪里。桶可以在`/dashboard/settings/destinations`路由中配置。
|
||||
- **Database Name(数据库名称)**: 输入要备份的数据库的名称。
|
||||
- **Schedule Cron(定时 cron)**: 使用 cron 语法定义备份的时间表。
|
||||
- **Prefix(前缀)**: 选择将备份存储在您的存储桶中所使用的前缀。
|
||||
- **Enabled(启用)**: 切换备份是否处于活动状态。 默认设置已启用。
|
||||
|
||||
### 测试您的备份配置
|
||||
|
||||
要确保正确配置备份设置:
|
||||
|
||||
1. 点击 `Test` 按钮.
|
||||
2. 这将启动对您选择的 S3 存储桶的测试备份。
|
||||
3. 检查桶以查看测试备份的结果。
|
||||
|
||||
此功能通过在依赖备份过程进行操作备份之前验证您的备份过程是否正确设置,从而让您安心。
|
||||
@@ -1,32 +0,0 @@
|
||||
---
|
||||
title: 连接
|
||||
description: "了解如何使用 Dokploy 连接到您的数据库。"
|
||||
---
|
||||
|
||||
本节解释如何为 Dokploy 中的应用程序配置数据库访问,包括内部网络中的连接和可以通过互联网访问的外部连接。
|
||||
|
||||
### 内部凭证
|
||||
|
||||
用于从同一网络连接到数据库,而无需将数据库暴露于互联网。
|
||||
|
||||
- **用户**:数据库访问的用户名。
|
||||
- **密码**:数据库访问的安全密码。
|
||||
- **数据库名称**:要连接的数据库名称。
|
||||
- **内部主机**:网络内数据库的主机名或内部标识符。
|
||||
- **内部端口(容器)**:在容器内连接到数据库所使用的端口。
|
||||
- **内部连接 URL**:用于内部连接数据库的完整连接字符串。
|
||||
|
||||
### 外部凭证
|
||||
|
||||
使数据库可以通过互联网访问,便于远程管理或外部应用程序。
|
||||
|
||||
- **外部端口(互联网)**:分配一个当前未被其他服务使用的端口,以便将数据库外部暴露。
|
||||
|
||||
#### 配置外部访问的步骤
|
||||
1. 确保外部端口可用,并且与其他服务不冲突。
|
||||
2. 输入要用于暴露数据库的外部端口。
|
||||
3. 系统将自动生成外部连接 URL,可用于通过互联网访问数据库的任何数据库管理工具,如 phpMyAdmin、MySQL Workbench、PgAdmin 等。
|
||||
|
||||
### 重要提示
|
||||
|
||||
出于安全原因,应对在同一网络或环境中运行的应用程序使用内部凭证,以防止未经授权的访问。外部凭证应仅在必要时使用,并采取适当的安全措施,如 VPN 或 IP 白名单。
|
||||
@@ -1,25 +0,0 @@
|
||||
---
|
||||
title: 概述
|
||||
description: "了解如何使用Dokploy轻松创建和备份数据库,支持各种数据库系统."
|
||||
---
|
||||
|
||||
Dokploy 简化了创建和管理数据库的过程,为设置和备份提供了强大的选项。
|
||||
|
||||
## 数据库支持
|
||||
|
||||
Dokploy 目前支持一系列流行的数据库系统,确保您的项目的兼容性和灵活性:
|
||||
|
||||
- **Postgres**: 强大、符合 SQL 且高度可靠。
|
||||
- **MySQL**: 广泛使用的关系数据库以其性能和灵活性而闻名。
|
||||
- **MariaDB**: 具有额外功能和改进的性能的 SQL 的分支。
|
||||
- **MongoDB**: NoSQL 数据库以其高可扩展性和灵活性而闻名。
|
||||
- **Redis**: 内存中的键-值存储,通常用作数据库、缓存和消息代理。
|
||||
|
||||
## 部署
|
||||
|
||||
在 Dokploy 中部署数据库很简单:
|
||||
|
||||
1. 导航至 Dokploy 仪表板的数据库部分。
|
||||
2. 单击您要设置的数据库旁边的`Deploy`按钮。
|
||||
|
||||
`Deploy`按钮启动一个简化的流程,自动设置您选择的数据库,使其准备好立即使用。
|
||||
@@ -1,81 +0,0 @@
|
||||
---
|
||||
title: 自动部署
|
||||
description: 如何使用 Dokploy 自动部署您的 docker-compose 应用
|
||||
---
|
||||
|
||||
自动部署您的 docker-compose 应用到 Dokploy 可以通过两种主要方法实现:使用 Webhooks 或 Dokploy API。每种方法支持各种平台,并提供简化的部署过程。
|
||||
|
||||
## Github
|
||||
|
||||
对于 Github,我们提供无需配置的自动部署。这将在您推送到存储库时自动部署您的应用。
|
||||
|
||||
## Webhook URL
|
||||
|
||||
使用 Webhooks,您可以在源代码库中发生更改时自动部署您的 docker-compose 应用。
|
||||
|
||||
- GitHub
|
||||
- GitLab
|
||||
- Bitbucket
|
||||
- Gitea
|
||||
|
||||
### 配置步骤
|
||||
|
||||
1. **启用自动部署**:在 Dokploy 中的应用设置的常规标签中切换“自动部署”按钮。
|
||||
2. **获取 Webhook URL**:从部署日志中找到 Webhook URL。
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/webhook-url-compose.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 中配置的分支与您打算推送到的分支匹配。不匹配将导致“分支不匹配”错误。
|
||||
- 所有提供商的步骤相同。
|
||||
|
||||
## API 方法
|
||||
|
||||
通过 Dokploy API 从任何地方以编程方式部署您的应用。
|
||||
|
||||
### 使用 API 部署的步骤
|
||||
|
||||
步骤:
|
||||
|
||||
1. **生成令牌**:在 Dokploy 的个人资料设置中创建一个 API 令牌。
|
||||
2. **获取 Compose ID**:
|
||||
|
||||
```http
|
||||
curl -X 'GET' \
|
||||
'https://your-domain/api/project.all' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Authorization: Bearer <token>'
|
||||
```
|
||||
|
||||
此命令列出所有项目和服务。确定您要部署的 compose 的 composeId。
|
||||
|
||||
3. **触发部署**:
|
||||
```http
|
||||
curl -X 'POST' \
|
||||
'https://canary.dokploy.com/api/compose.deploy' \
|
||||
-H 'accept: application/json' \
|
||||
-H 'Content-Type: application/json' \
|
||||
-H 'Authorization: Bearer <token>' \
|
||||
-d '{
|
||||
"composeId": "string"
|
||||
}'
|
||||
```
|
||||
|
||||
这种 API 方法提供了灵活的、可脚本化的部署选项,适用于自动化系统或无法直接集成存储库的情况。
|
||||
通过这种方式,您可以从任何地方部署您的应用,可以使用 webhook URL 或 API。
|
||||
@@ -1,192 +0,0 @@
|
||||
---
|
||||
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),我们很乐意为您提供帮助。
|
||||
@@ -1,107 +0,0 @@
|
||||
---
|
||||
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.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,以生成证书。
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
---
|
||||
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>
|
||||
@@ -1,40 +0,0 @@
|
||||
---
|
||||
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 文件并触发部署。
|
||||
@@ -1,28 +0,0 @@
|
||||
---
|
||||
title: '架构'
|
||||
description: '概述 Dokploy 的核心架构组件。'
|
||||
---
|
||||
|
||||
了解 Dokploy 的架构对于部署和扩展应用程序至关重要。以下是核心组件的示意图:
|
||||
|
||||
<ImageZoom src="/assets/architecture.png" alt="架构示意图" width={1000} height={600} className="rounded-lg"/>
|
||||
|
||||
## 安装过程
|
||||
|
||||
安装 Dokploy 时,它会自动设置以下组件:
|
||||
|
||||
1. **Next.js 应用程序**:作为前端界面。利用 Next.js 提供集成的服务器端渲染体验,将 UI 和后端整合成一个统一的应用程序。
|
||||
2. **PostgreSQL 数据库**:作为 Dokploy 的主要数据库,因其稳健性和广泛采用而被选用。它存储所有配置和操作数据。
|
||||
3. **Redis 数据库**:用于管理部署队列。确保多个部署不会同时触发,避免服务器负载过高和潜在的冻结问题。
|
||||
4. **Traefik**:用作反向代理和负载均衡器。Traefik 促进动态路由和服务发现,通过 UI 允许声明性设置,简化配置过程。
|
||||
|
||||
## 目的和功能
|
||||
|
||||
Dokploy 架构中的每个组件都扮演着重要角色:
|
||||
|
||||
- **Next.js**:提供可扩展且易于管理的前端框架,将服务器端和客户端逻辑封装在一个平台中,简化了部署和开发工作流。
|
||||
- **PostgreSQL**:提供可靠和安全的数据存储能力。在 Dokploy 中的使用确保了所有数据库操作的一致性和高性能。
|
||||
- **Redis**:处理并发和任务调度。通过使用 Redis,Dokploy 可以高效管理部署任务,避免在同时操作期间发生冲突和服务器过载。
|
||||
- **Traefik**:增强 Docker 集成。其声明性地读取和写入 Docker 配置的能力,使 Dokploy 能够自动化和简化网络流量管理和服务发现。
|
||||
|
||||
这种结构确保了 Dokploy 不仅在部署应用程序时高效,而且在处理大规模流量和数据时也具有稳健性。
|
||||
@@ -1,100 +0,0 @@
|
||||
---
|
||||
title: '特点'
|
||||
description: '探索 Dokploy 提供的全面功能套件,优化应用程序部署和管理。'
|
||||
---
|
||||
|
||||
Dokploy 提供了一套全面的功能,旨在简化和增强应用程序部署过程。
|
||||
|
||||
## 应用程序部署
|
||||
|
||||
Dokploy 支持两种主要的应用程序部署方法:
|
||||
|
||||
1. **应用程序**:这种简单的方法允许轻松部署。对于单个应用程序而言,它提供了接近即插即用的体验。
|
||||
2. **Docker Compose**:一种更高级的选项,需要创建 Dockerfiles 和 `docker-compose.yml`。此方法提供了更大的部署设置控制权和充分利用 Docker Compose 功能的能力。
|
||||
|
||||
### 应用程序管理
|
||||
|
||||
通过以下功能管理您的应用程序:
|
||||
|
||||
**基本操作**:
|
||||
1. 部署、停止和删除应用程序。
|
||||
2. 直接在应用程序容器中打开终端。
|
||||
|
||||
**源代码和构建配置**:
|
||||
1. 选择源代码提供商(GitHub、Git、Docker)。
|
||||
2. 选择构建类型(Docker、Nixpacks、Heroku Buildpacks、Paketo Buildpacks)。
|
||||
|
||||
**环境管理**:
|
||||
1. 添加和管理环境变量。
|
||||
|
||||
**监控工具**:
|
||||
1. 监控 CPU、内存、磁盘和网络使用情况。
|
||||
|
||||
**日志**:
|
||||
1. 访问实时日志。
|
||||
|
||||
**部署**:
|
||||
1. 查看和管理部署,可以查看构建应用程序的日志。
|
||||
2. 取消排队的部署,如果您有很多部署在队列中,尤其是在您的存储库中多次推送时,您可以取消即将到来的队列,但不能取消已在运行的部署。
|
||||
|
||||
**域名管理**:
|
||||
1. 添加、删除和生成域名。
|
||||
|
||||
**高级设置**:
|
||||
1. 自定义初始命令和集群设置。
|
||||
2. 设置资源限制和管理数据持久化的卷。
|
||||
3. 配置重定向、安全标头和端口设置。
|
||||
4. 根据具体需求详细配置 Traefik。
|
||||
|
||||
### Docker Compose 管理
|
||||
|
||||
通过以下高级功能增强 Docker Compose 体验:
|
||||
|
||||
**生命周期管理**:
|
||||
1. 部署、停止和删除 Docker Compose 设置。
|
||||
2. 打开带有服务选择功能的终端。
|
||||
|
||||
**源代码配置**:
|
||||
1. 选择源代码提供商(GitHub、Git、Raw)。
|
||||
|
||||
**环境管理**:
|
||||
1. 添加和管理环境变量。
|
||||
|
||||
**监控工具**:
|
||||
1. 监控每个服务的 CPU、内存、磁盘和网络使用情况。
|
||||
|
||||
**日志**:
|
||||
1. 查看每个服务的实时日志。
|
||||
|
||||
**部署**:
|
||||
1. 查看和管理部署,可以查看构建应用程序的日志。
|
||||
2. 取消排队的部署,如果您有很多部署在队列中,尤其是在您的存储库中多次推送时,您可以取消即将到来的队列,但不能取消已在运行的部署。
|
||||
|
||||
**高级设置**:
|
||||
1. 追加命令,默认情况下我们使用内部命令构建 Docker Compose,但您可以向现有命令追加命令。
|
||||
2. 管理卷和挂载。
|
||||
|
||||
## 数据库部署
|
||||
|
||||
部署和管理各种数据库:
|
||||
|
||||
**支持的数据库**:
|
||||
1. MySQL、PostgreSQL、MongoDB、Redis、MariaDB。
|
||||
|
||||
**常规管理**:
|
||||
1. 部署、停止和删除数据库。
|
||||
2. 在数据库容器内打开终端。
|
||||
|
||||
**环境和监控**:
|
||||
1. 管理环境变量。
|
||||
2. 监控 CPU、内存、磁盘和网络使用情况。
|
||||
|
||||
**备份和日志**:
|
||||
1. 配置手动和计划备份。
|
||||
2. 查看实时日志。
|
||||
|
||||
**高级配置**:
|
||||
1. 使用自定义 Docker 镜像和初始命令。
|
||||
2. 配置卷和资源限制。
|
||||
|
||||
这些功能旨在为您的部署环境提供灵活性和控制,确保 Dokploy 满足现代应用程序部署和管理的多样化需求。
|
||||
@@ -1,72 +0,0 @@
|
||||
---
|
||||
title: "安装"
|
||||
description: "借助这本易于上手的安装指南,几分钟内即可在您的服务器上启动并运行Dokploy。"
|
||||
---
|
||||
|
||||
|
||||
## 设置您的环境
|
||||
|
||||
按照以下步骤在本地设置 Dokploy 并将其部署到您的服务器, 管理 Docker 容器和应用程序:
|
||||
|
||||
{/* create a list please of the steps */}
|
||||
|
||||
您需要按照顺序执行以下步骤:
|
||||
|
||||
1. [Virtual Private Server (VPS)](#virtual-private-server-vps)
|
||||
2. [Docker](#docker)
|
||||
|
||||
## Virtual Private Server (VPS)
|
||||
|
||||
有多个 VPS 提供商可供选择。以下是最常见的 VPS 提供商列表:
|
||||
|
||||
我们已经在两个 Linux Distros 上进行了测试:
|
||||
|
||||
- Ubuntu Server 20.04 LTS
|
||||
- Debian 10
|
||||
|
||||
### 服务商
|
||||
|
||||
- [DigitalOcean](https://www.digitalocean.com/pricing/droplets#basic-droplets)
|
||||
- [Hetzner](https://www.hetzner.com/cloud/)
|
||||
- [Linode](https://www.linode.com/es/pricing/#compute-shared)
|
||||
- [Vultr](https://www.vultr.com/pricing/#cloud-compute)
|
||||
- [Scaleway](https://www.scaleway.com/en/pricing/?tags=baremetal,available)
|
||||
- [Google Cloud](https://cloud.google.com/)
|
||||
- [AWS](https://aws.amazon.com/ec2/pricing/)
|
||||
- [阿里云](https://www.aliyun.com/)
|
||||
- [腾讯云](https://cloud.tencent.com/)
|
||||
|
||||
### 要求
|
||||
|
||||
为了确保 Dokploy 的流畅体验,您的服务器应该至少有 2 GB RAM 和 30 GB 磁盘空间。该规范有助于处理 Docker 在构建期间消耗的资源并防止系统假死。
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
|
||||
<Callout>
|
||||
|
||||
**建议:** 为了实现成本效率和可靠的服务,我们推荐 Hetzner 作为最佳物有所值的 VPS 提供商(需要信用卡)。
|
||||
|
||||
</Callout>
|
||||
|
||||
### Docker
|
||||
|
||||
Dokploy 利用 Docker,因此在您的服务器上安装 Docker 至关重要。如果尚未安装 Docker,请使用以下命令自动安装:
|
||||
|
||||
```bash
|
||||
curl -sSL https://dokploy.com/install.sh | sh
|
||||
```
|
||||
|
||||
## 完成设置
|
||||
|
||||
运行安装脚本后,Dokploy 及其依赖项将在您的服务器上设置。以下是如何完成设置并开始使用 Dokploy:
|
||||
|
||||
### 访问 Dokploy
|
||||
|
||||
打开您的网络浏览器并导航至 `http://your-ip-from-your-vps:3000`。 您将被引导到初始设置页面,在其中您可以配置 Dokploy 的管理帐号。
|
||||
|
||||
### 初始配置
|
||||
|
||||
1. **创建管理员帐号:** 填写必要的详细信息以设置您的管理员帐户。 该帐户将成为 Dokploy 的管理员帐户。
|
||||
|
||||
{/*  */}
|
||||
<ImageZoom src="/assets/images/setup.png" width={1300} height={630} alt='home og image' className="rounded-lg" />
|
||||
@@ -1,54 +0,0 @@
|
||||
---
|
||||
title: Dokploy 文档
|
||||
description: "了解如何使用Dokploy部署应用程序, Dokploy是Heroku、Vercel和Netlify的开源替代品。"
|
||||
---
|
||||
|
||||
import { Card, Cards } from 'fumadocs-ui/components/card';
|
||||
|
||||
## 欢迎来到 Dokploy
|
||||
|
||||
Dokploy 是一款稳定、易于使用的部署解决方案,旨在简化应用程序管理流程。 可将 Dokploy 视为 Heroku、Vercel 和 Netliify 等平台的免费可托管替代品, 使用稳定的 [Docker](https://www.docker.com/) 和灵活的 [Traefik](https://traefik.io/) 构建.
|
||||
|
||||

|
||||
|
||||
## 为什么选择 Dokploy?
|
||||
|
||||
- **简单:** 简单的设置、管理、部署。
|
||||
- **灵活:** 支持广泛的应用程序和数据库。
|
||||
- **开源:** 免费开源软件,可供任何人使用。
|
||||
|
||||
## 设置 Dokploy
|
||||
|
||||
开始使用 Dokploy 很简单。 遵循我们的指南有效地安装和配置您的应用程序和数据库。
|
||||
|
||||
## 开始
|
||||
|
||||
跟随我,一起开始吧。
|
||||
|
||||
<Cards >
|
||||
|
||||
<Card
|
||||
title="安装"
|
||||
description="了解如何安装 Dokploy。"
|
||||
href="/cn/docs/core/get-started/installation"
|
||||
/>
|
||||
|
||||
<Card
|
||||
title="应用"
|
||||
description="了解如何部署应用程序。"
|
||||
href="/cn/docs/core/application/overview"
|
||||
/>
|
||||
|
||||
<Card
|
||||
title="数据库"
|
||||
description="了解如何部署数据库。"
|
||||
href="/cn/docs/core/databases/overview"
|
||||
/>
|
||||
|
||||
<Card
|
||||
title="Traefik"
|
||||
description="了解如何部署 Traefik。"
|
||||
href="/cn/docs/core/traefik/overview"
|
||||
/>
|
||||
|
||||
</Cards>
|
||||
@@ -1,166 +0,0 @@
|
||||
---
|
||||
title: '手动安装'
|
||||
description: '学习如何在服务器上手动安装 Dokploy。'
|
||||
---
|
||||
|
||||
如果您希望自定义 Dokploy 在服务器上的安装,可以修改以下几个方面:
|
||||
|
||||
1. **为 Dokploy 使用特定端口** - 这对于避免与其他服务的冲突非常理想。
|
||||
2. **选择特定版本的 Dokploy** - 可以选择如 canary、latest 或特定 Docker 标签(例如 v0.0.1)版本。
|
||||
3. **指定 Traefik 的 HTTP 和 HTTPS 端口** - 当与其他服务器(如 Nginx)一起运行时非常有用。
|
||||
|
||||
## 安装脚本
|
||||
|
||||
下面是一个在 Linux 服务器上安装 Dokploy 的 Bash 脚本。确保在非容器的 Linux 环境中以 root 身份运行,并确保端口 80 和 443 是空闲的。
|
||||
|
||||
```bash
|
||||
#!/bin/bash
|
||||
# Ensure the script is run as root
|
||||
if [ "$(id -u)" != "0" ]; then
|
||||
echo "This script must be run as root" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check for Linux OS (not macOS or inside a Docker container)
|
||||
if [ "$(uname)" = "Darwin" ]; then
|
||||
echo "This script must be run on Linux" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -f /.dockerenv ]; then
|
||||
echo "This script must be run on a native Linux host" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check for occupied ports
|
||||
if ss -tulnp | grep ':80 ' >/dev/null; then
|
||||
echo "Error: Port 80 is already in use" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ss -tulnp | grep ':443 ' >/dev/null; then
|
||||
echo "Error: Port 443 is already in use" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Function to check if a command exists
|
||||
command_exists() {
|
||||
command -v "$@" > /dev/null 2>&1
|
||||
}
|
||||
|
||||
# Install Docker if it is not installed
|
||||
if command_exists docker; then
|
||||
echo "Docker already installed"
|
||||
else
|
||||
curl -sSL https://get.docker.com | sh
|
||||
fi
|
||||
|
||||
# Initialize Docker Swarm
|
||||
docker swarm leave --force 2>/dev/null
|
||||
|
||||
get_ip() {
|
||||
# Try to get IPv4
|
||||
local ipv4=$(curl -4s https://ifconfig.io 2>/dev/null)
|
||||
|
||||
if [ -n "$ipv4" ]; then
|
||||
echo "$ipv4"
|
||||
else
|
||||
# Try to get IPv6
|
||||
local ipv6=$(curl -6s https://ifconfig.io 2>/dev/null)
|
||||
if [ -n "$ipv6" ]; then
|
||||
echo "$ipv6"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
advertise_addr="${ADVERTISE_ADDR:-$(get_ip)}"
|
||||
|
||||
docker swarm init --advertise-addr $advertise_addr
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Error: Failed to initialize Docker Swarm" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
docker network rm -f dokploy-network 2>/dev/null
|
||||
docker network create --driver overlay --attachable dokploy-network
|
||||
|
||||
echo "Network created"
|
||||
|
||||
mkdir -p /etc/dokploy
|
||||
|
||||
chmod 777 /etc/dokploy
|
||||
|
||||
# Pull and deploy Dokploy
|
||||
docker pull dokploy/dokploy:latest
|
||||
docker service create \
|
||||
--name dokploy \
|
||||
--replicas 1 \
|
||||
--network dokploy-network \
|
||||
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
|
||||
--mount type=bind,source=/etc/dokploy,target=/etc/dokploy \
|
||||
--publish published=3000,target=3000,mode=host \
|
||||
--update-parallelism 1 \
|
||||
--update-order stop-first \
|
||||
-e PORT=<Value For PORT eg(3000)> \
|
||||
-e TRAEFIK_SSL_PORT=<Value For SSL PORT eg(444)> \
|
||||
-e TRAEFIK_PORT=<VALUE FOR TRAEFIK HTTP PORT eg(81)> \
|
||||
-e ADVERTISE_ADDR=$advertise_addr \
|
||||
dokploy/dokploy:latest
|
||||
|
||||
# Output success message
|
||||
GREEN="\033[0;32m"
|
||||
YELLOW="\033[1;33m"
|
||||
BLUE="\033[0;34m"
|
||||
NC="\033[0m" # No Color
|
||||
printf "${GREEN}Congratulations, Dokploy is installed!${NC}\n"
|
||||
printf "${BLUE}Wait 15 seconds for the server to start${NC}\n"
|
||||
printf "${YELLOW}Please go to http://${advertise_addr}:3000${NC}\n\n"
|
||||
|
||||
```
|
||||
|
||||
|
||||
这个脚本包括对常见陷阱的检查,如果未安装 Docker 则安装 Docker,初始化 Docker Swarm,创建网络,然后拉取并部署 Dokploy。脚本运行后,它提供成功消息和访问 Dokploy 的说明。
|
||||
|
||||
这种结构化的格式清晰地列出了先决条件、步骤和安装后信息,使其对执行手动安装的用户来说非常友好和易于理解。
|
||||
|
||||
## 自定义安装
|
||||
#### 自定义 swarm 广播地址
|
||||
|
||||
`docker swarm init` 命令中的 `--advertise-addr` 参数指定了 Docker Swarm 管理节点应该向 Swarm 中的其他节点广播的 IP 地址或接口。其他节点使用该地址与管理节点通信。
|
||||
|
||||
默认情况下,此脚本使用通过 `curl -s ifconfig.me` 命令获得的服务器外部 IP 地址。但是,根据您的网络配置,特别是如果您的服务器有多个网络接口或如果您在私有网络中设置 Swarm,您可能需要自定义此地址。
|
||||
|
||||
要自定义 `--advertise-addr` 参数,请将以下行:
|
||||
`advertise_addr=$(curl -s ifconfig.me)`
|
||||
|
||||
替换为您所需的 IP 地址或接口,例如:
|
||||
`advertise_addr="192.168.1.100"`
|
||||
|
||||
:warning: 该 IP 地址应对将加入 Swarm 的所有节点可访问。
|
||||
|
||||
## 已有 Docker Swarm
|
||||
|
||||
如果您的服务器上已经运行了 Docker Swarm,并且您想使用 Dokploy,可以使用以下命令加入它:
|
||||
|
||||
```bash
|
||||
docker network create --driver overlay --attachable dokploy-network
|
||||
|
||||
mkdir -p /etc/dokploy
|
||||
|
||||
chmod -R 777 /etc/dokploy
|
||||
|
||||
docker pull dokploy/dokploy:latest
|
||||
|
||||
# 安装
|
||||
docker service create \
|
||||
--name dokploy \
|
||||
--replicas 1 \
|
||||
--network dokploy-network \
|
||||
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
|
||||
--mount type=bind,source=/etc/dokploy,target=/etc/dokploy \
|
||||
--publish published=3000,target=3000,mode=host \
|
||||
--update-parallelism 1 \
|
||||
--update-order stop-first \
|
||||
dokploy/dokploy:latest
|
||||
```
|
||||
@@ -1,13 +0,0 @@
|
||||
---
|
||||
title: "重置密码"
|
||||
description: "重置您的密码以访问您的 Dokploy 帐户。"
|
||||
---
|
||||
|
||||
## 重置密码
|
||||
|
||||
要重置密码,请执行以下步骤:
|
||||
|
||||
1. 登录您的 VPS。
|
||||
2. 运行`docker ps`获取 dokploy 容器的容器 ID。
|
||||
3. 运行 `docker exec -it <container-id> bash -c "pnpm run reset-password"` 打开 dokploy 容器中的 shell。
|
||||
4. 它将显示随机密码。 复制它并使用它再次访问仪表板。
|
||||
Reference in New Issue
Block a user