design final
This commit is contained in:
parent
a0d2188f6f
commit
99a690972e
1414 changed files with 2389 additions and 1455 deletions
|
|
@ -1,99 +1,166 @@
|
|||
name: studio-einszwovier
|
||||
|
||||
services:
|
||||
web:
|
||||
build: .
|
||||
container_name: 124_webapp
|
||||
ports:
|
||||
- "80:8000"
|
||||
working_dir: /cost-assistant
|
||||
volumes:
|
||||
- .:/cost-assistant
|
||||
- ./data/uploads:/cost-assistant/data/uploads
|
||||
- ./data:/cost-assistant/data
|
||||
- ./templates:/cost-assistant/templates:ro
|
||||
- ./static:/cost-assistant/static:ro
|
||||
env_file:
|
||||
- .env
|
||||
command: python -m uvicorn main:app --host 0.0.0.0 --port 8000 --reload
|
||||
|
||||
docmost:
|
||||
image: docmost/docmost:latest
|
||||
container_name: docmost
|
||||
restart: unless-stopped
|
||||
mem_limit: 1g
|
||||
cpus: 1.0
|
||||
mem_reservation: 256m
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -f http://localhost:8000/ || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
environment:
|
||||
APP_URL: "http://einszwovier.local:3000"
|
||||
APP_SECRET: "Ltr/i5KY8S8xQQZbaRHVS07gaAqwxPfrMxW6ZetNRqk="
|
||||
DATABASE_URL: "postgresql://docmost:einszwo4@db:5432/docmost?schema=public"
|
||||
REDIS_URL: "redis://redis:6379"
|
||||
MAIL_DRIVER: "smtp"
|
||||
SMTP_HOST: "smtp.migadu.com"
|
||||
SMTP_PORT: 465
|
||||
SMTP_SECURE: "true"
|
||||
SMTP_USERNAME: "aron@petau.net"
|
||||
SMTP_PASSWORD: "Reprintedservices2766"
|
||||
MAIL_FROM_ADDRESS: "aron@petau.net"
|
||||
MAIL_FROM_NAME: "einszwovier - docs"
|
||||
ports:
|
||||
- "3000:3000"
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./docmost/storage:/app/data/storage
|
||||
|
||||
db:
|
||||
image: postgres:16-alpine
|
||||
container_name: docmost_postgres
|
||||
environment:
|
||||
POSTGRES_DB: docmost
|
||||
POSTGRES_USER: docmost
|
||||
POSTGRES_PASSWORD: einszwo4
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./docmost/db:/var/lib/postgresql/data
|
||||
|
||||
redis:
|
||||
image: redis:7.2-alpine
|
||||
container_name: docmost_redis
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./docmost/redis:/data
|
||||
synapse:
|
||||
condition: service_started
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
- "description=Studio EinsZwoVier PDF Cost Calculator"
|
||||
- "maintainer=Studio EinsZwoVier"
|
||||
|
||||
synapse:
|
||||
image: matrixdotorg/synapse:latest
|
||||
container_name: matrix_server
|
||||
restart: always
|
||||
ports:
|
||||
- "8008:8008"
|
||||
- "${SYNAPSE_PORT:-8008}:8008"
|
||||
volumes:
|
||||
- ./matrix/data:/data
|
||||
environment:
|
||||
- SYNAPSE_SERVER_NAME=einszwovier.local
|
||||
- SYNAPSE_REPORT_STATS=no
|
||||
- SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
|
||||
restart: unless-stopped
|
||||
mem_limit: 2g
|
||||
cpus: 2.0
|
||||
mem_reservation: 512m
|
||||
healthcheck:
|
||||
test:
|
||||
["CMD-SHELL", "curl -f http://localhost:8008/_matrix/static/ || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
- "description=Matrix homeserver for print orders"
|
||||
- "maintainer=Studio EinsZwoVier"
|
||||
|
||||
ollama:
|
||||
image: ollama/ollama:latest
|
||||
container_name: ollama
|
||||
ports:
|
||||
- 11434:11434
|
||||
- "${OLLAMA_PORT:-11434}:11434"
|
||||
volumes:
|
||||
- ./ollama:/root/.ollama
|
||||
tty: true
|
||||
restart: unless-stopped
|
||||
mem_limit: 16g
|
||||
cpus: 6.0
|
||||
mem_reservation: 4g
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -f http://localhost:11434/ || exit 1"]
|
||||
interval: 60s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 60s
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
- "description=Local LLM inference engine"
|
||||
- "maintainer=Studio EinsZwoVier"
|
||||
|
||||
open-webui:
|
||||
image: ghcr.io/open-webui/open-webui:main
|
||||
image: ghcr.io/open-webui/open-webui:latest
|
||||
container_name: open-webui
|
||||
depends_on:
|
||||
- ollama
|
||||
ports:
|
||||
- 8080:8080
|
||||
- "${OPENWEBUI_PORT:-8080}:8080"
|
||||
volumes:
|
||||
- ./open-webui:/app/backend/data
|
||||
environment:
|
||||
- 'OLLAMA_BASE_URL=http://ollama:11434'
|
||||
- 'WEBUI_SECRET_KEY=a8cbc11647c471e5a30d9b182a7147a0777e41a6b0cb036fd6a8d967585502c7'
|
||||
- 'ENABLE_API=true'
|
||||
- 'WEBUI_API_KEY=a8cbc11647c471e5a30d9b182a7147a0777e41a6b0cb036fd6a8d967585502c7'
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
- OLLAMA_BASE_URL=http://ollama:11434
|
||||
- WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY:-secret_key_change_me}
|
||||
restart: unless-stopped
|
||||
mem_limit: 2g
|
||||
cpus: 2.0
|
||||
mem_reservation: 512m
|
||||
depends_on:
|
||||
- ollama
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -f http://localhost:8080/ || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
- "description=Web UI for Ollama LLM"
|
||||
- "maintainer=Studio EinsZwoVier"
|
||||
|
||||
bookstack:
|
||||
image: lscr.io/linuxserver/bookstack:latest
|
||||
container_name: bookstack
|
||||
environment:
|
||||
- APP_KEY=${BOOKSTACK_APP_KEY}
|
||||
- APP_URL=${BOOKSTACK_APP_URL}
|
||||
env_file:
|
||||
- .env
|
||||
volumes:
|
||||
- ./bookstack/bookstack_app_data:/config
|
||||
ports:
|
||||
- "${BOOKSTACK_PORT}:80"
|
||||
restart: unless-stopped
|
||||
depends_on:
|
||||
bookstack-mariadb:
|
||||
condition: service_healthy
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "curl -f http://localhost/ || exit 1"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 60s
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
- "description=BookStack Documentation Wiki"
|
||||
- "maintainer=Studio EinsZwoVier"
|
||||
|
||||
bookstack-mariadb:
|
||||
image: lscr.io/linuxserver/mariadb:latest
|
||||
container_name: bookstack-mariadb
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
|
||||
- MYSQL_DATABASE=${DB_DATABASE}
|
||||
- MYSQL_USER=${DB_USERNAME}
|
||||
- MYSQL_PASSWORD=${DB_PASSWORD}
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/Berlin
|
||||
env_file:
|
||||
- .env
|
||||
volumes:
|
||||
- ./bookstack/bookstack_db_data:/config
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD-SHELL",
|
||||
"mariadb -u${DB_USERNAME} -p${DB_PASSWORD} -e 'SELECT 1' || exit 1",
|
||||
]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
labels:
|
||||
- "com.centurylinklabs.watchtower.enable=true"
|
||||
- "description=MariaDB Database for BookStack"
|
||||
- "maintainer=Studio EinsZwoVier"
|
||||
|
||||
watchtower:
|
||||
image: containrrr/watchtower:latest
|
||||
|
|
@ -101,19 +168,54 @@ services:
|
|||
restart: unless-stopped
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
command: >
|
||||
--cleanup
|
||||
--interval 86400
|
||||
environment:
|
||||
- WATCHTOWER_CLEANUP=true
|
||||
- WATCHTOWER_POLL_INTERVAL=86400
|
||||
- WATCHTOWER_INCLUDE_RESTARTING=true
|
||||
- WATCHTOWER_LABEL_ENABLE=true
|
||||
command: --cleanup --interval 86400 --label-enable
|
||||
healthcheck:
|
||||
test: ["CMD-SHELL", "pgrep watchtower || exit 1"]
|
||||
interval: 60s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
labels:
|
||||
- "description=Watchtower Auto-Update Service"
|
||||
- "maintainer=Studio EinsZwoVier"
|
||||
|
||||
portainer:
|
||||
image: portainer/portainer-ce:latest
|
||||
container_name: portainer
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "9000:9000"
|
||||
- "${PORTAINER_PORT}:9000"
|
||||
- "9443:9443"
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- portainer_data:/data
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD-SHELL",
|
||||
"curl -f http://localhost:9000/api/system/status || exit 1",
|
||||
]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 30s
|
||||
labels:
|
||||
- "description=Portainer Container Management UI"
|
||||
- "maintainer=Studio EinsZwoVier"
|
||||
|
||||
volumes:
|
||||
portainer_data:
|
||||
driver: local
|
||||
labels:
|
||||
- "description=Portainer persistent data"
|
||||
|
||||
networks:
|
||||
default:
|
||||
name: einszwovier_network
|
||||
labels:
|
||||
- "description=Studio EinsZwoVier network"
|
||||
- "maintainer=Studio EinsZwoVier"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue