93 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
#### NETWORKS
 | 
						|
networks:
 | 
						|
  docker-traefik_front_network:
 | 
						|
    external: true
 | 
						|
  back_network:
 | 
						|
    driver: bridge
 | 
						|
    attachable: true
 | 
						|
 | 
						|
#### SERVICES
 | 
						|
services:
 | 
						|
# postgres
 | 
						|
  postgres:
 | 
						|
    container_name: kestra-postgres
 | 
						|
    hostname: kestra-postgres
 | 
						|
    environment:
 | 
						|
      PGDATA: /var/lib/postgresql/data/kestra
 | 
						|
      POSTGRES_DB: kestra_db
 | 
						|
      POSTGRES_PASSWORD: 'P@ssword!Here!123456'
 | 
						|
      POSTGRES_USER: kestra_user
 | 
						|
      TZ: Europe/Paris
 | 
						|
    image: postgres:15.6-alpine
 | 
						|
    networks:
 | 
						|
    - back_network
 | 
						|
    volumes:
 | 
						|
      - ./data:/var/lib/postgresql/data:rw
 | 
						|
    healthcheck:
 | 
						|
      test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
 | 
						|
      interval: 30s
 | 
						|
      timeout: 10s
 | 
						|
      retries: 10
 | 
						|
    restart: always
 | 
						|
# kestra
 | 
						|
  kestra:
 | 
						|
    container_name: kestra-app
 | 
						|
    hostname: kestra-app
 | 
						|
    environment:
 | 
						|
      KESTRA_CONFIGURATION: |
 | 
						|
        datasources:
 | 
						|
          postgres:
 | 
						|
            url: jdbc:postgresql://postgres:5432/kestra_db
 | 
						|
            driverClassName: org.postgresql.Driver
 | 
						|
            username: kestra_user
 | 
						|
            password: P@ssword!Here!123456
 | 
						|
        kestra:
 | 
						|
          server:
 | 
						|
            basic-auth:
 | 
						|
              enabled: false
 | 
						|
              username: "admin@kestra.io" # it must be a valid email address
 | 
						|
              password: kestra
 | 
						|
          repository:
 | 
						|
            type: postgres
 | 
						|
          storage:
 | 
						|
            type: local
 | 
						|
            local:
 | 
						|
              base-path: "/app/storage"
 | 
						|
          queue:
 | 
						|
            type: postgres
 | 
						|
          tasks:
 | 
						|
            tmp-dir:
 | 
						|
              path: /tmp/kestra-wd/tmp
 | 
						|
          url: http://localhost:8080/
 | 
						|
    image: kestra/kestra:latest-full
 | 
						|
    pull_policy: always
 | 
						|
    # Note that this setup with a root user is intended for development purpose. For production deployments, you might prefer a version without a root user.
 | 
						|
    # Our base image runs without root, but the Docker Compose implementation needs root to access the Docker socket
 | 
						|
    # This version is rootless but more complex https://github.com/kestra-io/kestra/blob/develop/docker-compose-dind.yml
 | 
						|
    user: "root"
 | 
						|
    command: server standalone --worker-thread=128
 | 
						|
    volumes:
 | 
						|
      - ./kestra-data:/app/storage:rw
 | 
						|
      - /var/run/docker.sock:/var/run/docker.sock
 | 
						|
      - ./kestra-wd:/tmp/kestra-wd:rw
 | 
						|
    depends_on:
 | 
						|
      postgres:
 | 
						|
        condition: service_started
 | 
						|
    networks:
 | 
						|
    - back_network
 | 
						|
    - docker-traefik_front_network
 | 
						|
    restart: always
 | 
						|
    labels:
 | 
						|
      - "traefik.enable=true"
 | 
						|
      - "traefik.docker.network=docker-traefik_front_network"
 | 
						|
# HTTP
 | 
						|
      - "traefik.http.routers.kestra-http.rule=Host(`kestra.tips-of-mine.local`)"
 | 
						|
      - "traefik.http.routers.kestra-http.entrypoints=http"
 | 
						|
# HTTPS
 | 
						|
      - "traefik.http.routers.kestra-https.rule=Host(`kestra.tips-of-mine.local`)"
 | 
						|
      - "traefik.http.routers.kestra-https.entrypoints=https"
 | 
						|
      - "traefik.http.routers.kestra-https.tls=true"
 | 
						|
      - "traefik.http.routers.kestra.service=kestra-service"
 | 
						|
# Middleware
 | 
						|
# Service
 | 
						|
      - "traefik.http.services.kestra-service.loadbalancer.server.port=8081" |