This commit is contained in:
Axodouble 2025-04-28 19:25:44 +02:00 committed by GitHub
commit 3b1818e7e8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 82 additions and 60 deletions

View File

@ -0,0 +1,73 @@
version: '3.9'
networks:
dokploy-network:
driver: overlay
attachable: true
volumes:
dokploy-postgres-database:
redis-data-volume:
dokploy-docker-config:
services:
postgres:
image: postgres:16
environment:
POSTGRES_USER: dokploy
POSTGRES_DB: dokploy
POSTGRES_PASSWORD: amukds4wi9001583845717ad2
networks:
- dokploy-network
deploy:
placement:
constraints:
- node.role == manager
volumes:
- dokploy-postgres-database:/var/lib/postgresql/data
redis:
image: redis:7
networks:
- dokploy-network
deploy:
placement:
constraints:
- node.role == manager
volumes:
- redis-data-volume:/data
interface:
image: dokploy/dokploy:latest
environment:
ADVERTISE_ADDR: ${ADVERTISE_ADDR}
networks:
- dokploy-network
deploy:
replicas: 1
placement:
constraints:
- node.role == manager
update_config:
parallelism: 1
order: stop-first
ports:
- "3000:3000"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /etc/dokploy:/etc/dokploy
- dokploy-docker-config:/root/.docker
traefik:
image: traefik:v3.1.2
networks:
- dokploy-network
restart: always
ports:
- "80:80"
- "443:443/tcp"
- "443:443/udp"
volumes:
- /etc/dokploy/traefik/traefik.yml:/etc/traefik/traefik.yml
- /etc/dokploy/traefik/dynamic:/etc/dokploy/traefik/dynamic
- /var/run/docker.sock:/var/run/docker.sock

View File

@ -100,7 +100,7 @@ install_dokploy() {
docker swarm init --advertise-addr $advertise_addr
if [ $? -ne 0 ]; then
if [ $? -ne 0 ]; then
echo "Error: Failed to initialize Docker Swarm" >&2
exit 1
fi
@ -116,65 +116,11 @@ install_dokploy() {
chmod 777 /etc/dokploy
docker service create \
--name dokploy-postgres \
--constraint 'node.role==manager' \
--network dokploy-network \
--env POSTGRES_USER=dokploy \
--env POSTGRES_DB=dokploy \
--env POSTGRES_PASSWORD=amukds4wi9001583845717ad2 \
--mount type=volume,source=dokploy-postgres-database,target=/var/lib/postgresql/data \
postgres:16
curl -sSL https://dokploy.com/install-compose.yml -o /etc/dokploy/docker-compose.yml
docker service create \
--name dokploy-redis \
--constraint 'node.role==manager' \
--network dokploy-network \
--mount type=volume,source=redis-data-volume,target=/data \
redis:7
echo "Docker Compose file downloaded"
# 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 \
--mount type=volume,source=dokploy-docker-config,target=/root/.docker \
--publish published=3000,target=3000,mode=host \
--update-parallelism 1 \
--update-order stop-first \
--constraint 'node.role == manager' \
-e ADVERTISE_ADDR=$advertise_addr \
dokploy/dokploy:latest
sleep 4
docker run -d \
--name dokploy-traefik \
--network dokploy-network \
--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 \
-p 80:80/tcp \
-p 443:443/tcp \
-p 443:443/udp \
traefik:v3.1.2
# Optional: Use docker service create instead of docker run
# docker service create \
# --name dokploy-traefik \
# --constraint 'node.role==manager' \
# --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 \
# --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.1.2
docker compose up -d --remove-orphans -p dokploy -f /etc/dokploy/docker-compose.yml
GREEN="\033[0;32m"
YELLOW="\033[1;33m"
@ -206,8 +152,11 @@ update_dokploy() {
# Pull the latest image
docker pull dokploy/dokploy:latest
# Update the service
docker service update --image dokploy/dokploy:latest dokploy
# Pull new docker-compose file and restart the service
curl -sSL https://dokploy.com/install-compose.yml -o /etc/dokploy/docker-compose.yml
docker compose down -p dokploy -f /etc/dokploy/docker-compose.yml
docker compose up -d --remove-orphans -p dokploy -f /etc/dokploy/docker-compose.yml
echo "Dokploy has been updated to the latest version."
}