Created
May 29, 2024 15:10
-
-
Save Getty/48c7e7c4a4769d218f7e9e5362d99850 to your computer and use it in GitHub Desktop.
ollama + openwebui + flowise + fooocus + netdata + traefik
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| services: | |
| traefik: | |
| container_name: traefik | |
| restart: always | |
| image: traefik:2.11 | |
| volumes: | |
| - "./traefik/traefik.toml:/etc/traefik/traefik.toml" | |
| - "./traefik/acme.json:/etc/traefik/acme.json" | |
| - "./traefik/config:/etc/traefik/config" | |
| - "./tls:/etc/traefik/tls" | |
| - "./log/traefik:/var/log/traefik" | |
| - "/var/run/docker.sock:/var/run/docker.sock" | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.http.services.traefik.loadbalancer.server.port=8080" | |
| - "traefik.http.services.traefik.loadbalancer.server.scheme=http" | |
| - "traefik.http.routers.traefikweb.rule=Host(`traefik.avatar.example.com`)" | |
| - "traefik.http.routers.traefikweb.entryPoints=http" | |
| - "traefik.http.routers.traefikweb.middlewares=https_redirect@file" | |
| - "traefik.http.routers.traefikweb.priority=10" | |
| - "traefik.http.routers.traefikwebtls.rule=Host(`traefik.avatar.example.com`)" | |
| - "traefik.http.routers.traefikwebtls.entryPoints=https" | |
| - "traefik.http.routers.traefikwebtls.middlewares=ci_auth@file" | |
| - "traefik.http.routers.traefikwebtls.tls=true" | |
| - "traefik.http.routers.traefikwebtls.tls.certresolver=le" | |
| - "traefik.http.routers.traefikwebtls.tls.domains[0].main=traefik.avatar.example.com" | |
| - "traefik.http.routers.traefikwebtls.priority=10" | |
| - "traefik.http.routers.traefikwebtls.service=traefik" | |
| environment: | |
| - "DNSMADEEASY_API_KEY=xxx" | |
| - "DNSMADEEASY_API_SECRET=xxx" | |
| networks: | |
| chnet: | |
| ipv4_address: 10.8.0.100 | |
| netdata: | |
| container_name: netdata | |
| hostname: "netdata.avatar.example.com" | |
| restart: always | |
| image: netdata/netdata | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.http.services.netdata.loadbalancer.server.port=19999" | |
| - "traefik.http.services.netdata.loadbalancer.server.scheme=http" | |
| - "traefik.http.routers.netdataweb.rule=Host(`netdata.avatar.example.com`)" | |
| - "traefik.http.routers.netdataweb.entryPoints=http" | |
| - "traefik.http.routers.netdataweb.middlewares=https_redirect@file" | |
| - "traefik.http.routers.netdataweb.priority=10" | |
| - "traefik.http.routers.netdatawebtls.rule=Host(`netdata.avatar.example.com`)" | |
| - "traefik.http.routers.netdatawebtls.entryPoints=https" | |
| - "traefik.http.routers.netdatawebtls.middlewares=ci_auth@file" | |
| - "traefik.http.routers.netdatawebtls.tls=true" | |
| - "traefik.http.routers.netdatawebtls.tls.certresolver=le" | |
| - "traefik.http.routers.netdatawebtls.tls.domains[0].main=netdata.avatar.example.com" | |
| - "traefik.http.routers.netdatawebtls.priority=10" | |
| - "traefik.http.routers.netdatawebtls.service=netdata" | |
| cap_add: | |
| - SYS_PTRACE | |
| security_opt: | |
| - apparmor:unconfined | |
| volumes: | |
| - "/proc:/host/proc:ro" | |
| - "/sys:/host/sys:ro" | |
| - "/var/run/docker.sock:/var/run/docker.sock:ro" | |
| networks: | |
| chnet: | |
| ipv4_address: 10.8.0.200 | |
| ollama: | |
| image: "ollama/ollama:latest" | |
| container_name: "${CI_CONTAINER_PREFIX:-cindustries}_ollama" | |
| hostname: "ollama.example.com" | |
| restart: unless-stopped | |
| volumes: | |
| - "./ollama:/root/.ollama" | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.http.services.ollama-cindustries.loadbalancer.server.port=11434" | |
| - "traefik.http.services.ollama-cindustries.loadbalancer.server.scheme=http" | |
| - "traefik.http.routers.ollama-cindustries.rule=Host(`ollama.example.com`)" | |
| - "traefik.http.routers.ollama-cindustries.entryPoints=http" | |
| - "traefik.http.routers.ollama-cindustries.middlewares=https_redirect@file" | |
| - "traefik.http.routers.ollama-cindustries.priority=10" | |
| - "traefik.http.routers.ollama-cindustries-tls.rule=Host(`ollama.example.com`)" | |
| - "traefik.http.routers.ollama-cindustries-tls.entryPoints=https" | |
| - "traefik.http.routers.ollama-cindustries-tls.middlewares=ollama-auth" | |
| - "traefik.http.routers.ollama-cindustries-tls.tls=true" | |
| - "traefik.http.routers.ollama-cindustries-tls.priority=10" | |
| - "traefik.http.routers.ollama-cindustries-tls.tls.certresolver=le" | |
| - "traefik.http.routers.ollama-cindustries-tls.tls.domains[0].main=ollama.example.com" | |
| - "traefik.http.middlewares.ollama-auth.basicauth.users=xxxxx:xxxxx" | |
| deploy: | |
| resources: | |
| reservations: | |
| devices: | |
| - driver: nvidia | |
| device_ids: ['all'] | |
| capabilities: [gpu] | |
| networks: | |
| chnet: | |
| ipv4_address: 10.8.0.240 | |
| openwebui: | |
| image: "ghcr.io/open-webui/open-webui:main" | |
| container_name: "${CI_CONTAINER_PREFIX:-cindustries}_openwebui" | |
| hostname: "openwebui.example.com" | |
| restart: unless-stopped | |
| environment: | |
| - OLLAMA_BASE_URL=http://ollama:11434 | |
| volumes: | |
| - "./openwebui:/app/backend/data" | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.http.services.openwebui-cindustries.loadbalancer.server.port=8080" | |
| - "traefik.http.services.openwebui-cindustries.loadbalancer.server.scheme=http" | |
| - "traefik.http.routers.openwebui-cindustries.rule=Host(`openwebui.example.com`)" | |
| - "traefik.http.routers.openwebui-cindustries.entryPoints=http" | |
| - "traefik.http.routers.openwebui-cindustries.middlewares=https_redirect@file" | |
| - "traefik.http.routers.openwebui-cindustries.priority=10" | |
| - "traefik.http.routers.openwebui-cindustries-tls.rule=Host(`openwebui.example.com`)" | |
| - "traefik.http.routers.openwebui-cindustries-tls.entryPoints=https" | |
| - "traefik.http.routers.openwebui-cindustries-tls.tls=true" | |
| - "traefik.http.routers.openwebui-cindustries-tls.priority=10" | |
| - "traefik.http.routers.openwebui-cindustries-tls.tls.certresolver=le" | |
| - "traefik.http.routers.openwebui-cindustries-tls.tls.domains[0].main=openwebui.example.com" | |
| networks: | |
| chnet: | |
| ipv4_address: 10.8.0.241 | |
| flowise: | |
| image: "flowiseai/flowise" | |
| container_name: "${CI_CONTAINER_PREFIX:-cindustries}_flowise" | |
| hostname: "flowise.example.com" | |
| restart: unless-stopped | |
| command: /bin/sh -c "sleep 3; flowise start" | |
| environment: | |
| - DATABASE_PATH=/root/.flowise | |
| - APIKEY_PATH=/root/.flowise | |
| - SECRETKEY_PATH=/root/.flowise | |
| - LOG_PATH=/root/.flowise/logs | |
| - BLOB_STORAGE_PATH=/root/.flowise/storage | |
| - FLOWISE_USERNAME=xxxxxx | |
| - FLOWISE_PASSWORD=xxxxxx | |
| volumes: | |
| - "./flowise:/root/.flowise" | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.http.services.flowise-cindustries.loadbalancer.server.port=3000" | |
| - "traefik.http.services.flowise-cindustries.loadbalancer.server.scheme=http" | |
| - "traefik.http.routers.flowise-cindustries.rule=Host(`flowise.example.com`)" | |
| - "traefik.http.routers.flowise-cindustries.entryPoints=http" | |
| - "traefik.http.routers.flowise-cindustries.middlewares=https_redirect@file" | |
| - "traefik.http.routers.flowise-cindustries.priority=10" | |
| - "traefik.http.routers.flowise-cindustries-tls.rule=Host(`flowise.example.com`)" | |
| - "traefik.http.routers.flowise-cindustries-tls.entryPoints=https" | |
| - "traefik.http.routers.flowise-cindustries-tls.tls=true" | |
| - "traefik.http.routers.flowise-cindustries-tls.priority=10" | |
| - "traefik.http.routers.flowise-cindustries-tls.tls.certresolver=le" | |
| - "traefik.http.routers.flowise-cindustries-tls.tls.domains[0].main=flowise.example.com" | |
| networks: | |
| chnet: | |
| ipv4_address: 10.8.0.242 | |
| fooocus: | |
| image: ghcr.io/lllyasviel/fooocus | |
| container_name: "${CI_CONTAINER_PREFIX:-cindustries}_fooocus" | |
| hostname: "fooocus.example.com" | |
| restart: unless-stopped | |
| labels: | |
| - "traefik.enable=true" | |
| - "traefik.http.services.fooocus-cindustries.loadbalancer.server.port=7865" | |
| - "traefik.http.services.fooocus-cindustries.loadbalancer.server.scheme=http" | |
| - "traefik.http.routers.fooocus-cindustries.rule=Host(`fooocus.example.com`)" | |
| - "traefik.http.routers.fooocus-cindustries.entryPoints=http" | |
| - "traefik.http.routers.fooocus-cindustries.middlewares=https_redirect@file" | |
| - "traefik.http.routers.fooocus-cindustries.priority=10" | |
| - "traefik.http.routers.fooocus-cindustries-tls.rule=Host(`fooocus.example.com`)" | |
| - "traefik.http.routers.fooocus-cindustries-tls.entryPoints=https" | |
| - "traefik.http.routers.fooocus-cindustries-tls.middlewares=ci_auth@file" | |
| - "traefik.http.routers.fooocus-cindustries-tls.tls=true" | |
| - "traefik.http.routers.fooocus-cindustries-tls.priority=10" | |
| - "traefik.http.routers.fooocus-cindustries-tls.tls.certresolver=le" | |
| - "traefik.http.routers.fooocus-cindustries-tls.tls.domains[0].main=fooocus.example.com" | |
| environment: | |
| - CMDARGS=--listen # Arguments for launch.py. | |
| - DATADIR=/content/data # Directory which stores models, outputs dir | |
| - config_path=/content/data/config.txt | |
| - config_example_path=/content/data/config_modification_tutorial.txt | |
| - path_checkpoints=/content/data/models/checkpoints/ | |
| - path_loras=/content/data/models/loras/ | |
| - path_embeddings=/content/data/models/embeddings/ | |
| - path_vae_approx=/content/data/models/vae_approx/ | |
| - path_upscale_models=/content/data/models/upscale_models/ | |
| - path_inpaint=/content/data/models/inpaint/ | |
| - path_controlnet=/content/data/models/controlnet/ | |
| - path_clip_vision=/content/data/models/clip_vision/ | |
| - path_fooocus_expansion=/content/data/models/prompt_expansion/fooocus_expansion/ | |
| - path_outputs=/content/app/outputs/ # Warning: If it is not located under '/content/app', you can't see history log! | |
| volumes: | |
| - ./fooocus:/content/data | |
| #- ./models:/import/models # Once you import files, you don't need to mount again. | |
| #- ./outputs:/import/outputs # Once you import files, you don't need to mount again. | |
| deploy: | |
| resources: | |
| reservations: | |
| devices: | |
| - driver: nvidia | |
| device_ids: ['all'] | |
| capabilities: [compute, utility] | |
| networks: | |
| chnet: | |
| ipv4_address: 10.8.0.243 | |
| networks: | |
| chnet: | |
| driver: bridge | |
| ipam: | |
| driver: default | |
| config: | |
| - subnet: 10.8.0.0/24 | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment