mirror of
https://github.com/Dokploy/dokploy
synced 2025-06-26 18:27:59 +00:00
Feat/monorepo (#292)
* feat(create-turbo): apply official-starter transform * refactor: move folder * wip: monorepo * feat: add builf * refactor: add pr * update * add .env * refactor: update build * refactor: update build docker * refactor: add progress plain * refactor: remove node pty * refactor: remove * remove * refactor: update * refacotr: uopdate * refactor: add remix app * add env * refactor: add pnpm start * refactor: remove * refactor: remove folders * refactor: remove .dockerfile * chore: update biome * test * choe: add husky * remove .docker folder * feat: add docs website * refactor: add husky * chore(version): bump version * refactor: add new changes * refactor: update circle path * refactor: update * refactor: update * refactor: update dockerfile * refactor: update dockerfile * refactor: update command * refactor: update * refactor: update dockerfile * refactor: add tsx * refactor: update dockerfile * refactor: add deps * refactor: up[date * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: yuodate * refactor: remove * refactor: uncomment * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: updare * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: imprt * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: remove * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: change path * refactor: update * refactor: update * refactor: upoadte * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: add * refactor: update * refactor: update * refactor: add * refactor: update * refactor: remove * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: removed * refactor: update * refactor: update * refactor: update * refactor: add config * refactor: update * refactor: add * refactor: update * refactor: update * refactor: remove * refactor: update * refactor: remove * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: add docs * refactor: update * refactor: add website * refactor: update * refactor: update * refactor: update * refactor: update * refactor: add ignore builds * refactor: update * refactor: update * refactor: add * refactor: update * refactor: update * refactor: remove needs * refactor: update * refactor: update * refactor: add config * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: remove * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: add * refactor: update * refactor: update * refactor: update * refactor: update * refactor: upodate * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update * refactor: update package json * refactor: add biome * refactor: add sponsors * refactor: update * refactor: update * refactor: remove * refactor: update * refactor: update * refactor: update * refactor: update scripts * refactor: remove * refactor: update * refactor: remove --------- Co-authored-by: Turbobot <turbobot@vercel.com>
This commit is contained in:
@@ -0,0 +1,81 @@
|
||||
---
|
||||
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。
|
||||
84
apps/docs/content/docs/core/docker-compose/auto-deploy.mdx
Normal file
84
apps/docs/content/docs/core/docker-compose/auto-deploy.mdx
Normal file
@@ -0,0 +1,84 @@
|
||||
---
|
||||
title: Auto-deploy
|
||||
description: How to auto-deploy your docker-compose application with Dokploy
|
||||
---
|
||||
|
||||
Automatically deploying your docker-compose application to Dokploy can be achieved through two primary methods: using Webhooks or the Dokploy API. Each method supports various platforms and provides a streamlined deployment process.
|
||||
|
||||
## Github
|
||||
|
||||
For Github, we provide autodeploy without any configuration. This will automatically deploy your application whenever you push to your repository.
|
||||
|
||||
## Webhook URL
|
||||
|
||||
Webhooks allow you to automatically deploy your docker-compose application whenever changes are made in your source repository.
|
||||
|
||||
- GitHub
|
||||
- GitLab
|
||||
- Bitbucket
|
||||
- Gitea
|
||||
|
||||
### Configuration Steps
|
||||
|
||||
1. **Enable Auto Deploy**: Toggle the 'Auto Deploy' button found in the general tab of your application settings in Dokploy.
|
||||
2. **Obtain Webhook URL**: Locate the Webhook URL from the deployment logs.
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/webhook-url-compose.png"
|
||||
alt="Webhook URL"
|
||||
width={1000}
|
||||
height={500}
|
||||
/>
|
||||
|
||||
3. **Configure Your Repository**:
|
||||
- Navigate to your repository settings on your chosen platform.
|
||||
- Add the webhook URL provided by Dokploy.
|
||||
- Ensure the settings match the configuration necessary for triggering the webhook.
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/webhook-github.png"
|
||||
alt="Webhook URL"
|
||||
width={1000}
|
||||
height={500}
|
||||
/>
|
||||
|
||||
#### Important Notes
|
||||
|
||||
- **Branch Matching**: When using Git-based providers (GitHub, GitLab, etc.), ensure that the branch configured in Dokploy matches the branch you intend to push to. Misalignment will result in a "Branch Not Match" error.
|
||||
- The steps are the same for all the providers.
|
||||
|
||||
## API Method
|
||||
|
||||
Deploy your application programmatically using the Dokploy API from anywhere.
|
||||
|
||||
### Steps to Deploy Using API
|
||||
|
||||
Steps:
|
||||
|
||||
1. **Generate a Token**: Create an API token in your profile settings on Dokploy.
|
||||
2. **Retrieve Compose ID**:
|
||||
|
||||
```http
|
||||
curl -X 'GET' \
|
||||
'https://your-domain/api/project.all' \
|
||||
-H 'accept: application/json'
|
||||
-H 'Authorization: Bearer <token>'
|
||||
```
|
||||
|
||||
This command lists all projects and services. Identify the composeId for the compose you wish to deploy.
|
||||
|
||||
3. **Trigger Deployment**:
|
||||
|
||||
```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"
|
||||
}'
|
||||
```
|
||||
|
||||
This API method allows for flexible, scriptable deployment options, suitable for automated systems or situations where direct repository integration is not feasible.
|
||||
In this way you can deploy your application from anywhere, you can use the webhook URL or the API.
|
||||
196
apps/docs/content/docs/core/docker-compose/domains.mdx
Normal file
196
apps/docs/content/docs/core/docker-compose/domains.mdx
Normal file
@@ -0,0 +1,196 @@
|
||||
---
|
||||
title: Domains
|
||||
description: Configure domains for your Docker Compose application.
|
||||
---
|
||||
|
||||
When using Docker Compose, adding a domain to a service is a straightforward process. This guide will walk you through the necessary steps to configure domains for your application.
|
||||
|
||||
Key Steps:
|
||||
|
||||
1. Add the service to the `dokploy-network`.
|
||||
2. Use Traefik labels to configure routing.
|
||||
|
||||
Example Scenario
|
||||
|
||||
Let's consider an application with three components: a frontend, a backend, and a database. We'll start with a basic Docker Compose file and then enhance it with domain configuration.
|
||||
|
||||
```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:
|
||||
```
|
||||
|
||||
## Step 1: Add the Network
|
||||
|
||||
First, we'll add the dokploy-network to our services:
|
||||
|
||||
```yaml
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
frontend:
|
||||
# ... (previous configuration)
|
||||
networks:
|
||||
- dokploy-network
|
||||
|
||||
backend:
|
||||
# ... (previous configuration)
|
||||
networks:
|
||||
- dokploy-network
|
||||
|
||||
database:
|
||||
# ... (previous configuration)
|
||||
networks:
|
||||
- dokploy-network
|
||||
|
||||
volumes:
|
||||
db-data:
|
||||
|
||||
networks:
|
||||
dokploy-network:
|
||||
external: true
|
||||
```
|
||||
|
||||
Step 2: Configuring Traefik Labels
|
||||
|
||||
Now, let's add Traefik labels to route domains to our services. We'll focus on the frontend and backend services:
|
||||
|
||||
{/* It is necessary to add these labels:
|
||||
|
||||
1. `traefik.enable=true`
|
||||
This label tells Traefik that this service should be routed by Traefik.
|
||||
2. `traefik.http.routers.<UNIQUE-RULE>.rule=Host('your-domain.dokploy.com')`
|
||||
This label tells Traefik that the domain to be used is `your-domain.dokploy.com`
|
||||
3. `traefik.http.routers.<UNIQUE-RULE>.entrypoints=web`
|
||||
This label tells Traefik that the service should be accessible via the `http` protocol.
|
||||
4. `traefik.http.services.<UNIQUE-RULE>.loadbalancer.server.port=3000`
|
||||
This label tells Traefik that the port to be used is `3000`
|
||||
|
||||
Note: For loadbalancer.server.port, ensure you assign the port that your service is using. It's important to note that you do not need to expose the port like this:
|
||||
|
||||
Nota: en el loadbalancer.server.port asegurate de asignar el puerto que tu servicio esta utilizando, y alcaramos no es necesario que expongas el puerto de esta manera
|
||||
|
||||
'3000:3000' esto es incorrecto, unicamente debes de asignar el puerto que tu servicio esta utilizando, en este caso `3000`
|
||||
|
||||
asegurate de crear los registros `A` que apunten a tu dominio, esto hazlo desde tu DNS provider. */}
|
||||
|
||||
|
||||
```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:
|
||||
# ... (same as before)
|
||||
|
||||
volumes:
|
||||
db-data:
|
||||
|
||||
networks:
|
||||
dokploy-network:
|
||||
external: true
|
||||
```
|
||||
|
||||
Understanding Traefik Labels
|
||||
|
||||
|
||||
1. `traefik.enable=true` Enables Traefik routing for the service.
|
||||
2. `traefik.http.routers.<UNIQUE-RULE>.rule=Host('your-domain.dokploy.com')` Specifies the domain for the service
|
||||
3. `traefik.http.routers.<UNIQUE-RULE>.entrypoints=web` Sets the service to be accessible via HTTP.
|
||||
4. `traefik.http.services.<UNIQUE-RULE>.loadbalancer.server.port=3000` Specifies the port your service is using internally.
|
||||
|
||||
**Note**: Replace `<UNIQUE-RULE>` with a unique identifier for each service (e.g., frontend-app, backend-app, etc.).
|
||||
|
||||
|
||||
## Important Considerations
|
||||
|
||||
1. **Port Exposure**: Use `expose` instead of `ports` to expose ports to the host machine. This ensures that the ports are not exposed to the host machine.
|
||||
2. **DNS Configuration**: Ensure you create `A` records pointing to your domain in your DNS Provider Settings.
|
||||
3. **HTTPS**: For HTTPS, you can use Let's Encrypt or other SSL/TLS certificates.
|
||||
|
||||
|
||||
## Deployment
|
||||
|
||||
With these configurations in place, you're now ready to deploy your application using Docker Compose. This setup should be sufficient to get your services up and running with custom domain routing through Traefik.
|
||||
|
||||
## SSL Certificates and Further Configuration
|
||||
|
||||
If you have questions about when to use Let's Encrypt or other SSL certificate options, you can find more detailed information in the following resources:
|
||||
|
||||
1. [Certificates](/docs/core/domain/certificates)
|
||||
2. [Docker Compose Domain](/docs/core/domain/docker-compose-setup)
|
||||
3. [Docker Compose Example](/docs/core/docker-compose/example)
|
||||
|
||||
If you have any further questions or need assistance, join our [Discord server](https://discord.com/invite/2tBnJ3jDJc) and we'll be happy to help.
|
||||
110
apps/docs/content/docs/core/docker-compose/example.mdx
Normal file
110
apps/docs/content/docs/core/docker-compose/example.mdx
Normal file
@@ -0,0 +1,110 @@
|
||||
---
|
||||
title: "Example"
|
||||
description: "Learn how to use Docker Compose with Dokploy"
|
||||
|
||||
---
|
||||
|
||||
## Tutorial
|
||||
|
||||
In this tutorial, we will create a simple application using Docker Compose and route the traffic to an accessible domain.
|
||||
|
||||
|
||||
### Steps
|
||||
|
||||
1. Create a new project.
|
||||
2. Create a new service `Compose` and select the Compose Type `Docker Compose`.
|
||||
3. Fork this repository: [Repo](https://github.com/Dokploy/docker-compose-test).
|
||||
4. Select Provider type: GitHub or Git.
|
||||
5. Select the repository: `Dokploy/docker-compose-test`.
|
||||
6. Select the branch: `main`.
|
||||
7. Set the Compose Path to `./docker-compose.yml` and save.
|
||||

|
||||
|
||||
|
||||
### Updating Your `docker-compose.yml`
|
||||
|
||||
Add the following to your existing `docker-compose.yml` file:
|
||||
|
||||
1. Add the network `dokploy-network` to each service.
|
||||
2. Add labels for Traefik to make the service accessible through the domain.
|
||||
|
||||
Example:
|
||||
|
||||
Let's modify the following compose file to make it work with 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
|
||||
```
|
||||
|
||||
|
||||
Updated version with dokploy-network and Traefik labels:
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
|
||||
<Callout type="warn">
|
||||
Don't set container_name property to the each service, it will cause issues with logs, metrics and other features
|
||||
</Callout>
|
||||
{/* :::danger
|
||||
Don't set container_name property to the each service, it will cause issues with logs, metrics and other features
|
||||
|
||||
::: */}
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
Make sure to point the A record to the domain you want to use for your service.
|
||||
|
||||
<ImageZoom src="/assets/images/compose/domain.png" width={800} height={630} alt='home og image' className="rounded-lg" />
|
||||
|
||||
Deploy the application by clicking on "deploy" and wait for the deployment to complete. Then give Traefik about 10 seconds to generate the certificates. You can then access the application through the domain you have set.
|
||||
|
||||
<ImageZoom src="/assets/images/compose/application.png" width={800} height={630} alt='home og image' className="rounded-lg" />
|
||||
|
||||
**Tips**:
|
||||
|
||||
1. Set unique names for each router: `traefik.http.routers.<unique-name>`
|
||||
2. Set unique names for each service: `traefik.http.services.<unique-name>`
|
||||
3. Ensure the network is linked to the `dokploy-network`
|
||||
4. Set the entry point to websecure and the certificate resolver to letsencrypt to generate certificates.
|
||||
|
||||
49
apps/docs/content/docs/core/docker-compose/overview.mdx
Normal file
49
apps/docs/content/docs/core/docker-compose/overview.mdx
Normal file
@@ -0,0 +1,49 @@
|
||||
---
|
||||
title: "Overview"
|
||||
description: "Learn how to use Docker Compose with Dokploy"
|
||||
---
|
||||
|
||||
Dokploy integrates with Docker Compose and Docker Stack to provide flexible deployment solutions. Whether you are developing locally or deploying at scale, Dokploy facilitates application management through these powerful Docker tools.
|
||||
|
||||
### Configuration Methods
|
||||
|
||||
Dokploy provides two methods for creating Docker Compose configurations:
|
||||
|
||||
|
||||
- **Docker Compose**: Ideal for standard Docker Compose configurations.
|
||||
- **Stack**: Geared towards orchestrating applications using Docker Swarm. Note that some Docker Compose features, such as `build`, are not available in this mode.
|
||||
|
||||
### General
|
||||
|
||||
Configure the source of your code, the way your application is built, and also manage actions like deploying, updating, and deleting your application, and stopping it.
|
||||
|
||||
### Enviroment
|
||||
|
||||
A code editor within Dokploy allows you to specify environment variables for your Docker Compose file. By default, Dokploy creates a `.env` file in the specified Docker Compose file path.
|
||||
|
||||
### Monitoring
|
||||
|
||||
Monitor each service individually within Dokploy. If your application consists of multiple services, each can be monitored separately to ensure optimal performance.
|
||||
|
||||
### Logs
|
||||
|
||||
Access detailed logs for each service through the Dokploy log viewer, which can help in troubleshooting and ensuring the stability of your services.
|
||||
|
||||
|
||||
### Deployments
|
||||
|
||||
You can view the last 10 deployments of your application. When you deploy your application in real time, a new deployment record will be created and it will gradually show you how your application is being built.
|
||||
|
||||
We also offer a button to cancel deployments that are in queue. Note that those in progress cannot be canceled.
|
||||
|
||||
We provide a webhook so that you can trigger your own deployments by pushing to your GitHub, Gitea, GitLab, Bitbucket repository.
|
||||
|
||||
|
||||
### Advanced
|
||||
|
||||
This section provides advanced configuration options for experienced users. It includes tools for custom commands within the container and volumes.
|
||||
|
||||
- **Command**: Dokploy has a defined command to run the Docker Compose file, ensuring complete control through the UI. However, you can append flags or options to the command.
|
||||
- **Volumes**: To ensure data persistence across deployments, configure storage volumes for your application.
|
||||
|
||||
<ImageZoom src="/assets/images/compose/overview.png" width={800} height={630} quality={100} priority alt='home og image' className="rounded-lg" />
|
||||
41
apps/docs/content/docs/core/docker-compose/providers.mdx
Normal file
41
apps/docs/content/docs/core/docker-compose/providers.mdx
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
title: "Providers"
|
||||
description: "Learn how to use Docker Compose with Dokploy"
|
||||
---
|
||||
|
||||
Dokploy offers several deployment methods, streamlining the process whether you're utilizing GitHub, any Git provider, Raw, or automated deployments.
|
||||
|
||||
- GitHub
|
||||
- Git (Any Git Provider)
|
||||
- Raw
|
||||
|
||||
## GitHub
|
||||
|
||||
Deploying via GitHub is straightforward:
|
||||
|
||||
1. Configure your GitHub repository in the `/dashboard/settings/server`.
|
||||
2. When creating an application, Dokploy automatically retrieves the available repositories and branches.
|
||||
|
||||
## Git
|
||||
|
||||
For deployments from any Git repository, whether public or private, you can use either SSH or HTTPS:
|
||||
|
||||
1. Enter the repository URL.
|
||||
2. Specify the branch you wish to deploy.
|
||||
|
||||
### Private Repositories
|
||||
|
||||
For private repositories, authenticate using SSH. We provide a lock icon to generate an SSH key.
|
||||
|
||||
<ImageZoom src="/assets/dokploy-ssh-compose.png" width={800} height={630} className="rounded-lg"/>
|
||||
|
||||
You can then copy the SSH key and paste it into the settings of your account.
|
||||
|
||||
<ImageZoom src="/assets/private-repository.png" width={800} height={630} className="rounded-lg"/>
|
||||
|
||||
This enables you to pull repositories from your private repository, a method consistent across nearly all providers.
|
||||
|
||||
|
||||
## Raw
|
||||
|
||||
You specify a docker compose file directly in the code editor and trigger a deployment.
|
||||
Reference in New Issue
Block a user