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:
73
apps/docs-v2/content/docs/core/(Git-Sources)/bitbucket.mdx
Normal file
73
apps/docs-v2/content/docs/core/(Git-Sources)/bitbucket.mdx
Normal file
@@ -0,0 +1,73 @@
|
||||
---
|
||||
title: Bitbucket
|
||||
description: 'Configure your Bitbucket repositories for deployments. This includes setting up access tokens, repository names, and branches.'
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
|
||||
Dokploy offer a way to connect your Bitbucket Repository to your Dokploy panel, you can use Groups Names or personal accounts.
|
||||
|
||||
Go to `Git` and select `Bitbucket` as the source, then you can use the following options:
|
||||
|
||||
- **Bitbucket Username**: Set the username that you want to connect to Dokploy.
|
||||
- **App Password**: Set the app password you've created.
|
||||
- **Workspace(Optional)**: Assign a workspace name, this is useful if you want to connect to another workspace.
|
||||
|
||||
Follow the steps to connect your Bitbucket account to Dokploy.
|
||||
|
||||
1. Go to `https://bitbucket.org/account/settings/app-passwords/new` .
|
||||
2. Set Label: eg. `Dokploy-Bitbucket-App`. you can choose any name that you want.
|
||||
3. In permissions make sure to select `Account: Read`, `Workspace membership: Read`, `Projects: Read`
|
||||
, `Repositories: Read` `Pull requests: Read` and `Webhooks: Read and write`.
|
||||
4. Click on `Create`.
|
||||
5. Copy the `App Password` and paste it in Dokploy `Bitbucket` Modal section.
|
||||
6. Set your `Bitbucket Username`.
|
||||
7. (Optional) If you want to use Workspaces, go to `https://bitbucket.org/account/workspaces/`, eg. If you have
|
||||
`dokploy-workspace` copy and paste it in Workspace Name.
|
||||
7. Click on `Configure Bitbucket`.
|
||||
8. If everything is correct, you can update enter to the Update Icon, and click on `Test Connection` to make sure everything is working.
|
||||
9. Now you can use the repositories from your Gitlab Account in `Applications` or `Docker Compose` services.
|
||||
|
||||
<Callout type='warn'>
|
||||
Dokploy doesn't support Bitbucket Automatic deployments on each push you make to your repository.
|
||||
</Callout>
|
||||
|
||||
|
||||
## Setup Automatic Deployments
|
||||
|
||||
You can configure automatic deployments in Dokploy for the Following Services:
|
||||
|
||||
1. **Applications**
|
||||
2. **Docker Compose**
|
||||
|
||||
The steps are the same for both services.
|
||||
|
||||
1. Go to either `Applications` or `Docker Compose` and go to `Deployments` Tab.
|
||||
2. Copy the `Webhook URL`.
|
||||
3. Go to your Bitbucket Account and select the repository.
|
||||
4. In the left menu, select `Repository Settings` and then `Webhooks`.
|
||||
5. Click on `Add Webhook`.
|
||||
6. Set any `Title` and the `URL` to the one you copied in the previous step.
|
||||
7. In the Trigger section, select `Push Events`.
|
||||
8. Click on `Add Webhook`.
|
||||
10. Now you have automatic deployments enabled for the selected repository.
|
||||
|
||||
|
||||
## Clarification on Automatic Deployments
|
||||
|
||||
By default, Dokploy will automatically deploy your application on the Branch you have selected.
|
||||
|
||||
eg. Let's suppose you have a `application` in this way:
|
||||
|
||||
Repository: `my-app`
|
||||
Branch: `feature`
|
||||
|
||||
If you try to make a push on another branch eg. `main`, Dokploy will not automatically deploy your application, because
|
||||
your application have selected `feature` as the Branch.
|
||||
|
||||
<Callout>
|
||||
In the case you want to have multiple applications in the same repository, eg. (development, staging, production), you can create 3 `Applications` in Dokploy
|
||||
and select the branch in each of them.
|
||||
|
||||
This is very usefull if you want to have multiple environments for the same application.
|
||||
</Callout>
|
||||
48
apps/docs-v2/content/docs/core/(Git-Sources)/github.mdx
Normal file
48
apps/docs-v2/content/docs/core/(Git-Sources)/github.mdx
Normal file
@@ -0,0 +1,48 @@
|
||||
---
|
||||
title: GitHub
|
||||
description: 'Configure GitHub repositories for deployments. This includes setting up access tokens, repository names, and branches.'
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
|
||||
Dokploy offer a way to connect your Github Repository to your Dokploy panel, you can use organizations or personal accounts.
|
||||
|
||||
Go to `Git` and select `Github` as the source, then you can use the following options:
|
||||
|
||||
- **Organization**: Select the organization that you want to connect to Dokploy.
|
||||
- **Personal Account(Default)**: Select the account that you want to connect to Dokploy.
|
||||
|
||||
Follow the steps to connect your Github account to Dokploy.
|
||||
|
||||
1. Click on `Create Github App` to create a new Github App.
|
||||
2. Set Github App Name: eg. `Dokploy-Github-App`. make sure this name is unique.
|
||||
3. Click on `Create Github App`, then you will redirect to the `Git` section of Dokploy.
|
||||
4. Now it will show a `Install` Button, click on it.
|
||||
5. You can select the repositories that you want to dokploy be able to access, you can choose
|
||||
select all repositories or select specific repositories.
|
||||
6. Click on `Install & Authorize` to install the Dokploy App.
|
||||
7. You will be redirected to the `Git` section of Dokploy.
|
||||
8. Now you can use the repositories from your Github Account in `Applications` or `Docker Compose` services.
|
||||
|
||||
<Callout>
|
||||
When you use this method, By default you will have Automatic deployments on each push you make to your repository.
|
||||
</Callout>
|
||||
|
||||
## Clarification on Automatic Deployments
|
||||
|
||||
By default, Dokploy will automatically deploy your application on the Branch you have selected.
|
||||
|
||||
eg. Let's suppose you have a `application` in this way:
|
||||
|
||||
Repository: `my-app`
|
||||
Branch: `feature`
|
||||
|
||||
If you try to make a push on another branch eg. `main`, Dokploy will not automatically deploy your application, because
|
||||
your application have selected `feature` as the Branch.
|
||||
|
||||
<Callout>
|
||||
In the case you want to have multiple applications in the same repository, eg. (development, staging, production), you can create 3 `Applications` in Dokploy
|
||||
and select the branch in each of them.
|
||||
|
||||
This is very usefull if you want to have multiple environments for the same application.
|
||||
</Callout>
|
||||
79
apps/docs-v2/content/docs/core/(Git-Sources)/gitlab.mdx
Normal file
79
apps/docs-v2/content/docs/core/(Git-Sources)/gitlab.mdx
Normal file
@@ -0,0 +1,79 @@
|
||||
---
|
||||
title: Gitlab
|
||||
description: 'Configure Gitlab repositories for deployments. This includes setting up access tokens, repository names, and branches.'
|
||||
---
|
||||
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
|
||||
Dokploy offer a way to connect your Gitlab Repository to your Dokploy panel, you can use Groups Names or personal accounts.
|
||||
|
||||
|
||||
Go to `Git` and select `Gitlab` as the source, then you can use the following options:
|
||||
|
||||
- **Application ID**: Select the application ID that you want to connect to Dokploy.
|
||||
- **Personal Secret**: Select the secret that you want to connect to Dokploy.
|
||||
- **Group Name(Optional)**: Select the group name that you want to connect to Dokploy(Ideal for Gitlab Groups).
|
||||
|
||||
Follow the steps to connect your Gitlab account to Dokploy.
|
||||
|
||||
1. Go to `https://gitlab.com/-/profile/applications` and click on ` Add New Application`.
|
||||
2. Set Application Name: eg. `Dokploy-Gitlab-App`. choose any name that you want.
|
||||
3. Redirect URI: Copy the `Redirect URI` from Dokploy. eg. `https://dokploy.com/api/providers/gitlab/callback`.
|
||||
4. Select Permissions: `api`, `read_user`, `read_repository`.
|
||||
5. Click on `Save Application`.
|
||||
6. Copy the `Application ID` and `Secret` from Gitlab and paste it in Dokploy `Gitlab` Modal section.
|
||||
7. (Optional) If you want to use Groups, go to `https://gitlab.com/dashboard/groups` enter the group name you
|
||||
want to connect, and look at the URL in the address bar, it will be something like this
|
||||
`https://gitlab.com/dokploy-panel/frontend` you can use Nested Groups and SubGroups and copy the `dokploy-panel/frontend` from Gitlab and paste
|
||||
it in Dokploy `Gitlab` Modal section.
|
||||
8. Click on `Continue`.
|
||||
9. Go Back to Dokploy and click on `Install` button.
|
||||
10. Click on `Authorize`.
|
||||
11. You will be redirected to the `Git` section of Dokploy.
|
||||
12. Now you can use the repositories from your Gitlab Account in `Applications` or `Docker Compose` services.
|
||||
|
||||
<Callout type='warn'>
|
||||
Dokploy doesn't support Gitlab Automatic deployments on each push you make to your repository.
|
||||
</Callout>
|
||||
|
||||
|
||||
## Setup Automatic Deployments
|
||||
|
||||
You can configure automatic deployments in Dokploy for the Following Services:
|
||||
|
||||
1. **Applications**
|
||||
2. **Docker Compose**
|
||||
|
||||
The steps are the same for both services.
|
||||
|
||||
1. Go to either `Applications` or `Docker Compose` and go to `Deployments` Tab.
|
||||
2. Copy the `Webhook URL`.
|
||||
3. Go to your Gitlab Account and select the repository.
|
||||
4. In the left menu, select `Settings` and then `Webhooks`.
|
||||
5. Click on `Add Webhook`.
|
||||
6. Set the `URL` to the one you copied in the previous step.
|
||||
7. In the Trigger section, select `Push Events`.
|
||||
8. Click on `Add Webhook`.
|
||||
9. Click on `Save`.
|
||||
10. Now you have automatic deployments enabled for the selected repository.
|
||||
|
||||
|
||||
## Clarification on Automatic Deployments
|
||||
|
||||
By default, Dokploy will automatically deploy your application on the Branch you have selected.
|
||||
|
||||
eg. Let's suppose you have a `application` in this way:
|
||||
|
||||
Repository: `my-app`
|
||||
Branch: `feature`
|
||||
|
||||
If you try to make a push on another branch eg. `main`, Dokploy will not automatically deploy your application, because
|
||||
your application have selected `feature` as the Branch.
|
||||
|
||||
<Callout>
|
||||
In the case you want to have multiple applications in the same repository, eg. (development, staging, production), you can create 3 `Applications` in Dokploy
|
||||
and select the branch in each of them.
|
||||
|
||||
This is very usefull if you want to have multiple environments for the same application.
|
||||
</Callout>
|
||||
25
apps/docs-v2/content/docs/core/(Notifications)/discord.mdx
Normal file
25
apps/docs-v2/content/docs/core/(Notifications)/discord.mdx
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
title: Discord
|
||||
description: 'Configure discord notifications for your applications.'
|
||||
---
|
||||
|
||||
Discord notifications are a great way to stay up to date with important events in your Dokploy panel. You can choose to receive notifications for specific events or all events.
|
||||
|
||||
## Discord Notifications
|
||||
|
||||
For start receiving discord notifications, you need to fill the form with the following details:
|
||||
|
||||
- **Name**: Enter any name you want.
|
||||
- **Webhook URL**: Enter the webhook URL. eg. `https://discord.com/api/webhooks/000000000000000/00000000-0000-0000-0000-000000000000`
|
||||
|
||||
To Setup the Discord notifications, follow these steps:
|
||||
|
||||
1. Go to Discord, and search your Discord server.
|
||||
2. Go to `Server Settings` and click on `Integrations`.
|
||||
3. Click on `Create a Webhook`.
|
||||
4. Set a name for your webhook, eg. `dokploy_webhook`.
|
||||
5. Click on the `Webhook` you've created and click on copy the `Webhook URL`.
|
||||
6. Go to Dokploy `Notifications` and select `Discord` as the notification provider.
|
||||
7. Use the `Webhook URL` you copied in the previous step.
|
||||
8. Click on `Test` to make sure everything is working.
|
||||
9. Click on `Create` to save the notification.
|
||||
22
apps/docs-v2/content/docs/core/(Notifications)/email.mdx
Normal file
22
apps/docs-v2/content/docs/core/(Notifications)/email.mdx
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: Email
|
||||
description: 'Configure email notifications for your applications.'
|
||||
---
|
||||
|
||||
|
||||
Email notifications are a great way to stay up to date with important events in your Dokploy panel. You can choose to receive notifications for specific events or all events.
|
||||
|
||||
## Email Notifications
|
||||
|
||||
For start receiving email notifications, you need to fill the form with the following details:
|
||||
|
||||
|
||||
1. **Name**: Enter any name you want.
|
||||
2. **SMPT Server**: Enter the SMTP server address. eg. `smtp.gmail.com`
|
||||
3. **SMTP Port**: Enter the SMTP server port. eg. `587`
|
||||
4. **SMTP Username**: Enter the SMTP server username. eg. `your-email@gmail.com`
|
||||
5. **SMTP Password**: Enter the SMTP server password.
|
||||
6. **From Address** Enter the email address that will be used as the sender.
|
||||
7. **To Address** Enter the email address that will be used as the recipient, you can add multiple addresses.
|
||||
|
||||
|
||||
22
apps/docs-v2/content/docs/core/(Notifications)/overview.mdx
Normal file
22
apps/docs-v2/content/docs/core/(Notifications)/overview.mdx
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: Overview
|
||||
description: 'Configure general notifications for your applications and services.'
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
|
||||
Dokploy offer multiples notifications options to notify about some events.
|
||||
|
||||
1. **App Deploy**: Notify when a new version of your application is deployed.
|
||||
2. **App Deploy Error**: Notify when a new version of your application fails to deploy.
|
||||
3. **Docker Cleanup**: Notify when a Docker cleanup is triggered.
|
||||
4. **Dokploy Restart**: Notify when Dokploy Server restarts.
|
||||
5. **Database Backup**: Notify when a new database backup is created(Success or Error).
|
||||
|
||||
## Providers:
|
||||
|
||||
1. **Slack**: Slack is a platform for team communication and collaboration.
|
||||
2. **Telegram**: Telegram is a messaging platform that allows users to send and receive messages.
|
||||
3. **Discord**: Discord is generally used for communication between users in a chat or voice channel.
|
||||
4. **Email**: Email is a popular method for sending messages to a group of recipients.
|
||||
|
||||
27
apps/docs-v2/content/docs/core/(Notifications)/slack.mdx
Normal file
27
apps/docs-v2/content/docs/core/(Notifications)/slack.mdx
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
title: Slack
|
||||
description: 'Configure slack notifications for your applications.'
|
||||
---
|
||||
|
||||
|
||||
Slack notifications are a great way to stay up to date with important events in your Dokploy panel. You can choose to receive notifications for specific events or all events.
|
||||
|
||||
## Slack Notifications
|
||||
|
||||
For start receiving slack notifications, you need to fill the form with the following details:
|
||||
|
||||
- **Name**: Enter any name you want.
|
||||
- **Webhook URL**: Enter the webhook URL. eg. `https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX`
|
||||
- **Channel**: Enter the channel name that you want to send the notifications to.
|
||||
|
||||
To Setup the slack notifications, follow these steps:
|
||||
|
||||
|
||||
1. Go to `https://dokploy.slack.com/marketplace/A0F7XDUAZ-webhooks-entrantes` and click on `Add To Slack`.
|
||||
2. Select the channel that you want to send the notifications to.
|
||||
3. Click on `Add webhook to channel`.
|
||||
4. Copy the `Webhook URL`.
|
||||
5. Go to Dokploy `Notifications` and select `Slack` as the notification provider.
|
||||
6. Use the `Webhook URL` you copied in the previous step.
|
||||
7. In Channel section, select the channel that you want to send the notifications to.
|
||||
7. Click on `Create` to save the notification.
|
||||
28
apps/docs-v2/content/docs/core/(Notifications)/telegram.mdx
Normal file
28
apps/docs-v2/content/docs/core/(Notifications)/telegram.mdx
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
title: Telegram
|
||||
description: 'Configure telegram notifications for your applications.'
|
||||
---
|
||||
|
||||
|
||||
Telegram notifications are a great way to stay up to date with important events in your Dokploy panel. You can choose to receive notifications for specific events or all events.
|
||||
|
||||
## Telegram Notifications
|
||||
|
||||
For start receiving telegram notifications, you need to fill the form with the following details:
|
||||
|
||||
- **Name**: Enter any name you want.
|
||||
- **Bot Token**: Enter the bot token. eg. `123456789:ABCdefGHIjklMNOPqrstUVWXYZ`
|
||||
- **Chat ID**: Enter the chat ID. eg. `123456789`
|
||||
|
||||
To Setup the telegram notifications, follow these steps:
|
||||
|
||||
1. Go to `https://telegram.me/botfather` and click on `Start Bot`.
|
||||
2. Type `/newbot` and click on `Start`.
|
||||
3. Set a name for your bot, eg. `dokploy_bot` make sure the name ends with `_bot`.
|
||||
4. Copy the `Bot Token` and paste it in Dokploy `Telegram` Modal section.
|
||||
5. Now you need to get the Chat ID, or create a new Channel
|
||||
6. Search this bot in the search bar `@userinfobot`.
|
||||
7. Type `/start` and it will return the chat ID.
|
||||
8. Copy the `Chat ID` and paste it in Dokploy `Telegram` Modal section.
|
||||
9. Click on test to make sure everything is working.
|
||||
10. Click on `Create` to save the notification.
|
||||
30
apps/docs-v2/content/docs/core/(S3-Destinations)/actions.mdx
Normal file
30
apps/docs-v2/content/docs/core/(S3-Destinations)/actions.mdx
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: Actions
|
||||
description: 'Manage S3 destinations.'
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
|
||||
The S3 Destinations section are essential for backing up your databases.
|
||||
|
||||
## Actions:
|
||||
|
||||
1. **Create**: Create a new S3 destination.
|
||||
2. **Delete**: Delete a S3 destination.
|
||||
3. **Edit**: Edit a S3 destination.
|
||||
4. **Test**: Test a S3 destination.
|
||||
|
||||
### Create
|
||||
|
||||
In order to create a new S3 Bucket, you need to fill the form.
|
||||
|
||||
- **Name**: This could be anything you want, it will be the name.
|
||||
- **Access Key**: This is the access key that you will use to access your bucket.
|
||||
- **Secret Key**: This is the secret key that you will use to access your bucket.
|
||||
- **Bucket**: This is the bucket that you will use to access your bucket.
|
||||
- **Region**: This is the region that you will use to access your bucket.
|
||||
- **Endpoint**: This is the endpoint that you will use to access your bucket.
|
||||
|
||||
<Callout type='info'>
|
||||
There is a Button `Test` that will test the connection to your bucket, if it is correct it will show you a success message.
|
||||
</Callout>
|
||||
63
apps/docs-v2/content/docs/core/(S3-Destinations)/aws-s3.mdx
Normal file
63
apps/docs-v2/content/docs/core/(S3-Destinations)/aws-s3.mdx
Normal file
@@ -0,0 +1,63 @@
|
||||
---
|
||||
title: AWS S3
|
||||
description: 'Configure S3 buckets for backup storage. This includes setting up access keys, secret keys, bucket names, regions, and endpoints.'
|
||||
---
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
|
||||
|
||||
AWS provides a simple and cost-effective way to store and retrieve data. It is a cloud-based service that allows you to store and retrieve data from anywhere in the world. This is a great option for storing backups, as it is easy to set up and manage.
|
||||
|
||||
1. Create a new bucket and set any name you want.
|
||||
2. Search for `IAM` in the search bar.
|
||||
3. Click on `Policies` in the left menu.
|
||||
4. Click on `Create Policy`.
|
||||
5. Select `JSON` and paste the following policy:
|
||||
Make sure to replace the bucket name with your bucket name.
|
||||
```json
|
||||
{
|
||||
"Version": "2012-10-17",
|
||||
"Statement": [
|
||||
{
|
||||
"Sid": "AllowListBucket",
|
||||
"Effect": "Allow",
|
||||
"Action": "s3:ListBucket",
|
||||
"Resource": "arn:aws:s3:::bucket-name"
|
||||
},
|
||||
{
|
||||
"Sid": "AllowBucketObjectActions",
|
||||
"Effect": "Allow",
|
||||
"Action": [
|
||||
"s3:GetObject",
|
||||
"s3:PutObject",
|
||||
"s3:DeleteObject"
|
||||
],
|
||||
// Make sure to set the name of your bucket
|
||||
"Resource": "arn:aws:s3:::bucket-name/*"
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
6. Click on `Review Policy`.
|
||||
7. Assign a name to the policy.
|
||||
8. Click on `Create Policy`.
|
||||
9. Click on User Group and assign a Name.
|
||||
10. Click on `Add User to Group`.
|
||||
11. Add the user you want to assign to the group.
|
||||
12. In the `Attached Policies` section, filter by type `Customer Managed` and select the policy you created.
|
||||
13. Click on `Attach Policy`.
|
||||
14. Go to `Users` and select the user you've assigned to the group.
|
||||
15. Go to Security Credentials.
|
||||
16. Click on `Create Access Key`.
|
||||
17. Select `Programmatic Access`.
|
||||
18. Click on `Create New Access Key`.
|
||||
|
||||
Now copy the following variables:
|
||||
|
||||
- `Access Key` -> `Access Key (Dokploy)` = eg. `AK2AV244NFLS5JTUZ554`
|
||||
- `Secret Key` -> `Secret Key (Dokploy)` = eg. `I0GWCo9fSGOr7z6Lh+NvHmSsaE+62Vwk2ua2CEwR`
|
||||
- `Bucket` -> `Bucket (Dokploy)` = eg. `dokploy-backups` use the name of the bucket you created.
|
||||
- `Region` -> `Region (Dokploy)` = eg. `us-east-1, us-west-2, etc` it will depend on the region you are using.
|
||||
- `Endpoint` -> `Endpoint (Dokploy) (Optional)` = eg. `https://<bucket-name>.s3.<region>.amazonaws.com` you will find this endpoint in the Bucket Card at the Home Page.
|
||||
|
||||
|
||||
Test the connection and you should see a success message.
|
||||
@@ -0,0 +1,26 @@
|
||||
---
|
||||
title: Backblaze B2
|
||||
description: 'Configure buckets from Backblaze B2 for backup storage. This includes setting up access keys, secret keys, bucket names, regions, and endpoints.'
|
||||
---
|
||||
|
||||
|
||||
Backblaze B2 is a cloud-based service that allows you to store and retrieve data from anywhere in the world. This is a great option for storing backups, as it is easy to set up and manage.
|
||||
|
||||
|
||||
## Backblaze B2 Example Bucket
|
||||
|
||||
1. Create a new bucket and set any name you want.
|
||||
2. Go to `Application Keys` and create a new key.
|
||||
3. Set a Key Name.
|
||||
4. Set the Allow Access to Bucket(s) to `All Buckets` or `Specific Buckets`.
|
||||
4. Set type of access `Read & Write` Permission.
|
||||
|
||||
Now copy the following variables:
|
||||
|
||||
- `Access Key` -> `Access Key (Dokploy)` = eg. `002s6acf2639910000d000005`
|
||||
- `Secret Key` -> `Secret Key (Dokploy)` = eg. `K00+rIsWqPMhmcgqcyOyb9bqby7pbpE`
|
||||
- `Region` -> `Region (Dokploy)` = eg. `eu-central-003, us-east-005, us-west-002, us-west-001, us-west-004, etc` it will depend on the region you are using.
|
||||
- `Endpoint` -> `Endpoint (Dokploy)` = eg. `https://s3.us-west-002.backblazeb2.com` you will find this endpoint in the Bucket Card at the Home Page.
|
||||
- `Bucket` -> `Bucket (Dokploy)` = eg. `dokploy-backups` use the name of the bucket you created.
|
||||
|
||||
Test the connection and you should see a success message.
|
||||
@@ -0,0 +1,24 @@
|
||||
---
|
||||
title: Cloudflare R2
|
||||
description: 'Configure R2 buckets for backup storage. This includes setting up access keys, secret keys, bucket names, regions, and endpoints.'
|
||||
---
|
||||
|
||||
|
||||
Cloudflare is a popular choice for hosting static assets, such as images, videos, and documents. It is a cloud-based service that allows you to store and retrieve data from anywhere in the world. This is a great option for storing backups, as it is easy to set up and manage.
|
||||
|
||||
1. Create a new bucket and any name you want.
|
||||
2. Go to initial R2 Screen, and go to `Manager R2 API Tokens` and create a new token.
|
||||
3. Set a Token Name
|
||||
4. Set `Object Read & Write` Permission.
|
||||
5. (Optional) Set Specify bucket, by default it will include all buckets.
|
||||
6. Create the token.
|
||||
|
||||
Now copy the following variables:
|
||||
|
||||
- `Access Key` -> `Access Key (Dokploy)` = eg. `f3811c6d27415a9s6cv943b6743ad784`
|
||||
- `Secret Key` -> `Secret Key (Dokploy)` = eg. `aa55ee40b4049e93b7252bf698408cc22a3c2856d2530s7c1cb7670e318f15e58`
|
||||
- `Region` -> `Region (Dokploy)` = eg. `WNAM, ENAM, etc` it will depend on the region you are using.
|
||||
- `Endpoint` -> `Endpoint (Dokploy)` = eg. `https://8ah554705io7842d54c499fbee1156c1c.r2.cloudflarestorage.com`
|
||||
- `Bucket` -> `Bucket (Dokploy)` = eg. `dokploy-backups` use the name of the bucket you created.
|
||||
|
||||
Test the connection and you should see a success message.
|
||||
26
apps/docs-v2/content/docs/core/(Users)/permissions.mdx
Normal file
26
apps/docs-v2/content/docs/core/(Users)/permissions.mdx
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
title: Permissions
|
||||
description: 'Add permissions to your users to manage your applications and services.'
|
||||
---
|
||||
|
||||
Manage user roles and permissions within Dokploy. Note that only one admin role is allowed per instance.
|
||||
|
||||
## Permissions
|
||||
|
||||
Dokploy offers multiple permissions to manage your users effectively:
|
||||
|
||||
- **Create Projects**: Allows the user to create new projects.
|
||||
- **Create Services**: Allows the user to create new applications or databases.
|
||||
- **Access Traefik Files Tab**: Allows the user to access the Traefik files tab.
|
||||
- **Delete Projects**: Allows the user to delete projects.
|
||||
- **Delete Services**: Allows the user to delete services.
|
||||
- **Access Docker Tab**: Allows the user to access the Docker tab.
|
||||
- **Access API/CLI**: Allows the user to access the API/CLI, including the Swagger route.
|
||||
- **Access to Git Providers**: Allows the user to access the Git Providers.
|
||||
- **Access to SSH Keys**: Allows the user to access the SSH Keys.
|
||||
|
||||
You can also grant permissions to specific users for accessing particular projects or services.
|
||||
|
||||
### Project Permissions
|
||||
|
||||
Based on your projects and services, you can assign permissions to specific users to give them access to particular projects or services.
|
||||
173
apps/docs-v2/content/docs/core/applications/advanced.mdx
Normal file
173
apps/docs-v2/content/docs/core/applications/advanced.mdx
Normal file
@@ -0,0 +1,173 @@
|
||||
---
|
||||
title: Advanced
|
||||
description: Learn how to use advanced features in your application.
|
||||
---
|
||||
|
||||
This section is designed for experienced users who need to manage complex configurations and orchestration settings in Dokploy. Here, you can execute custom commands, manage cluster replicas, select Docker registries, and configure Docker Swarm settings.
|
||||
|
||||
### Run Command
|
||||
|
||||
- **Purpose**: Allows users to execute custom shell commands directly within the container.
|
||||
- **Usage**: Enter the command you need to run in the provided field and click 'Save' to execute it within the container environment. This tool is particularly useful for debugging or specific administrative tasks.
|
||||
|
||||
### Cluster Settings
|
||||
|
||||
- **Purpose**: Manages the scaling and distribution of the application across multiple servers or nodes.
|
||||
- **Replicas**: Set the number of instances of your application that should be running.
|
||||
- **Registry Selection**: Choose the Docker registry from which your container images will be pulled. This is crucial for ensuring that the correct images are used during deployment.
|
||||
|
||||
#### Important Note
|
||||
Always click 'Redeploy' after modifying the cluster settings to apply the changes.
|
||||
|
||||
### Swarm Settings
|
||||
|
||||
Swarm settings allow for detailed configuration of how containers are orchestrated within the Docker Swarm.
|
||||
|
||||
#### Health Check
|
||||
|
||||
- **Purpose**: Ensures that containers are running smoothly and restarts them if they fail.
|
||||
- **Configuration**: Specify parameters like test commands, intervals, timeouts, start periods, and retries.
|
||||
|
||||
#### Restart Policy
|
||||
|
||||
Defines how containers should be handled if they exit or fail, the configuration is as follows:
|
||||
|
||||
- **Condition**: Specifies under what condition a restart should occur.
|
||||
- **Delay**: Sets the time delay between restarts.
|
||||
- **Max Attempts**: Limits the number of restart attempts.
|
||||
- **Window**: Defines the time window used to evaluate the restart policy.
|
||||
|
||||
#### Update Config
|
||||
|
||||
Manages the deployment and update process of services in the swarm, the configuration is as follows:
|
||||
|
||||
|
||||
- **Parallelism**: Number of containers to update simultaneously.
|
||||
- **Delay**: Time between updates.
|
||||
- **Failure Action**: Action to take if an update fails.
|
||||
- **Monitor**: Duration to monitor a container after an update.
|
||||
- **Max Failure Ratio**: The fraction of containers that are allowed to fail before the update is considered a failure.
|
||||
- **Order**: The order in which containers are stopped and started during an update.
|
||||
|
||||
#### Placement
|
||||
|
||||
Controls where containers are placed within the swarm based on specific rules and preferences, the configuration is as follows:
|
||||
|
||||
- **Constraints**: Conditions that must be met for a container to be placed on a node.
|
||||
- **Preferences**: Preferences for placing containers across nodes to spread load evenly.
|
||||
|
||||
### Rollback Config
|
||||
|
||||
Manages the rollback process for services when updates fail, the configuration is as follows:
|
||||
|
||||
- **Parallelism**: Number of containers to rollback simultaneously.
|
||||
- **Delay**: Time between rollbacks.
|
||||
- **FailureAction**: Action to take if a rollback fails.
|
||||
- **Monitor**: Duration to monitor a container after a rollback.
|
||||
- **MaxFailureRatio**: The fraction of containers that are allowed to fail before the rollback is considered a failure.
|
||||
- **Order**: The order in which containers are stopped and restarted during a rollback.
|
||||
|
||||
### Mode
|
||||
|
||||
Defines how services are replicated within the swarm, the configuration is as follows:
|
||||
|
||||
- **Replicated**: Services are replicated across nodes as specified.
|
||||
- **Replicas**: Number of replicas per service.
|
||||
- **Global**: A single instance of the service runs on every node.
|
||||
- **ReplicatedJob**: Runs a job in a replicated manner.
|
||||
- **MaxConcurrent**: Maximum number of jobs running concurrently.
|
||||
- **TotalCompletions**: Total number of times the jobs need to complete.
|
||||
|
||||
### Network
|
||||
|
||||
Configures network settings for the services, the configuration is as follows:
|
||||
|
||||
- **Target**: Specifies the network name.
|
||||
- **Aliases**: Provides aliases for the network.
|
||||
- **DriverOpts**: Network driver options like MTU size and host binding.
|
||||
|
||||
### Labels
|
||||
|
||||
Assigns metadata to containers to help identify and organize them, the configuration is as follows:
|
||||
|
||||
- **Labels**: Key-value pairs assigned to the service. For example:
|
||||
1. `com.example.app.name`: "my-app"
|
||||
2. `com.example.app.version`: "1.0.0"
|
||||
|
||||
|
||||
### Note
|
||||
Modifying Swarm Settings requires careful consideration as incorrect configurations can disrupt the entire container orchestration. Always ensure you understand the implications of the changes you are making.
|
||||
|
||||
|
||||
## Resources
|
||||
|
||||
Manage the memory and CPU resources allocated to your applications or databases.
|
||||
|
||||
- **Memory Reservation**: The minimum amount of memory guaranteed to the application.
|
||||
- **Memory Limit**: The maximum amount of memory the application can use.
|
||||
- **CPU Limit**: The maximum number of CPU units that the application can utilize.
|
||||
- **CPU Reservation**: The minimum number of CPU units reserved for the application.
|
||||
|
||||
|
||||
### Volumes/Mounts
|
||||
|
||||
Configure persistent storage for your application to ensure data remains intact across container restarts and deployments.
|
||||
|
||||
|
||||
**Bind Mount**: Maps a host file or directory to a container file or directory. Typically used for specific configurations or databases.
|
||||
1. **Host Path**: Path on the host.
|
||||
2. **Mount Path**: Path in the container.
|
||||
|
||||
**Volume Mount**: Uses Docker-managed volumes that are easier to back up and migrate than bind mounts.
|
||||
1. **Volume Name**: Name of the Docker-managed volume.
|
||||
2. **Mount Path**: Path in the container where the volume is mounted.
|
||||
|
||||
**File Mount**: Specifically for single files, useful for configuration files.
|
||||
1. **Content**: The content to store in the file.
|
||||
2. **Mount Path**: Path in the container where the file is placed.
|
||||
|
||||
File mounts are a dokploy features, this create a file in a folder called `files` inside your project, so it recreates every single time you deploy your project.
|
||||
|
||||
<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"/>
|
||||
|
||||
### Redirects
|
||||
|
||||
Redirect requests to your application to another URL based on specified rules, enhancing navigational efficiency and SEO.
|
||||
|
||||
- **Regex**: Enter a regular expression to match the URLs that need redirecting.
|
||||
- **Replacement**: Specify the target URL where traffic should be redirected.
|
||||
- **Permanent**: Toggle this option to apply a permanent (HTTP 301) redirection, indicating to browsers and search engines that the page has moved permanently.
|
||||
|
||||
#### Example
|
||||
To redirect all traffic from "http://localhost" to "http://mydomain", set the Regex as `http://localhost/(.*)` and the Replacement as `http://mydomain/$1`.
|
||||
|
||||
|
||||
### Security
|
||||
|
||||
Add basic authentication to your application to restrict access.
|
||||
|
||||
- **Username**: Enter a username.
|
||||
- **Password**: Enter a password.
|
||||
|
||||
#### Important Note
|
||||
Adding basic authentication will prompt users for a username and password before allowing access to the application. Use this for environments where an additional layer of security is required.
|
||||
|
||||
|
||||
### Ports
|
||||
|
||||
Expose your application to the internet by configuring network ports, allowing external access.
|
||||
|
||||
- **Published Port**: The port number on the host that will route traffic to your application.
|
||||
- **Target Port**: The port number inside the container that the application uses.
|
||||
- **Protocol**: Choose between TCP and UDP based on your application's requirements.
|
||||
|
||||
#### Important Note
|
||||
Ensure that the published port does not conflict with other services on the host to avoid port binding errors, also this port is used mostly for accesing the application from the outside, eg your-ip:port, this is not for accessing the application trought a domain.
|
||||
|
||||
### Traefik
|
||||
|
||||
Provides a dynamic and robust method to manage HTTP traffic to your services, including load balancing and SSL termination.
|
||||
|
||||
- **Rules**: Define complex routing, load balancing, and security configurations using Traefik's powerful rule-based configuration system.
|
||||
86
apps/docs-v2/content/docs/core/applications/auto-deploy.mdx
Normal file
86
apps/docs-v2/content/docs/core/applications/auto-deploy.mdx
Normal file
@@ -0,0 +1,86 @@
|
||||
---
|
||||
title: Auto Deploy
|
||||
description: "Learn how to automatically deploy your application to Dokploy."
|
||||
---
|
||||
|
||||
Automatically deploying your 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 application whenever changes are made in your source repository.
|
||||
|
||||
- GitHub
|
||||
- GitLab
|
||||
- Bitbucket
|
||||
- Gitea
|
||||
- DockerHub
|
||||
|
||||
### 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.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.
|
||||
- **Docker Tags**: For deployments using DockerHub, ensure the tag pushed matches the one specified in Dokploy.
|
||||
- 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 Application 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 applicationId for the application you wish to deploy.
|
||||
|
||||
3. **Trigger Deployment**:
|
||||
|
||||
```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"
|
||||
}'
|
||||
```
|
||||
|
||||
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.
|
||||
34
apps/docs-v2/content/docs/core/applications/build-type.mdx
Normal file
34
apps/docs-v2/content/docs/core/applications/build-type.mdx
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
title: Build Type
|
||||
description: "Learn about the different build types available in Dokploy, including Nixpacks, Dockerfile, and Buildpack options."
|
||||
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
|
||||
|
||||
Dokploy offers three distinct build types for deploying applications, each suited to different development needs and preferences.
|
||||
|
||||
### Nixpacks
|
||||
|
||||
This is the default build type in Dokploy. When you select Nixpacks, Dokploy builds your application as a Nixpack, which is optimized for ease of use and efficiency.
|
||||
|
||||
You can read more about Nixpacks [here](https://nixpacks.com/).
|
||||
|
||||
### Dockerfile
|
||||
|
||||
If your project includes a Dockerfile, you can specify its path. Dokploy will use this Dockerfile to build your application directly, giving you full control over the build environment and dependencies.
|
||||
|
||||
### Buildpack
|
||||
|
||||
Dokploy supports two types of buildpacks:
|
||||
|
||||
- **Heroku**: Adapted from Heroku's popular cloud platform, these buildpacks are designed for compatibility and ease of migration.
|
||||
- **Paketo**: Provides cloud-native buildpacks that leverage modern standards and practices for building applications.
|
||||
|
||||
<Callout>
|
||||
**Tip:** We recommend using the `Nixpacks` build type as it is the most
|
||||
straightforward and commonly used option for most applications.
|
||||
</Callout>
|
||||
|
||||
By choosing the appropriate build type, you can tailor the deployment process to best fit your application's requirements and your operational preferences.
|
||||
48
apps/docs-v2/content/docs/core/applications/domains.mdx
Normal file
48
apps/docs-v2/content/docs/core/applications/domains.mdx
Normal file
@@ -0,0 +1,48 @@
|
||||
---
|
||||
title: Domains
|
||||
description: Domains
|
||||
---
|
||||
|
||||
This section outlines how to configure domains for your applications in Dokploy, ensuring that your applications are accessible via custom URLs.
|
||||
|
||||
|
||||
### Add Domain
|
||||
|
||||
Associate custom domains with your application to make it accessible over the internet.
|
||||
|
||||
- **Host**: The domain name that you want to link to your application (e.g., `api.dokploy.com`).
|
||||
- **Path**: The specific path within the domain where the application should be accessible.
|
||||
- **Container Port**: The port on the container that the domain should route to.
|
||||
- **Certificate**: Select whether to secure the domain with SSL/TLS certificates. Dokploy supports automatic provisioning of SSL certificates via Let's Encrypt.
|
||||
- **HTTPS**: Toggle this on to enable HTTPS for your domain, providing secure, encrypted connections.
|
||||
|
||||
#### Steps to Add a Domain
|
||||
1. Click 'Add Domain'.
|
||||
2. Fill in the domain details, including host, path, and port.
|
||||
3. Choose to enable HTTPS and select a certificate option.
|
||||
4. Click 'Create' to apply the settings.
|
||||
|
||||
### Generate Domain
|
||||
|
||||
Quickly set up a domain for development or testing purposes without needing to register a domain.
|
||||
|
||||
- **Generate TraefikMe Domain**: Creates a free domain provided by TraefikMe. This is ideal for testing or temporary access before a proper domain is purchased.
|
||||
|
||||
#### Steps to Generate a Domain
|
||||
1. Click 'Generate Domain'.
|
||||
2. Choose 'Generate TraefikMe Domain' for a quick setup.
|
||||
3. A domain will be automatically assigned to your application.
|
||||
|
||||
### Managing Domains
|
||||
|
||||
- **View and Modify**: Existing domains are listed with options to edit settings or remove them.
|
||||
- **Details**: Each domain entry shows the configured host, path, port, and whether HTTPS is enabled.
|
||||
|
||||
### Note
|
||||
|
||||
Proper domain configuration is crucial for the accessibility and security of your application. Always verify domain settings and ensure that DNS configurations are properly set up to point to the correct IP addresses. Enable HTTPS to enhance security and trust, especially for production environments.
|
||||
|
||||
|
||||
### Important Clarification on Container Ports
|
||||
|
||||
The "Container Port" specified in the domain settings is exclusively for routing traffic to the correct application container through Traefik, and does not expose the port directly to the internet. This is fundamentally different from the port settings in the "Advanced -> Ports" section, which are used to directly expose application ports. The container port in the domain settings ensures that Traefik can internally direct traffic to the specified port within the container based on the domain configuration.
|
||||
58
apps/docs-v2/content/docs/core/applications/index.mdx
Normal file
58
apps/docs-v2/content/docs/core/applications/index.mdx
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
title: Applications
|
||||
description: "Explore the multiple deployment methods available in Dokploy, including GitHub, Git, Docker, and automated deployments via webhooks."
|
||||
---
|
||||
|
||||
Applications in Dokploy are treated as a single service, entity or container, making it easy and intuitive for users to work with each application in its own workspace.
|
||||
|
||||
We offer multiple functionalities that you can use to manage your applications, such as:
|
||||
|
||||
## 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.
|
||||
|
||||
## Environment
|
||||
|
||||
If you need to assign environment variables to your application, you can do so here.
|
||||
|
||||
In case you need to use a multiline variable, you can wrap it in double quotes just like this `'"here_is_my_private_key"'`.
|
||||
|
||||
## Monitoring
|
||||
|
||||
Four graphs will be displayed for the use of memory, CPU, disk, and network. Note that the information is only updated if you are viewing the current page, otherwise it will not be updated.
|
||||
|
||||
## Logs
|
||||
|
||||
If you want to see any important logs from your application that is running, you can do so here and determine if your application is displaying any errors or not.
|
||||
|
||||
## 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, DockerHub repository.
|
||||
|
||||
## Domains
|
||||
|
||||
This is where you will assign your domain so that your application can be accessed from the internet.
|
||||
|
||||
There are two ways to assign a domain:
|
||||
|
||||
1. Create a custom domain.
|
||||
2. Use a generated domain, we use traefik.me to generate free domains.
|
||||
|
||||
## Advanced Settings
|
||||
|
||||
This section provides advanced configuration options for experienced users. It includes tools for custom commands within the container, managing Docker Swarm settings, and adjusting cluster settings such as replicas and registry selection. These tools are typically not required for standard application deployment and are intended for complex management and troubleshooting tasks.
|
||||
|
||||
- **Run Command**: Execute custom commands directly in the container, after the application has been build & running.
|
||||
- **Cluster Settings**: Configure the number of replicas and select the Docker registry for your deployment to manage how your application scales and where it pulls images from.
|
||||
- **Swarm Settings**: Access additional Docker Swarm configurations for detailed orchestration and scaling across multiple nodes.
|
||||
- **Resources**: Adjust the CPU and memory allocation for your application.
|
||||
- **Volumes**: To ensure data persistence across deployments, configure storage volumes for your application, you can create Volumes, Binds, File Mounts.
|
||||
- **Ports**: Expose your application to the internet by configuring network ports.
|
||||
- **Traefik**: Modify Traefik settings to manage HTTP request handling for your application.
|
||||
|
||||
### Note
|
||||
Adjust these settings carefully as incorrect configurations can significantly impact your application’s functionality and availability.
|
||||
58
apps/docs-v2/content/docs/core/applications/providers.mdx
Normal file
58
apps/docs-v2/content/docs/core/applications/providers.mdx
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
title: Providers
|
||||
description: Learn how to use providers in your application.
|
||||
---
|
||||
|
||||
Dokploy offers several deployment methods, streamlining the process whether you're utilizing GitHub, any Git provider, Docker, or automated deployments.
|
||||
|
||||
- GitHub
|
||||
- Gitlab
|
||||
- Bitbucket
|
||||
- Git (Any Git Provider)
|
||||
- Docker
|
||||
- Drop(Drag and Drop .zip)
|
||||
|
||||
## GitHub, Gitlab, Bitbucket
|
||||
|
||||
Go to [Git Sources](/docs/core/git-sources/github) and select the provider you want to use.
|
||||
|
||||
## Git
|
||||
|
||||
For deployments from any Git repository, whether public or private, you can use either SSH or HTTPS:
|
||||
|
||||
### Public Repositories (HTTPS)
|
||||
|
||||
1. Enter the repository URL in `HTTPS URL`.
|
||||
2. Type the branch name.
|
||||
3. Click on `Save`.
|
||||
|
||||
### Private Repositories
|
||||
|
||||
For private repositories, is required to first create an SSH Key.
|
||||
|
||||
1. Go to [SSH Keys](/docs/core/ssh-keys/overview) and click on `Create SSH Key`.
|
||||
2. Click on `Generate RSA SSH Key` and copy the `Public Key`.
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/dokploy-ssh-key.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.
|
||||
|
||||
## Docker
|
||||
|
||||
For Docker deployments:
|
||||
|
||||
- Provide a Docker image. For private repositories, enter the username and password.
|
||||
29
apps/docs-v2/content/docs/core/architecture.mdx
Normal file
29
apps/docs-v2/content/docs/core/architecture.mdx
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
title: 'Architecture of Dokploy'
|
||||
description: 'Overview of the core architecture components of Dokploy.'
|
||||
---
|
||||
|
||||
Understanding the architecture of Dokploy is crucial for both deploying and scaling applications. Below is a diagram illustrating the core components:
|
||||
|
||||
<ImageZoom src="/assets/architecture.png" alt="Architecture Diagram" width={1000} height={600} className="rounded-lg"/>
|
||||
|
||||
|
||||
## Installation Process
|
||||
|
||||
When Dokploy is installed, it automatically sets up the following components:
|
||||
|
||||
1. **Next.js Application**: Serves as the frontend interface. Utilizing Next.js allows for an integrated server-side rendering experience, streamlining the UI and backend into a single cohesive application.
|
||||
2. **PostgreSQL Database**: Acts as the primary database for Dokploy, chosen for its robustness and widespread adoption. It stores all the configuration and operational data.
|
||||
3. **Redis Database**: Employed for managing deployment queues. This ensures that multiple deployments do not trigger simultaneously, which could lead to high server load and potential freezing.
|
||||
4. **Traefik**: Used as a reverse proxy and load balancer. Traefik facilitates dynamic routing and service discovery which simplifies the configuration process by allowing declarative setup through the UI.
|
||||
|
||||
## Purpose and Functionality
|
||||
|
||||
Each component in the Dokploy architecture plays a vital role:
|
||||
|
||||
- **Next.js**: Provides a scalable and easy-to-manage frontend framework, encapsulating both server and client-side logic in one platform. This simplifies deployment and development workflows.
|
||||
- **PostgreSQL**: Delivers reliable and secure data storage capabilities. Its use within Dokploy ensures consistency and high performance for all database operations.
|
||||
- **Redis**: Handles concurrency and job scheduling. By using Redis, Dokploy can efficiently manage deployment tasks, avoiding collisions and server overload during simultaneous operations.
|
||||
- **Traefik**: Enhances Docker integration. Its ability to read from and write to Docker configurations declaratively allows Dokploy to automate and streamline network traffic management and service discovery.
|
||||
|
||||
This structure ensures that Dokploy is not only efficient in deploying applications but also robust in handling traffic and data at scale.
|
||||
21
apps/docs-v2/content/docs/core/certificates.mdx
Normal file
21
apps/docs-v2/content/docs/core/certificates.mdx
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
title: Certificates
|
||||
description: 'Configure your certificates to secure your applications.'
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
|
||||
Dokploy offers a UI to manage your certificates.
|
||||
|
||||
|
||||
We expose a UI to create and delete the certificates, we ask two fields:
|
||||
|
||||
1. **Name**: Enter a name for the certificate (this can be anything you choose).
|
||||
2. **Certificate Data**: Provide the certificate details.
|
||||
3. **Private Key**: Enter the private key.
|
||||
4. **(Optional) Server**: If you want to create a certificate for a server, you can select it here.
|
||||
|
||||
<Callout type='warn'>
|
||||
This action will create the files, but that doesn't mean it will work automatically. You need to adjust the Traefik configuration to use it, this configuration will make
|
||||
to traefik can recognize the certificate.
|
||||
</Callout>
|
||||
26
apps/docs-v2/content/docs/core/databases/backups.mdx
Normal file
26
apps/docs-v2/content/docs/core/databases/backups.mdx
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
title: Backups
|
||||
description: "Learn how to schedule and manage backups for your databases in Dokploy, with options for storage in S3 buckets."
|
||||
---
|
||||
|
||||
Dokploy provides an integrated solution for backing up your databases, ensuring data safety and recovery capabilities.
|
||||
|
||||
## Backing Up Your Database
|
||||
|
||||
To configure database backups, navigate to the `Backup` tab within your Dokploy dashboard. Here’s what you’ll need to set up:
|
||||
|
||||
- **Select Destination S3 Bucket**: Specify where your backups will be stored. Buckets can be configured in the `/dashboard/settings/destinations` route.
|
||||
- **Database Name**: Enter the name of the database you want to backup.
|
||||
- **Schedule Cron**: Define the schedule for your backups using cron syntax.
|
||||
- **Prefix**: Choose a prefix under which backups will be stored in your bucket.
|
||||
- **Enabled**: Toggle whether backups are active. The default setting is enabled.
|
||||
|
||||
### Testing Your Backup Configuration
|
||||
|
||||
To ensure your backup settings are correctly configured:
|
||||
|
||||
1. Click the `Test` button.
|
||||
2. This will initiate a test backup to the S3 bucket you selected.
|
||||
3. Check the bucket to see the result of the test backup.
|
||||
|
||||
This feature provides peace of mind by verifying that your backup process is set up correctly before relying on it for operational backups.
|
||||
33
apps/docs-v2/content/docs/core/databases/connection.mdx
Normal file
33
apps/docs-v2/content/docs/core/databases/connection.mdx
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
title: Connection
|
||||
description: "Learn how to connect to your database using Dokploy."
|
||||
---
|
||||
|
||||
This section explains how to configure database access for applications in Dokploy, including both internal connections within your network and external connections accessible over the internet.
|
||||
|
||||
### Internal Credentials
|
||||
|
||||
Used for connecting to the database from within the same network, without exposing the database to the internet.
|
||||
|
||||
- **User**: Username for the database access.
|
||||
- **Password**: Secure password for database access.
|
||||
- **Database Name**: The name of the database to connect to.
|
||||
- **Internal Host**: The hostname or internal identifier for the database within the network.
|
||||
- **Internal Port (Container)**: The port used within the container to connect to the database.
|
||||
- **Internal Connection URL**: The full connection string used internally to connect to the database.
|
||||
|
||||
### External Credentials
|
||||
|
||||
Enables the database to be reachable from the internet, necessary for remote management or external applications.
|
||||
|
||||
- **External Port (Internet)**: Assign a port that is not currently used by another service to expose the database externally.
|
||||
|
||||
#### Steps to Configure External Access
|
||||
1. Ensure the external port is available and not in conflict with other services.
|
||||
2. Enter the external port you wish to use to expose your database.
|
||||
3. The system will automatically generate an external connection URL, which can be used to access the database from any database management tool over the internet, like phpMyAdmin, MySQL Workbench, PgAdmin, etc.
|
||||
|
||||
### Important Note
|
||||
|
||||
For security reasons, internal credentials should be used for applications running within the same network or environment to prevent unauthorized access. External credentials should only be used when necessary and with proper security measures in place, such as VPNs or IP whitelisting.
|
||||
|
||||
51
apps/docs-v2/content/docs/core/databases/index.mdx
Normal file
51
apps/docs-v2/content/docs/core/databases/index.mdx
Normal file
@@ -0,0 +1,51 @@
|
||||
---
|
||||
title: Databases
|
||||
description: "Discover how to create and backup databases easily with Dokploy, supporting a variety of database systems."
|
||||
---
|
||||
|
||||
Dokploy simplifies the process of creating and managing databases, offering robust options for both setup and backups.
|
||||
|
||||
## Database Support
|
||||
|
||||
Dokploy currently supports a range of popular database systems, ensuring compatibility and flexibility for your projects:
|
||||
|
||||
- **Postgres**: Robust, SQL-compliant and highly reliable.
|
||||
- **MySQL**: Widely used relational database known for its performance and flexibility.
|
||||
- **MariaDB**: A fork of MySQL with additional features and improved performance.
|
||||
- **MongoDB**: A NoSQL database known for its high scalability and flexibility.
|
||||
- **Redis**: An in-memory key-value store often used as a database, cache, and message broker.
|
||||
|
||||
|
||||
We offer multiple functionalities that you can use to manage your databases, such as:
|
||||
|
||||
## General
|
||||
|
||||
Actions like deploying, updating, and deleting your database, and stopping it.
|
||||
|
||||
## Environment
|
||||
|
||||
If you need to assign environment variables to your application, you can do so here.
|
||||
|
||||
In case you need to use a multiline variable, you can wrap it in double quotes just like this `'"here_is_my_private_key"'`.
|
||||
|
||||
## Monitoring
|
||||
|
||||
Four graphs will be displayed for the use of memory, CPU, disk, and network. Note that the information is only updated if you are viewing the current page, otherwise it will not be updated.
|
||||
|
||||
## Backups
|
||||
|
||||
We offer automated backups for your databases, ensuring that you can recover your data quickly and easily in case of any issues, you can setup a S3 Destinations in settings to store your backups.
|
||||
|
||||
|
||||
## Logs
|
||||
|
||||
If you want to see any important logs from your application that is running, you can do so here and determine if your application is displaying any errors or not.
|
||||
|
||||
## Advanced
|
||||
|
||||
This section provides advanced configuration options for experienced users. It includes tools for custom commands within the container, managing Docker Swarm settings, and adjusting cluster settings such as replicas and registry selection. These tools are typically not required for standard application deployment and are intended for complex management and troubleshooting tasks.
|
||||
|
||||
- **Custom Docker Image**: You can change the Docker image used to run your database.
|
||||
- **Run Command**: Execute custom commands directly in the container for advanced management or troubleshooting.
|
||||
- **Volumes**: To ensure data persistence across deployments, configure storage volumes for your application.
|
||||
- **Resources**: Adjust the CPU and memory allocation for your application.
|
||||
@@ -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://your-domain/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.
|
||||
181
apps/docs-v2/content/docs/core/docker-compose/domains.mdx
Normal file
181
apps/docs-v2/content/docs/core/docker-compose/domains.mdx
Normal file
@@ -0,0 +1,181 @@
|
||||
---
|
||||
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.
|
||||
|
||||
import { Callout } from "fumadocs-ui/components/callout";
|
||||
|
||||
<Callout title="Attention" type="info">
|
||||
Since v0.7.0 Dokploy support domains natively. This means that you can
|
||||
configure your domain directly in the Dokploy UI, without doing the rest of
|
||||
the steps.
|
||||
</Callout>
|
||||
|
||||
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:
|
||||
|
||||
```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-v2/content/docs/core/docker-compose/example.mdx
Normal file
110
apps/docs-v2/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.
|
||||
|
||||
76
apps/docs-v2/content/docs/core/docker-compose/index.mdx
Normal file
76
apps/docs-v2/content/docs/core/docker-compose/index.mdx
Normal file
@@ -0,0 +1,76 @@
|
||||
---
|
||||
title: Docker Compose
|
||||
description: "Learn how to use Docker Compose with Dokploy"
|
||||
---
|
||||
|
||||
import { Callout } from "fumadocs-ui/components/callout";
|
||||
|
||||
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"
|
||||
/>
|
||||
|
||||
<Callout title="Volumes">
|
||||
Docker volumes are a way to persist data generated and used by Docker containers. They are particularly useful for maintaining data between container restarts or for sharing data among different containers.
|
||||
|
||||
To bind a volume to the host machine, you can use the following syntax in your docker-compose.yml file, but this way will clean up the volumes when a new deployment is made:
|
||||
|
||||
```yaml
|
||||
volumes:
|
||||
- "/folder:/path/in/container" ❌
|
||||
```
|
||||
|
||||
It's recommended to use the ../files folder to ensure your data persists between deployments. For example:
|
||||
|
||||
```yaml
|
||||
volumes:
|
||||
- "../files/my-database:/var/lib/mysql" ✅
|
||||
- "../files/my-configs:/etc/my-app/config" ✅
|
||||
```
|
||||
|
||||
</Callout>
|
||||
66
apps/docs-v2/content/docs/core/docker-compose/providers.mdx
Normal file
66
apps/docs-v2/content/docs/core/docker-compose/providers.mdx
Normal file
@@ -0,0 +1,66 @@
|
||||
---
|
||||
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
|
||||
- Gitlab
|
||||
- Bitbucket
|
||||
- Git (Any Git Provider)
|
||||
- Raw
|
||||
|
||||
## GitHub
|
||||
|
||||
Deploying via GitHub:
|
||||
|
||||
1. Configure your GitHub repository in the `/dashboard/settings/git-providers`.
|
||||
2. When creating an application, Dokploy automatically retrieves the available repositories and branches.
|
||||
|
||||
## Gitlab
|
||||
|
||||
Deploying via Gitlab:
|
||||
|
||||
1. Configure your Gitlab repository in the `/dashboard/settings/git-providers`.
|
||||
2. When creating an application, Dokploy automatically retrieves the available repositories and branches.
|
||||
|
||||
## Bitbucket
|
||||
|
||||
Deploying via Bitbucket:
|
||||
|
||||
1. Configure your Bitbucket repository in the `/dashboard/settings/git-providers`.
|
||||
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.
|
||||
102
apps/docs-v2/content/docs/core/features.mdx
Normal file
102
apps/docs-v2/content/docs/core/features.mdx
Normal file
@@ -0,0 +1,102 @@
|
||||
---
|
||||
title: 'Features'
|
||||
description: 'Explore the comprehensive suite of features available in Dokploy for optimized application deployment and management.'
|
||||
---
|
||||
|
||||
Dokploy provides a comprehensive suite of features designed to simplify and enhance the application deployment process.
|
||||
|
||||
## Application Deployment
|
||||
|
||||
Dokploy supports two primary methods for deploying applications:
|
||||
|
||||
1. **Applications**: This straightforward method allows for effortless deployment. Ideal for single applications, it offers a near plug-and-play experience.
|
||||
2. **Docker Compose**: A more advanced option, requiring the creation of Dockerfiles and `docker-compose.yml`. This method provides greater control over deployment settings and full utilization of Docker Compose capabilities.
|
||||
|
||||
### Applications Management
|
||||
|
||||
Manage your applications through a range of features:
|
||||
|
||||
**Basic Operations**:
|
||||
1. Deploy, stop, and delete applications.
|
||||
2. Open a terminal directly in the application container.
|
||||
|
||||
**Source and Build Configuration**:
|
||||
1. Choose source providers (GitHub, Git, Docker).
|
||||
2. Select build types (Docker, Nixpacks, Heroku Buildpacks, Paketo Buildpacks).
|
||||
|
||||
|
||||
**Environment Management**:
|
||||
1. Add and manage environment variables.
|
||||
|
||||
**Monitoring Tools**:
|
||||
1. Monitor CPU, memory, disk, and network usage.
|
||||
|
||||
**Logs**:
|
||||
1. Access real-time logs.
|
||||
|
||||
**Deployments**:
|
||||
1. View and manage deployments, you can see the logs of the building application.
|
||||
2. Cancel queued deployments in case you have a lot of deployments in the queue, the most common is when you push alot of times in your repository, you can cancel the incoming queues, not the deployments that are already running.
|
||||
|
||||
**Domain Management**:
|
||||
1. Add, delete, and generate domains.
|
||||
|
||||
**Advanced Settings**:
|
||||
1. Customize initial commands and cluster settings.
|
||||
2. Set resource limits and manage volumes for data persistence.
|
||||
3. Configure redirects, security headers, and port settings.
|
||||
4. Detailed Traefik configuration for specific needs.
|
||||
|
||||
### Docker Compose Management
|
||||
|
||||
Enhance your Docker Compose experience with these advanced functionalities:
|
||||
|
||||
**Lifecycle Management**:
|
||||
1. Deploy, stop, and delete Docker Compose setups.
|
||||
2. Open a terminal with service selection capability.
|
||||
|
||||
**Source Configuration**:
|
||||
1. Choose source providers (GitHub, Git, Raw).
|
||||
|
||||
**Environment Management**:
|
||||
1. Add and manage environment variables.
|
||||
|
||||
**Monitoring Tools**:
|
||||
1. Monitor CPU, memory, disk, and network usage of each service.
|
||||
|
||||
**Logs**:
|
||||
1. View real-time logs of each service.
|
||||
|
||||
**Deployments**:
|
||||
1. View and manage deployments, you can see the logs of the building application.
|
||||
2. Cancel queued deployments in case you have a lot of deployments in the queue, the most common is when you push alot of times in your repository, you can cancel the incoming queues, not the deployments that are already running.
|
||||
|
||||
**Advanced Settings**:
|
||||
1. Append command, by default we use a internal command to build the docker compose however, you can append a command to the existing one.
|
||||
2. Manage volumes and mounts.
|
||||
|
||||
## Database Deployment
|
||||
|
||||
Deploy and manage a variety of databases:
|
||||
|
||||
|
||||
**Supported Databases**:
|
||||
1. MySQL, PostgreSQL, MongoDB, Redis, MariaDB.
|
||||
|
||||
**General Management**:
|
||||
1. Deploy, stop, and delete databases.
|
||||
2. Open a terminal within the database container.
|
||||
|
||||
**Environment and Monitoring**:
|
||||
1. Manage environment variables.
|
||||
2. Monitor CPU, memory, disk, and network usage.
|
||||
|
||||
**Backups and Logs**:
|
||||
1. Configure manual and scheduled backups.
|
||||
2. View real-time logs.
|
||||
|
||||
**Advanced Configuration**:
|
||||
1. Use custom Docker images and initial commands.
|
||||
2. Configure volumes and resource limits.
|
||||
|
||||
These features are designed to offer flexibility and control over your deployment environments, ensuring that Dokploy meets the diverse needs of modern application deployment and management.
|
||||
54
apps/docs-v2/content/docs/core/index.mdx
Normal file
54
apps/docs-v2/content/docs/core/index.mdx
Normal file
@@ -0,0 +1,54 @@
|
||||
---
|
||||
title: Welcome to Dokploy
|
||||
description: Dokploy is a open source alternative to Heroku, Vercel, and Netlify.
|
||||
|
||||
---
|
||||
import { Card, Cards } from 'fumadocs-ui/components/card';
|
||||
|
||||
|
||||
Dokploy is a stable, easy-to-use deployment solution designed to simplify the application management process. Think of Dokploy as your free self hostable alternative to platforms like Heroku, Vercel, and Netlify, leveraging the robustness of [Docker](https://www.docker.com/) and the flexibility of [Traefik](https://traefik.io/).
|
||||
|
||||
|
||||
|
||||
{/* <ImageZoom src="/logo.png" width={1300} height={630} alt='home og image' /> */}
|
||||
|
||||

|
||||
|
||||
## Why Choose Dokploy?
|
||||
|
||||
- **Simplicity:** Easy setup and management of deployments.
|
||||
- **Flexibility:** Supports a wide range of applications and databases.
|
||||
- **Open Source:** Free and open-source software, available for anyone to use.
|
||||
|
||||
|
||||
## Setting up Dokploy
|
||||
|
||||
Getting started with Dokploy is straightforward. Follow our guides to install and configure your applications and databases effectively.
|
||||
|
||||
## Setting up
|
||||
|
||||
Please go to get started.
|
||||
|
||||
|
||||
<Cards>
|
||||
<Card
|
||||
href="/docs/core/get-started/installation"
|
||||
title="Installation"
|
||||
description="Learn how to install Dokploy."
|
||||
/>
|
||||
<Card
|
||||
href="/docs/core/application/overview"
|
||||
title="Applications"
|
||||
description="Learn how to deploy applications."
|
||||
/>
|
||||
<Card
|
||||
href="/docs/core/databases/overview"
|
||||
title="Databases"
|
||||
description="Learn how to deploy databases."
|
||||
/>
|
||||
<Card
|
||||
href="/docs/core/traefik/overview"
|
||||
title="Traefik"
|
||||
description="Learn how to deploy Traefik."
|
||||
/>
|
||||
</Cards>
|
||||
85
apps/docs-v2/content/docs/core/installation.mdx
Normal file
85
apps/docs-v2/content/docs/core/installation.mdx
Normal file
@@ -0,0 +1,85 @@
|
||||
---
|
||||
title: Installation
|
||||
description: "Get Dokploy up and running on your server within minutes with this easy-to-follow installation guide."
|
||||
---
|
||||
|
||||
Follow these steps in order to set up Dokploy locally and deploy it to your server, effectively managing Docker containers and applications:
|
||||
|
||||
You need to follow this steps in the same order:
|
||||
|
||||
1. [Virtual Private Server (VPS)](#virtual-private-server-vps)
|
||||
|
||||
## Virtual Private Server (VPS)
|
||||
|
||||
There are multiple VPS providers to choose from:
|
||||
|
||||
We have tested on the following Linux Distros:
|
||||
|
||||
- Ubuntu 24.04 LTS
|
||||
- Ubuntu 23.10
|
||||
- Ubuntu 22.04 LTS
|
||||
- Ubuntu 20.04 LTS
|
||||
- Ubuntu 18.04 LTS
|
||||
- Debian 12
|
||||
- Debian 11
|
||||
- Debian 10
|
||||
- Fedora 40
|
||||
- Centos 9
|
||||
- Centos 8
|
||||
|
||||
### Providers
|
||||
|
||||
- [Hostinger](https://www.hostinger.com/vps-hosting?ref=dokploy) Get 20% Discount using this referral link: [Referral Link](https://www.hostinger.com/vps-hosting?REFERRALCODE=1SIUMAURICI97)
|
||||
- [DigitalOcean](https://www.digitalocean.com/pricing/droplets#basic-droplets) Get 200$ credits for free with this referral link: [Referral Link](https://m.do.co/c/db24efd43f35)
|
||||
- [Hetzner](https://www.hetzner.com/cloud/) Get 20€ credits for free with this referral link: [Referral Link](https://hetzner.cloud/?ref=vou4fhxJ1W2D)
|
||||
- [Vultr](https://www.vultr.com/pricing/#cloud-compute) Referral Link: [Referral Link](https://www.vultr.com/?ref=9679828)
|
||||
- [Linode](https://www.linode.com/es/pricing/#compute-shared)
|
||||
- [Scaleway](https://www.scaleway.com/en/pricing/?tags=baremetal,available)
|
||||
- [Google Cloud](https://cloud.google.com/)
|
||||
- [AWS](https://aws.amazon.com/ec2/pricing/)
|
||||
|
||||
### Requirements
|
||||
|
||||
To ensure a smooth experience with Dokploy, your server should have at least 2GB of RAM and 30GB of disk space. This specification helps to handle the resources consumed by Docker during builds and prevents system freezes.
|
||||
|
||||
import { Callout } from "fumadocs-ui/components/callout";
|
||||
|
||||
<Callout>
|
||||
**Suggestion:** For cost efficiency with reliable service, we recommend
|
||||
Hetzner as the best value-for-money VPS provider.
|
||||
</Callout>
|
||||
|
||||
### Docker
|
||||
|
||||
Dokploy utilizes Docker, so it is essential to have Docker installed on your server. If Docker is not already installed, use the following command to install it automatically:
|
||||
|
||||
<div className="flex flex-col gap-10 px-4 bg-green-200 dark:bg-[#031F10] text-green-900 dark:text-green-300 rounded-lg">
|
||||
|
||||
Dokploy Cloud: Use Dokploy directly without worrying about maintenance or updates. Enjoy a hassle-free experience with Dokploy Cloud. <a href="https://app.dokploy.com/register" className="text-green-600 underline">Sign up</a>
|
||||
</div>
|
||||
|
||||
```bash
|
||||
curl -sSL https://dokploy.com/install.sh | sh
|
||||
```
|
||||
|
||||
## Completing the Setup
|
||||
|
||||
After running the installation script, Dokploy and its dependencies will be set up on your server. Here's how to finalize the setup and start using Dokploy:
|
||||
|
||||
### Accessing Dokploy
|
||||
|
||||
Open your web browser and navigate to `http://your-ip-from-your-vps:3000`. You will be directed to the initial setup page where you can configure the administrative account for Dokploy.
|
||||
|
||||
### Initial Configuration
|
||||
|
||||
1. **Create an Admin Account:** Fill in the necessary details to set up your administrator account. This account will be the admin account for Dokploy.
|
||||
|
||||
{" "}
|
||||
|
||||
<ImageZoom
|
||||
src="/assets/images/setup.png"
|
||||
width={1300}
|
||||
height={650}
|
||||
alt="home og image"
|
||||
className="rounded-lg"
|
||||
/>
|
||||
167
apps/docs-v2/content/docs/core/manual-installation.mdx
Normal file
167
apps/docs-v2/content/docs/core/manual-installation.mdx
Normal file
@@ -0,0 +1,167 @@
|
||||
---
|
||||
title: 'Manual Installation'
|
||||
description: 'Learn how to manually install Dokploy on your server.'
|
||||
---
|
||||
|
||||
If you wish to customize the Dokploy installation on your server, you can modify several enviroment variables:
|
||||
|
||||
1. **PORT** - Ideal for avoiding conflicts with other services.
|
||||
2. **TRAEFIK_SSL_PORT** - Set to another port if you want to use a different port for SSL.
|
||||
3. **TRAEFIK_PORT** - Set to another port if you want to use a different port for Traefik.
|
||||
4. **ADVERTISE_ADDR** - Set to another IP address if you want to use a different IP address for Swarm.
|
||||
5. **RELEASE_TAG** - Set to a dokploy docker hub tag(latest, canary, feature, etc)
|
||||
|
||||
## Installation Script
|
||||
|
||||
Here is a Bash script for installing Dokploy on a Linux server. Make sure you run this as root on a Linux environment that is not a container, and ensure ports 80 and 443 are free.
|
||||
|
||||
```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"
|
||||
|
||||
```
|
||||
|
||||
|
||||
This script includes checks for common pitfalls, installs Docker if it’s not already installed, initializes a Docker Swarm, creates a network, and then pulls and deploys Dokploy. After the script runs, it provides a success message and instructions for accessing Dokploy.
|
||||
|
||||
This structured format clearly lays out the prerequisites, steps, and post-installation information, making it user-friendly and accessible for those performing manual installations.
|
||||
|
||||
## Customize install
|
||||
#### Customize swarm advertise address
|
||||
|
||||
The --advertise-addr parameter in the docker swarm init command specifies the IP address or interface that the Docker Swarm manager node should advertise to other nodes in the Swarm. This address is used by other nodes to communicate with the manager.
|
||||
|
||||
By default, this script uses the external IP address of the server, obtained using the `curl -s ifconfig.me` command. However, you might need to customize this address based on your network configuration, especially if your server has multiple network interfaces or if you're setting up Swarm in a private network.
|
||||
|
||||
To customize the --advertise-addr parameter, replace the line: `advertise_addr=$(curl -s ifconfig.me)` with your desired IP address or interface, for example:
|
||||
`advertise_addr="192.168.1.100"`
|
||||
|
||||
:warning: This IP address should be accessible to all nodes that will join the Swarm.
|
||||
|
||||
|
||||
## Existing Docker swarm
|
||||
|
||||
If you already have a Docker swarm running on your server and you want to use dokploy, you can use the following command to join it:
|
||||
|
||||
|
||||
```bash
|
||||
docker network create --driver overlay --attachable dokploy-network
|
||||
|
||||
mkdir -p /etc/dokploy
|
||||
|
||||
chmod -R 777 /etc/dokploy
|
||||
|
||||
docker pull dokploy/dokploy:latest
|
||||
|
||||
# Installation
|
||||
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
|
||||
```
|
||||
38
apps/docs-v2/content/docs/core/meta.json
Normal file
38
apps/docs-v2/content/docs/core/meta.json
Normal file
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"title": "Core",
|
||||
"description": "The core of Dokploy",
|
||||
"icon": "Building2",
|
||||
"root": true,
|
||||
"pages": [
|
||||
"---Introduction---",
|
||||
"index",
|
||||
"architecture",
|
||||
"features",
|
||||
"installation",
|
||||
"manual-installation",
|
||||
"reset-password",
|
||||
"uninstall",
|
||||
"videos",
|
||||
"...",
|
||||
"---Server---",
|
||||
"(S3-Destinations)",
|
||||
"(Git-Sources)",
|
||||
"(Users)",
|
||||
"(Notifications)",
|
||||
"registry",
|
||||
"ssh-keys",
|
||||
"certificates",
|
||||
"---Services---",
|
||||
"applications",
|
||||
"docker-compose",
|
||||
"databases",
|
||||
"templates",
|
||||
"page-conventions",
|
||||
"navigation",
|
||||
"---UI---",
|
||||
"theme",
|
||||
"components",
|
||||
"mdx",
|
||||
"blocks"
|
||||
]
|
||||
}
|
||||
22
apps/docs-v2/content/docs/core/registry/digital-ocean.mdx
Normal file
22
apps/docs-v2/content/docs/core/registry/digital-ocean.mdx
Normal file
@@ -0,0 +1,22 @@
|
||||
---
|
||||
title: Digital Ocean
|
||||
description: 'Configure a Digital Ocean Container Registry to store your images and artifacts.'
|
||||
---
|
||||
|
||||
To configure a Digital Ocean Container Registry, you need to fill the form with the following details:
|
||||
|
||||
1. Insert the Registry Name eg. `My Registry`.
|
||||
2. Go to `https://cloud.digitalocean.com/registry/new` and click on `Create a Container Registry`.
|
||||
3. Insert a lowercase name eg. `dokploy-username`.
|
||||
4. Click on `Create Registry`.
|
||||
5. Click on `Actions` and then `Download Docker Credentials`.
|
||||
6. In Permissions select `Read` and `Write`.
|
||||
7. Open the downloaded file and copy the auth value and type as `Password` in Dokploy Modal.
|
||||
7. Go to `https://cloud.digitalocean.com/account/api/tokens` and click on `Generate New Token`.
|
||||
8. In permissions select `Registry`.
|
||||
7. Click on `Create`.
|
||||
8. Copy the `access token` and paste it in Dokploy Modal as a `Username` field.
|
||||
9. (Optional) If you pretend to use Cluster Feature, make sure to set a `Image Prefix`.
|
||||
10. Registry URL: set `registry.digitalocean.com`
|
||||
11. Click on `Test` to make sure everything is working.
|
||||
12. Click on `Create` to save the registry.
|
||||
19
apps/docs-v2/content/docs/core/registry/dockerhub.mdx
Normal file
19
apps/docs-v2/content/docs/core/registry/dockerhub.mdx
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: Docker Hub
|
||||
description: 'Configure Docker Hub to store your images and artifacts.'
|
||||
---
|
||||
|
||||
To configure a Docker Hub registry, you need to fill the form with the following details:
|
||||
|
||||
1. Insert the Registry Name eg. `My Registry`.
|
||||
2. Insert the Username eg. `dockerhub_username`.
|
||||
3. Insert the Password, you can use your own dockerhub password or generate a token here `https://app.docker.com/settings/personal-access-tokens`
|
||||
4. Click on Generate Token.
|
||||
5. Insert the Token Description eg. `dockerhub_token`.
|
||||
6. In permissions make sure to select `Read` and `Write`.
|
||||
7. Click on `Create`.
|
||||
8. Copy the `access token` and paste it in Dokploy `Docker Hub` Modal section.
|
||||
9. (Optional) If you pretend to use Cluster Feature, make sure to set a `Image Prefix` and `Registry URL`.
|
||||
10. Click on `Test` to make sure everything is working.
|
||||
11. Click on `Create` to save the registry.
|
||||
|
||||
19
apps/docs-v2/content/docs/core/registry/ghcr.mdx
Normal file
19
apps/docs-v2/content/docs/core/registry/ghcr.mdx
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
title: GHCR
|
||||
description: 'Configure GitHub Container Registry to store your images and artifacts.'
|
||||
---
|
||||
|
||||
To configure a GitHub Container Registry, you need to fill the form with the following details:
|
||||
|
||||
1. Insert the Registry Name eg. `My Registry`.
|
||||
2. Insert the Username eg. `github_username`.
|
||||
3. Insert the Password, you can use your own github password or generate a token here `https://github.com/settings/tokens`
|
||||
4. Click on Generate Token (Classic).
|
||||
5. Insert the Note Description eg. `github_token`.
|
||||
6. In permissions make sure to select `write:packages`.
|
||||
7. Click on `Create`.
|
||||
8. Copy the `access token` and paste it in Dokploy Modal as a Password field.
|
||||
9. (Optional) If you pretend to use Cluster Feature, make sure to set a `Image Prefix`.
|
||||
10. Registry URL: set `https://ghcr.io`
|
||||
11. Click on `Test` to make sure everything is working.
|
||||
12. Click on `Create` to save the registry.
|
||||
23
apps/docs-v2/content/docs/core/registry/index.mdx
Normal file
23
apps/docs-v2/content/docs/core/registry/index.mdx
Normal file
@@ -0,0 +1,23 @@
|
||||
---
|
||||
title: Registry
|
||||
description: 'Configure your registry settings to store your images and artifacts.'
|
||||
---
|
||||
|
||||
Dokploy offers a UI to connect to any Docker Registry.
|
||||
|
||||
|
||||
|
||||
## Registry Settings
|
||||
|
||||
You need to fill the form with the following details:
|
||||
|
||||
- **Registry Name**: Enter a name for your registry eg. `My Registry`.
|
||||
- **Username**: Enter the username you want to use to connect to your registry.
|
||||
- **Password**: Enter the password you want to use to connect to your registry.
|
||||
- **Image Prefix(Optional)**: Useful when using Cluster feature, to tag your images with a prefix eg. `dokploy` will convert to `dokploy/my-app:latest`.
|
||||
- **Registry URL**: Enter the URL of your registry eg. `https://index.docker.io/v1`.
|
||||
|
||||
This approach allows you to authenticate and store your credentials on the machine,
|
||||
making it convenient when using multiple applications. You won't need to provide credentials
|
||||
for each one individually. It also enables seamless login to remote servers. If no server is selected,
|
||||
Dokploy will default to using its own server.
|
||||
41
apps/docs-v2/content/docs/core/reset-password.mdx
Normal file
41
apps/docs-v2/content/docs/core/reset-password.mdx
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
title: Reset Password
|
||||
description: "Reset your password to access your Dokploy account."
|
||||
---
|
||||
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps';
|
||||
|
||||
To reset your password, follow these steps:
|
||||
|
||||
<Steps>
|
||||
<Step>
|
||||
Log in to your VPS.
|
||||
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
|
||||
Run the command below to get the container ID of the dokploy container.
|
||||
|
||||
```bash
|
||||
docker ps
|
||||
```
|
||||
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
|
||||
Run command below to open a shell in the dokploy container.
|
||||
```bash
|
||||
docker exec -it <container-id> bash -c "pnpm run reset-password"
|
||||
```
|
||||
|
||||
|
||||
</Step>
|
||||
<Step>
|
||||
|
||||
It will display a random password. Copy it and use it to access again to the dashboard.
|
||||
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
30
apps/docs-v2/content/docs/core/ssh-keys.mdx
Normal file
30
apps/docs-v2/content/docs/core/ssh-keys.mdx
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
title: SSH Keys
|
||||
description: 'Configure your SSH keys to access your servers or clone Private Repositories.'
|
||||
---
|
||||
|
||||
import { Callout } from 'fumadocs-ui/components/callout';
|
||||
|
||||
Dokploy provides a section exclusively for SSH keys, allowing you to manage your SSH keys in a centralized location.
|
||||
|
||||
SSH Keys can be used for two purposes:
|
||||
|
||||
- **Private Repositories**: You can use SSH Keys, to access to private repositories, this is only for `Git` provider
|
||||
in your application or docker compose.
|
||||
- **Multi Server**: You can use SSH Keys, to access remotely to your servers via SSH.
|
||||
|
||||
To create a SSH Key, is a very easy process, just click on `Create SSH Key`
|
||||
|
||||
We offer two SSH Keys Generation types:
|
||||
|
||||
1. **RSA Key**: This is the most commonly used key type, and generates a 2048-bit RSA key.
|
||||
2. **Ed25519 Key**: This is a newer key type that generates a 256-bit Ed25519 key.
|
||||
|
||||
<Callout>
|
||||
You can also create or paste your own SSH Key, you can edit the `Private Key` and `Public Key` fields without restrictions,
|
||||
make sure to use the correct format for the key type you are using.
|
||||
</Callout>
|
||||
|
||||
<Callout type='warn'>
|
||||
Once you create a SSH Key you will not be able to read the `Private Key` anymore.
|
||||
</Callout>
|
||||
44
apps/docs-v2/content/docs/core/templates/index.mdx
Normal file
44
apps/docs-v2/content/docs/core/templates/index.mdx
Normal file
@@ -0,0 +1,44 @@
|
||||
---
|
||||
title: Open Source Templates
|
||||
description: Deploy open source templates with Dokploy
|
||||
---
|
||||
|
||||
By default we include a set of templates, that you can use to spin up templates quickly. You can also create your own templates.
|
||||
|
||||
## Templates
|
||||
|
||||
The following templates are available:
|
||||
|
||||
- **Pocketbase**: Open Source backend for your next SaaS and Mobile app in 1 file
|
||||
- **Calcom**: Open source alternative to calendly for scheduling meetings
|
||||
- **Plausible**: Open source analytics platform
|
||||
- **Glitchtip**: Simple tracking event error logging
|
||||
- **Documenso**: The Open Source DocuSign Alternative.
|
||||
- **Grafana**: Open source dashboard for your metrics
|
||||
- **NocoDB:**: Open Source Airtable Alternative
|
||||
- **AppSmith**: Open Source CRM Alternative
|
||||
- **Meilisearch**: A lightning-fast search API that fits effortlessly into your apps, websites, and workflow
|
||||
- **Odoo**: Open Source ERP Alternative
|
||||
- **Rocketchat**: Open Source Chat Platform
|
||||
- **Uptime Kuma**: Open Source Uptime Monitoring
|
||||
- **PhpMyAdmin**: Open Source Database Administration
|
||||
- **Minio**: Open Source Object Storage
|
||||
- **n8n**: Open Source Workflow Automation
|
||||
- **excalidraw**: Open Source Collaborative Drawing Tool
|
||||
- **Directus**: The Modern Data Stack 🐰 — Directus is an instant REST+GraphQL API and intuitive no-code data collaboration app for any SQL database.
|
||||
- **Baserow**: Platform to build admin panels, internal tools, and dashboards
|
||||
- **Metabase**: Open Source Business Intelligence
|
||||
- **Wordpress**: Open Source Content Management System
|
||||
- **Open WebUI**: Free and Open Source ChatGPT Alternative
|
||||
- **Teable**: Open Source Airtable Alternative, Developer Friendly, No-code Database Built on Postgres
|
||||
- **Roundcube**: Free and open source webmail software for the masses, written in PHP, uses SMTP[^1].
|
||||
|
||||
## Create your own template
|
||||
|
||||
We accept contributions to upload new templates to the dokploy repository.
|
||||
|
||||
Make sure to follow the guidelines for creating a template:
|
||||
|
||||
[Steps to create your own template](https://github.com/Dokploy/dokploy/blob/canary/CONTRIBUTING.md#templates)
|
||||
|
||||
[^1]: Please note that if you're self-hosting a mail server you need port 25 to be open for SMTP (Mail Transmission Protocol that allows you to send and receive) to work properly. Some VPS providers like [Hetzner](https://docs.hetzner.com/cloud/servers/faq/#why-can-i-not-send-any-mails-from-my-server) block this port by default for new clients.
|
||||
6
apps/docs-v2/content/docs/core/templates/pocketbase.mdx
Normal file
6
apps/docs-v2/content/docs/core/templates/pocketbase.mdx
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
title: Pocketbase
|
||||
description: Deploy Pocketbase with Dokploy
|
||||
---
|
||||
|
||||
import { Callout } from "fumadocs-ui/components/callout";
|
||||
6
apps/docs-v2/content/docs/core/templates/supabase.mdx
Normal file
6
apps/docs-v2/content/docs/core/templates/supabase.mdx
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
title: Supabase
|
||||
description: Deploy Supabase with Dokploy
|
||||
---
|
||||
|
||||
import { Callout } from "fumadocs-ui/components/callout";
|
||||
32
apps/docs-v2/content/docs/core/uninstall.cn.mdx
Normal file
32
apps/docs-v2/content/docs/core/uninstall.cn.mdx
Normal file
@@ -0,0 +1,32 @@
|
||||
---
|
||||
title: "卸载"
|
||||
description: "了解如何在服务器上卸载 Dokploy"
|
||||
---
|
||||
|
||||
## 卸载步骤
|
||||
|
||||
按照以下步骤从您的服务器中完全删除 Dokploy 及其组件。
|
||||
|
||||
### 第 1 步: 删除 Docker Swarm 服务
|
||||
|
||||
首先,删除 Docker Swarm 中的 Dokploy 以及相关服务:
|
||||
|
||||
```bash
|
||||
docker service rm dokploy dokploy-traefik dokploy-postgres dokploy-redis
|
||||
```
|
||||
|
||||
### 第 2 步: 删除 Docker 挂载卷
|
||||
|
||||
接下来,删除 Dokploy 创建的 Docker 卷:
|
||||
|
||||
```bash
|
||||
docker volume rm -f dokploy-postgres-database redis-data-volume
|
||||
```
|
||||
|
||||
### 第 3 步: 删除 Dokploy 文件
|
||||
|
||||
最后,从服务器上删除 Dokploy 文件和目录:
|
||||
|
||||
```bash
|
||||
sudo rm -rf /etc/dokploy
|
||||
```
|
||||
39
apps/docs-v2/content/docs/core/uninstall.mdx
Normal file
39
apps/docs-v2/content/docs/core/uninstall.mdx
Normal file
@@ -0,0 +1,39 @@
|
||||
---
|
||||
title: Uninstall
|
||||
description: "Learn how to uninstall Dokploy on your server"
|
||||
---
|
||||
|
||||
import { Step, Steps } from 'fumadocs-ui/components/steps';
|
||||
|
||||
Follow these steps to completely remove Dokploy and its components from your server.
|
||||
|
||||
<Steps>
|
||||
<Step>
|
||||
Remove the docker swarm services created by Dokploy:
|
||||
|
||||
```bash
|
||||
docker service rm dokploy dokploy-traefik dokploy-postgres dokploy-redis
|
||||
```
|
||||
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
|
||||
Remove the docker volumes created by Dokploy:
|
||||
|
||||
```bash
|
||||
docker volume rm -f dokploy-postgres-database redis-data-volume
|
||||
```
|
||||
|
||||
</Step>
|
||||
|
||||
<Step>
|
||||
|
||||
Remove the dokploy files and directories from your server:
|
||||
|
||||
```bash
|
||||
sudo rm -rf /etc/dokploy
|
||||
```
|
||||
|
||||
</Step>
|
||||
</Steps>
|
||||
35
apps/docs-v2/content/docs/core/videos.mdx
Normal file
35
apps/docs-v2/content/docs/core/videos.mdx
Normal file
@@ -0,0 +1,35 @@
|
||||
---
|
||||
title: Videos
|
||||
description: Videos about how to install and use Dokploy.
|
||||
---
|
||||
|
||||
import { Card, Cards } from 'fumadocs-ui/components/card';
|
||||
|
||||
|
||||
## My Favorite Way to deploy Applications
|
||||
<iframe width="100%" height="315" src="https://www.youtube.com/embed/2Q4-EgYS0u4?si=K7wls46laSU_W3c_" title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" allowFullScreen></iframe>
|
||||
|
||||
|
||||
|
||||
<div className='border-2 mt-10'/>
|
||||
|
||||
|
||||
## Introduction to Dokploy
|
||||
<iframe width="100%" height="315" src="https://www.youtube.com/embed/mznYKPvhcfw?si=9r6ws_bJF45QSZgb" title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" allowFullScreen></iframe>
|
||||
<div className='border-2 mt-10'/>
|
||||
|
||||
## Deploy docker compose on a VPS [Dokploy]
|
||||
<iframe width="100%" height="315" src="https://www.youtube.com/embed/3qr_celxISA?si=N72toqtyC_sxlucH" title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" allowFullScreen></iframe>
|
||||
<div className='border-2 mt-10'/>
|
||||
|
||||
## How to Setup Dokploy Self-Hosting on A Hetzner Server | BEST Coolify Alternative
|
||||
<iframe width="100%" height="315" src="https://www.youtube.com/embed/83UX8TfuDis?si=SLQr7Q8I2PpUjNlH" title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" allowFullScreen></iframe>
|
||||
<div className='border-2 mt-10'/>
|
||||
|
||||
## FREE: Dokploy Self-Hosted 🐳 CANCEL VERCEL! 🚨 Coolify, Caprover, Alternative - Open Source
|
||||
<iframe width="100%" height="315" src="https://www.youtube.com/embed/8kHeKBd1rlU?si=LmUiT7mu9I9micy3" title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" allowFullScreen></iframe>
|
||||
|
||||
<div className='border-2 mt-10'/>
|
||||
## Say Goodbye to Vercel and Heroku with Dokploy Install
|
||||
<iframe width="100%" height="315" src="https://www.youtube.com/embed/XohTt3lh9qg?si=N4alYYsfSzNsFOmb" title="YouTube video player" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerPolicy="strict-origin-when-cross-origin" allowFullScreen></iframe>
|
||||
|
||||
Reference in New Issue
Block a user