#### NETWORKS networks: traefik_front_network: external: true back_network_n8n: driver: bridge attachable: true ### x-n8n: &service-n8n image: n8nio/n8n:latest networks: - back_network_n8n - traefik_front_network environment: - DB_TYPE=postgresdb - DB_POSTGRESDB_HOST=${POSTGRE_DB_PASSWORD} - DB_POSTGRESDB_USER=${POSTGRE_DB_USER} - DB_POSTGRESDB_PASSWORD=${POSTGRE_DB_PASSWORD} - N8N_DIAGNOSTICS_ENABLED=false - N8N_PERSONALIZATION_ENABLED=false - N8N_ENCRYPTION_KEY - N8N_USER_MANAGEMENT_JWT_SECRET - OLLAMA_HOST=ollama:11434 x-ollama: &service-ollama image: ollama/ollama:latest container_name: ollama networks: - back_network_n8n - traefik_front_network restart: unless-stopped ports: - 11434:11434 volumes: - ollama_storage:/root/.ollama x-init-ollama: &init-ollama image: ollama/ollama:latest networks: - back_network_n8n - traefik_front_network container_name: ollama-pull-llama volumes: - ollama_storage:/root/.ollama entrypoint: /bin/sh environment: - OLLAMA_HOST=ollama:11434 command: - "-c" # - "sleep 3; ollama pull llama3.2" - "sleep 3; OLLAMA_HOST=ollame:11434 ollama pull llama3.2; OLLAMA_HOST=ollame:11434 ollama pull nomic-embed-text; OLLAMA_HOST=ollame:11434 ollama pull deepseek-r1:1.5bOLLAMA_HOST=ollame:11434 ollama pull mistral:7b;" #### SERVICE services: postgres: container_name: n8n-postgres hostname: n8n-postgres image: ${POSTGRES_IMAGE_TAG} networks: - back_network_n8n restart: unless-stopped environment: PGDATA: ${POSTGRE_DB_DATA} POSTGRES_DB: ${POSTGRE_DB_NAME} POSTGRES_PASSWORD: ${POSTGRE_DB_PASSWORD} POSTGRES_USER: ${POSTGRE_DB_USER} TZ: Europe/Paris volumes: - ./data:/var/lib/postgresql/data:rw healthcheck: test: [ "CMD", "pg_isready", "-q", "-d", "${POSTGRE_DB_NAME}", "-U", "${POSTGRE_DB_USER}" ] interval: 10s timeout: 5s retries: 3 start_period: 60s labels: - "com.centurylinklabs.watchtower.enable=true" ### n8n-import: <<: *service-n8n hostname: n8n-import container_name: n8n-import entrypoint: /bin/sh command: - "-c" - "n8n import:credentials --separate --input=/backup/credentials && n8n import:workflow --separate --input=/backup/workflows" volumes: - ./backup:/backup depends_on: postgres: condition: service_healthy ### n8n: <<: *service-n8n hostname: n8n container_name: n8n restart: unless-stopped ports: - 5678:5678 volumes: - n8n_storage:/home/node/.n8n - ./backup:/backup - ./shared:/data/shared depends_on: postgres: condition: service_healthy n8n-import: condition: service_completed_successfully ### qdrant: image: qdrant/qdrant hostname: qdrant container_name: qdrant networks: - back_network_n8n - traefik_front_network restart: unless-stopped ports: - 6333:6333 volumes: - qdrant_storage:/qdrant/storage ### ollama-cpu: profiles: ["cpu"] <<: *service-ollama ### ollama-gpu: profiles: ["gpu-nvidia"] <<: *service-ollama deploy: resources: reservations: devices: - driver: nvidia count: 1 capabilities: [gpu] ### ollama-gpu-amd: profiles: ["gpu-amd"] <<: *service-ollama image: ollama/ollama:rocm devices: - "/dev/kfd" - "/dev/dri" ### ollama-pull-llama-cpu: profiles: ["cpu"] <<: *init-ollama depends_on: - ollama-cpu ### ollama-pull-llama-gpu: profiles: ["gpu-nvidia"] <<: *init-ollama depends_on: - ollama-gpu ### ollama-pull-llama-gpu-amd: profiles: [gpu-amd] <<: *init-ollama image: ollama/ollama:rocm depends_on: - ollama-gpu-amd ### hello_world hello_world: container_name: gitea-app hostname: gitea-app image: hello-world environment: restart: always networks: # - back_network_gitea - traefik_front_network volumes: labels: - "traefik.enable=true" - "traefik.docker.network=traefik_front_network" # HTTP - "traefik.http.routers.hello-world-http.rule=Host(`hello-world.tips-of-mine.com`)" - "traefik.http.routers.hello-world-http.entrypoints=http" - "traefik.http.routers.hello-world-http.priority=49" # HTTPS - "traefik.http.routers.hello-world-https.rule=Host(`hello-world.tips-of-mine.com`)" - "traefik.http.routers.hello-world-https.entrypoints=https" - "traefik.http.routers.hello-world-https.tls=true" - "traefik.http.routers.hello-world-https.priority=50" - "traefik.http.routers.gitea.service=gitea-https-service" # Middleware # Service # - "traefik.http.services.gitea-https-service.loadbalancer.server.port=3000" # - "traefik.http.services.gitea-https-service.loadbalancer.server.scheme=https" # - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.hostname=gitea.traefik.me" # - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.method=foobar" # - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.timeout=10" # - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.interval=30"