fox/docker-compose.yml

202 lines
4.4 KiB
YAML

services:
app:
build:
context: .
dockerfile: docker/php/Dockerfile
container_name: fox-app
restart: unless-stopped
working_dir: /var/www
volumes:
- ./:/var/www
- ./storage/app:/var/www/storage/app
- /var/run/docker.sock:/var/run/docker.sock
environment:
PHP_OPCACHE_ENABLE: 1
depends_on:
- postgres
- redis
networks:
- fox
nginx:
image: nginx:1.27-alpine
container_name: fox-nginx
restart: unless-stopped
ports:
- "80:80"
volumes:
- ./:/var/www
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf:ro
depends_on:
- app
networks:
- fox
postgres:
image: pgvector/pgvector:pg16
container_name: fox-postgres
restart: unless-stopped
environment:
POSTGRES_DB: ${DB_DATABASE:-fox}
POSTGRES_USER: ${DB_USERNAME:-fox}
POSTGRES_PASSWORD: ${DB_PASSWORD:-fox}
volumes:
- postgres-data:/var/lib/postgresql/data
- ./docker/postgres/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
ports:
- "5432:5432"
networks:
- fox
redis:
image: redis:7-alpine
container_name: fox-redis
restart: unless-stopped
command: redis-server --appendonly yes
volumes:
- redis-data:/data
networks:
- fox
# Ollama läuft jetzt extern auf dem Mac (10.10.80.189:11434).
# Wenn du wieder einen lokalen Container willst: profile rausnehmen.
ollama:
image: ollama/ollama:latest
container_name: fox-ollama
profiles: ["local-llm"]
restart: unless-stopped
volumes:
- ollama-data:/root/.ollama
ports:
- "11434:11434"
networks:
- fox
queue:
build:
context: .
dockerfile: docker/php/Dockerfile
container_name: fox-queue
restart: unless-stopped
working_dir: /var/www
command: php artisan queue:work --tries=3 --timeout=120 --sleep=1
environment:
WATCHDOG_OWNER: "0"
volumes:
- ./:/var/www
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- app
- redis
- postgres
networks:
- fox
scheduler:
build:
context: .
dockerfile: docker/php/Dockerfile
container_name: fox-scheduler
restart: unless-stopped
working_dir: /var/www
command: php artisan schedule:work
environment:
WATCHDOG_OWNER: "0"
volumes:
- ./:/var/www
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- app
networks:
- fox
stats-broadcaster:
build:
context: .
dockerfile: docker/php/Dockerfile
container_name: fox-stats
restart: unless-stopped
working_dir: /var/www
command: php artisan fox:broadcast-stats --interval=5
environment:
WATCHDOG_OWNER: "0"
volumes:
- ./:/var/www
depends_on:
- app
- reverb
networks:
- fox
reverb:
build:
context: .
dockerfile: docker/php/Dockerfile
container_name: fox-reverb
restart: unless-stopped
working_dir: /var/www
command: php artisan reverb:start --host=0.0.0.0 --port=8080 --debug
environment:
WATCHDOG_OWNER: "0"
ports:
- "8080:8080"
volumes:
- ./:/var/www
depends_on:
- app
networks:
- fox
whisper:
image: ghcr.io/ggerganov/whisper.cpp:main
container_name: fox-whisper
restart: unless-stopped
volumes:
- ./storage/app/audio:/audio
- whisper-models:/models
entrypoint: ["sh", "-c", "tail -f /dev/null"]
networks:
- fox
searxng:
image: searxng/searxng:latest
container_name: fox-searxng
restart: unless-stopped
volumes:
- ./searxng:/etc/searxng:rw
networks:
- fox
vite:
build:
context: .
dockerfile: docker/php/Dockerfile
container_name: fox-vite
profiles: ["dev"]
working_dir: /var/www
command: sh -c "npm install --no-audit --no-fund && npm run dev -- --host 0.0.0.0"
environment:
VITE_DEV_HOST: ${VITE_DEV_HOST:-fox.pxo.at}
VITE_DEV_PORT: 5173
VITE_DEV_SCHEME: ${VITE_DEV_SCHEME:-https}
VITE_DEV_PUBLIC_PORT: ${VITE_DEV_PUBLIC_PORT:-443}
CHOKIDAR_USEPOLLING: "true"
ports:
- "5173:5173"
volumes:
- ./:/var/www
- vite-node-modules:/var/www/node_modules
networks:
- fox
volumes:
postgres-data:
redis-data:
ollama-data:
whisper-models:
vite-node-modules:
networks:
fox:
driver: bridge