mirror of
https://github.com/Dokploy/website.git
synced 2026-07-27 16:55:41 +02:00
Merge branch 'main' into docs-add-cloudflare-origin-certs
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user