Merge branch 'main' into docs-add-cloudflare-origin-certs

This commit is contained in:
Mauricio Siu
2025-11-29 23:56:10 -06:00
63 changed files with 1661 additions and 4988 deletions

View File

@@ -38,24 +38,20 @@ If you choose the second option, we will proceed to configure the different serv
To start, we need to configure a Docker registry, as when deploying an application, you need a registry to deploy and download the application image on the other servers.
We offer two ways to configure a registry:
1. **External Registry**: Use any registry you want.
2. **Self-Hosted Registry**: We create and configure a self-hosted registry for you.
### External Registry
You can use any registry, such as Docker Hub, DigitalOcean Spaces, ECR, or your choice. Make sure to enter the correct credentials and test the connection before adding the registry.
You can use any external registry of your choice. Here are some popular options:
### Self-Hosted Registry
1. **Docker Hub** - Free tier available, easy to set up
2. **GitHub Container Registry (ghcr.io)** - Free for public repositories
3. **DigitalOcean Container Registry** - Simple setup with good integration
4. **Amazon ECR** - AWS's managed container registry
5. **Google Container Registry** - Google Cloud's managed registry
6. **Azure Container Registry** - Microsoft's managed registry
We will ask you for three things:
Make sure to enter the correct credentials and test the connection before adding the registry to your cluster configuration.
1. A user.
2. A password.
3. A domain. Ensure this domain is pointing to the dokploy VPS.
Once set up, the Cluster section will be unlocked.
Once configured, the Cluster section will be unlocked.
## Understanding Docker Swarm

View File

@@ -73,6 +73,8 @@ volumes:
- "../files/my-configs:/etc/my-app/config" ✅
```
**Important:** If you need to use files from your repository (configuration files, scripts, etc.), you must move them to Dokploy's File Mounts (via Advanced → Mounts) instead of mounting them directly from the repository. When using AutoDeploy, Dokploy performs a `git clone` on each deployment, which clears the repository directory. Mounting files directly from your repository using relative paths (e.g., `./` or `./config/file.conf`) will cause them to be lost or empty in subsequent deployments. See the [Troubleshooting guide](/docs/core/troubleshooting#using-files-from-your-repository) for more details.
</Callout>
## Keyboard Shortcuts

View File

@@ -143,7 +143,7 @@ install_dokploy() {
--mount type=volume,source=redis-data-volume,target=/data \
redis:7
docker pull traefik:v3.5.0
docker pull traefik:v3.6.1
docker pull dokploy/dokploy:latest
# Installation
@@ -167,11 +167,11 @@ install_dokploy() {
--restart always \
-v /etc/dokploy/traefik/traefik.yml:/etc/traefik/traefik.yml \
-v /etc/dokploy/traefik/dynamic:/etc/dokploy/traefik/dynamic \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-p 80:80/tcp \
-p 443:443/tcp \
-p 443:443/udp \
traefik:v3.5.0
traefik:v3.6.1
docker network connect dokploy-network dokploy-traefik
@@ -183,11 +183,11 @@ install_dokploy() {
# --network dokploy-network \
# --mount type=bind,source=/etc/dokploy/traefik/traefik.yml,target=/etc/traefik/traefik.yml \
# --mount type=bind,source=/etc/dokploy/traefik/dynamic,target=/etc/dokploy/traefik/dynamic \
# --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
# --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock,readonly \
# --publish mode=host,published=443,target=443 \
# --publish mode=host,published=80,target=80 \
# --publish mode=host,published=443,target=443,protocol=udp \
# traefik:v3.5.0
# traefik:v3.6.1
GREEN="\033[0;32m"
YELLOW="\033[1;33m"

View File

@@ -16,6 +16,10 @@ The server setup process prepares the necessary environment for securely and eff
Root access to the server is required. We currently do not support non-root deployments.
</Callout>
<Callout type="warning">
If your remote server is configured with a different shell (other than bash), you must configure bash as the default shell, as Dokploy has been developed and tested with bash.
</Callout>
<ImageZoom
src="/assets/images/server-deploy.png"
alt="Multi-Server Setup"

View File

@@ -11,6 +11,10 @@ Multi server allows you to deploy your apps remotely to different servers withou
1. To install Dokploy UI, follow the [installation guide](en/docs/core/get-started/installation).
<Callout type="warning">
If your remote server is configured with a different shell (other than bash), you must configure bash as the default shell, as Dokploy has been developed and tested with bash.
</Callout>
2. Create an SSH key by going to `/dashboard/settings/ssh-keys` and add a new key. Be sure to copy the public key.
<ImageZoom

View File

@@ -54,6 +54,46 @@ volumes:
- "../files/my-configs:/etc/my-app/config" ✅
```
### Using Files from Your Repository
<Callout type="warning">
If you need to use files from your repository (e.g., configuration files, scripts, or directories), you **must** move them to Dokploy's file mounts and reference them manually using the Dokploy interface. This is because when using AutoDeploy, Dokploy performs a `git clone` operation on each deployment, which clears the repository directory. If you mount files directly from your repository using relative paths like `./` or `./docker/config/odoo.conf`, these files will be lost or empty in subsequent deployments, even though the first deployment may work correctly.
</Callout>
**Why this happens:**
- On the first deployment, the files exist and are mounted correctly
- On subsequent deployments, Dokploy cleans the directory and performs a fresh `git clone`
- Docker loses the reference to the files that were in the filesystem, and the new files have a new reference
- This causes mounted directories and files to be empty or missing inside the container
**Solution:**
1. Go to **Advanced** → **Mounts** in your Docker Compose application
2. Create a new **File Mount** for each file or directory you need from your repository
3. Copy the content from your repository files into the File Mount content field
4. Specify the file path for your configuration
5. Reference the file mount in your `docker-compose.yml` using the `../files/` path:
```yaml
volumes:
- "../files/my-config.json:/etc/my-app/config" ✅
- "../files/my-directory:/path/in/container" ✅
```
**Example:**
Instead of mounting directly from your repository:
```yaml
volumes:
- ./:/mnt/extra-addons/va_subscription_18 ❌
- ./docker/config/odoo.conf:/etc/odoo/odoo.conf ❌
```
Use Dokploy's file mounts:
```yaml
volumes:
- ../files/va_subscription_18:/mnt/extra-addons/va_subscription_18 ✅
- ../files/odoo.conf:/etc/odoo/odoo.conf ✅
```
## Logs Not Loading When Deploying to a Remote Server?
There are a few potential reasons for this:
@@ -204,6 +244,10 @@ volumes:
- ../files/my-config.json:/etc/my-app/config
```
<Callout type="info">
**Important for AutoDeploy users:** If you have configuration files or directories in your repository that you need to mount into your containers, you must copy their content to Dokploy's File Mounts (via Advanced → Mounts) instead of mounting them directly from the repository. This ensures the files persist across deployments, as the repository directory is cleaned and re-cloned on each AutoDeploy.
</Callout>
## Failed to initialize Docker Swarm
@@ -428,11 +472,11 @@ docker run -d \
--restart always \
-v /etc/dokploy/traefik/traefik.yml:/etc/traefik/traefik.yml \
-v /etc/dokploy/traefik/dynamic:/etc/dokploy/traefik/dynamic \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-p 80:80/tcp \
-p 443:443/tcp \
-p 443:443/udp \
traefik:v3.5.0
traefik:v3.6.1
docker network connect dokploy-network dokploy-traefik
@@ -445,11 +489,11 @@ docker run -d \
--restart always \
-v /etc/dokploy/traefik/traefik.yml:/etc/traefik/traefik.yml \
-v /etc/dokploy/traefik/dynamic:/etc/dokploy/traefik/dynamic \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/run/docker.sock:/var/run/docker.sock:ro \
-p 80:80/tcp \
-p 443:443/tcp \
-p 443:443/udp \
traefik:v3.5.0
traefik:v3.6.1
```
Remove the dokploy service: