feat: migration to fumadocs 14

This commit is contained in:
Mauricio Siu
2024-11-09 21:15:20 -06:00
parent 0dd0161f1e
commit 8267c4a7b6
229 changed files with 22179 additions and 2109 deletions

View 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>

View 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>

View 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>

View 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.

View 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.

View 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.

View 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.

View 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.

View 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>

View 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.

View File

@@ -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.

View File

@@ -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.

View 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.

View 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.

View 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.

View 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.

View 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.

View 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 applications functionality and availability.

View 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.

View 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.

View 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>

View 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. Heres what youll 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.

View 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.

View 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.

View File

@@ -0,0 +1,84 @@
---
title: Auto-deploy
description: How to auto-deploy your docker-compose application with Dokploy
---
Automatically deploying your docker-compose application to Dokploy can be achieved through two primary methods: using Webhooks or the Dokploy API. Each method supports various platforms and provides a streamlined deployment process.
## Github
For Github, we provide autodeploy without any configuration. This will automatically deploy your application whenever you push to your repository.
## Webhook URL
Webhooks allow you to automatically deploy your docker-compose application whenever changes are made in your source repository.
- GitHub
- GitLab
- Bitbucket
- Gitea
### Configuration Steps
1. **Enable Auto Deploy**: Toggle the 'Auto Deploy' button found in the general tab of your application settings in Dokploy.
2. **Obtain Webhook URL**: Locate the Webhook URL from the deployment logs.
<ImageZoom
src="/assets/webhook-url-compose.png"
alt="Webhook URL"
width={1000}
height={500}
/>
3. **Configure Your Repository**:
- Navigate to your repository settings on your chosen platform.
- Add the webhook URL provided by Dokploy.
- Ensure the settings match the configuration necessary for triggering the webhook.
<ImageZoom
src="/assets/webhook-github.png"
alt="Webhook URL"
width={1000}
height={500}
/>
#### Important Notes
- **Branch Matching**: When using Git-based providers (GitHub, GitLab, etc.), ensure that the branch configured in Dokploy matches the branch you intend to push to. Misalignment will result in a "Branch Not Match" error.
- The steps are the same for all the providers.
## API Method
Deploy your application programmatically using the Dokploy API from anywhere.
### Steps to Deploy Using API
Steps:
1. **Generate a Token**: Create an API token in your profile settings on Dokploy.
2. **Retrieve Compose ID**:
```http
curl -X 'GET' \
'https://your-domain/api/project.all' \
-H 'accept: application/json'
-H 'Authorization: Bearer <token>'
```
This command lists all projects and services. Identify the composeId for the compose you wish to deploy.
3. **Trigger Deployment**:
```http
curl -X 'POST' \
'https://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.

View 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.

View 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.
![Docker compose configuration](/assets/images/compose/setup.png)
### 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.

View 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>

View 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.

View 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.

View 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' /> */}
![Logo](/logo.png)
## 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>

View 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"
/>

View 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 its 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
```

View 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"
]
}

View 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.

View 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.

View 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.

View 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.

View 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>

View 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>

View 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.

View File

@@ -0,0 +1,6 @@
---
title: Pocketbase
description: Deploy Pocketbase with Dokploy
---
import { Callout } from "fumadocs-ui/components/callout";

View File

@@ -0,0 +1,6 @@
---
title: Supabase
description: Deploy Supabase with Dokploy
---
import { Callout } from "fumadocs-ui/components/callout";

View 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
```

View 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>

View 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>