diff --git a/.gitea/workflows/pr-cloudflare-docker-deploy.yml b/.gitea/workflows/pr-cloudflare-docker-deploy.yml index bb9b5a2a..d7516d96 100644 --- a/.gitea/workflows/pr-cloudflare-docker-deploy.yml +++ b/.gitea/workflows/pr-cloudflare-docker-deploy.yml @@ -188,8 +188,8 @@ jobs: with: HC_VAULT_VERSION: ${{ env.HC_VAULT_VERSION }} HC_VAULT_ADDR: ${{ secrets.TREZ_VAULT_ADDR }} - HC_VAULT_USERNAME: ${{ secrets.VAULT_GITEA_USER }} - HC_VAULT_PASSWORD: ${{ secrets.VAULT_GITEA_PASSWORD }} + HC_VAULT_AUTH: token + HC_VAULT_TOKEN: ${{ secrets.VAULT_GITEA_TOKEN }} HC_VAULT_SECRETS_PATH: rinoa-docker/env - name: Pre-pull/build service images in parallel diff --git a/docker-compose.yml b/docker-compose.yml index d7eb928e..565a9a44 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -521,6 +521,105 @@ services: source: /rinoa-storage target: /storage type: bind + audiomuse-ai-flask: + container_name: audiomuse-ai-flask + depends_on: + audiomuse-ai-valkey: + required: true + condition: service_healthy + audiomuse-ai-pg: + required: true + condition: service_healthy + environment: + AI_MODEL_PROVIDER: OLLAMA + OLLAMA_SERVER_URL: http://ollama:11434/api/generate + SERVICE_TYPE: "flask" + MEDIASERVER_TYPE: "navidrome" + NAVIDROME_URL: http://navidrome:4533/ + NAVIDROME_USER: ${NAVIDROME_USERNAME} + NAVIDROME_PASSWORD: ${NAVIDROME_PASSWORD} + POSTGRES_USER: audiomuse + POSTGRES_PASSWORD: ${AUDIOMUSE_AI_PG_PASSWORD} + POSTGRES_DB: audiomusedb + POSTGRES_HOST: audiomuse-ai-postgres + POSTGRES_PORT: 5432 + REDIS_URL: redis://audiomuse-ai-valkey:6379/0 + TEMP_DIR: /app/temp_audio" + image: ghcr.io/neptunehub/audiomuse-ai:0.7.1-beta + labels: + homepage.group: Media Library + homepage.name: AudioMuse-AI + homepage.href: https://muse-ai.${MY_TLD} + homepage.description: Platform for hosting and sharing terminal session recordings + swag: enable + swag_port: 8000 + swag_proto: http + swag_url: muse.${MY_TLD} + swag.uptime-kuma.enabled: true + swag.uptime-kuma.monitor.parent: Rinoa + swag.uptime-kuma.name: AudioMuse-AI + swag.uptime-kuma.monitor.url: https://muse-ai.${MY_TLD} + swag.uptime-kuma.monitor.interval: 300 + swag.uptime-kuma.monitor.retryInterval: 60 + swag.uptime-kuma.monitor.maxretries: 5 + ports: + - 36025:8000 + profiles: ["rinoa-apps"] + restart: unless-stopped + volumes: + - audiomuse-temp-audio-flask:/app/temp_audio + audiomuse-ai-pg: + container_name: audiomuse-ai-pg + environment: + POSTGRES_USER: audiomuse + POSTGRES_PASSWORD: ${AUDIOMUSE_AI_PG_PASSWORD} + POSTGRES_DB: audiomusedb + expose: + - 5432 + healthcheck: + test: ["CMD-SHELL", "pg_isready -U audiomuse"] + interval: 2s + timeout: 5s + retries: 10 + image: postgres:15-alpine + profiles: ["rinoa-apps"] + restart: unless-stopped + volumes: + - audiomuse-ai-pg-data:/var/lib/postgresql/data + audiomuse-ai-valkey: + container_name: audiomuse-ai-valkey + <<: *valkey-params + volumes: + - audiomuse-ai-valkey-data:/data/valkey + audiomuse-ai-worker: + container_name: audiomuse-ai-worker + depends_on: + audiomuse-ai-valkey: + required: true + condition: service_healthy + audiomuse-ai-pg: + required: true + condition: service_healthy + environment: + AI_MODEL_PROVIDER: OLLAMA + OLLAMA_SERVER_URL: http://ollama:11434/api/generate + SERVICE_TYPE: "worker" + MEDIASERVER_TYPE: "navidrome" + NAVIDROME_URL: http://navidrome:4533/ + NAVIDROME_USER: ${NAVIDROME_USERNAME} + NAVIDROME_PASSWORD: ${NAVIDROME_PASSWORD} + POSTGRES_USER: audiomuse + POSTGRES_PASSWORD: ${AUDIOMUSE_AI_PG_PASSWORD} + POSTGRES_DB: audiomusedb + POSTGRES_HOST: audiomuse-ai-postgres + POSTGRES_PORT: 5432 + REDIS_URL: "redis://audiomuse-ai-valkey:6379/0" + TEMP_DIR: "/app/temp_audio" + image: ghcr.io/neptunehub/audiomuse-ai:0.7.1-beta + profiles: ["rinoa-apps"] + restart: unless-stopped + volumes: + - audiomuse-temp-audio-worker:/app/temp_audio authelia: container_name: authelia depends_on: @@ -7219,6 +7318,14 @@ volumes: name: asciinema-data asciinema-pg-data: name: asciinema-pg-data + audiomuse-ai-pg-data: + name: audiomuse-ai-pg-data + audiomuse-temp-audio-flask: + name: audiomuse-temp-audio-flask + audiomuse-ai-valkey-data: + name: audiomuse-ai-valkey-data + audiomuse-temp-audio-worker: + name: audiomuse-temp-audio-worker authelia-pg-db: name: authelia-pg-db authelia-valkey-data: