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 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