Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| services:audiomuseai [2025/10/14 08:48] – created willy | services:audiomuseai [2025/10/15 11:57] (current) – willy | ||
|---|---|---|---|
| Line 4: | Line 4: | ||
| This pairs with [[services: | This pairs with [[services: | ||
| + | |||
| + | The AudioMuse-AI developers like you to know that //they are not affiliated with, endorsed by, or sponsored by the owners of audiomuse.ai website.// | ||
| ===== Installation ===== | ===== Installation ===== | ||
| + | |||
| + | First of all, AudioMuse-AI requires a CPU with **avx** support, so check that your hardware fit the bill: | ||
| + | <code bash> | ||
| + | bash ~ # lscpu | grep -i avx | ||
| + | Flags: | ||
| + | </ | ||
| + | |||
| + | As you can see, my CPU supports AVX and AVX2. | ||
| + | |||
| + | Then create the usual dedicated user and data folders for persistency: | ||
| + | <code bash> | ||
| + | useradd -m -d / | ||
| + | mkdir / | ||
| + | mkdir / | ||
| + | mkdir / | ||
| + | chown -R audiomuse-ai: | ||
| + | </ | ||
| + | |||
| + | and, as user **audiomuse-ai**, | ||
| + | |||
| + | The docker compose file from [[https:// | ||
| + | |||
| + | <file - docker-compose.yaml> | ||
| + | services: | ||
| + | audiomuse-ai: | ||
| + | image: ghcr.io/ | ||
| + | container_name: | ||
| + | ports: | ||
| + | - " | ||
| + | volumes: | ||
| + | - / | ||
| + | environment: | ||
| + | MEDIASERVER_TYPE: | ||
| + | NAVIDROME_URL: | ||
| + | REDIS_URL: " | ||
| + | TEMP_DIR: "/ | ||
| + | SERVICE_TYPE: | ||
| + | NAVIDROME_USER: | ||
| + | NAVIDROME_PASSWORD: | ||
| + | POSTGRES_USER: | ||
| + | POSTGRES_PASSWORD: | ||
| + | POSTGRES_DB: | ||
| + | POSTGRES_HOST: | ||
| + | POSTGRES_PORT: | ||
| + | GEMINI_API_KEY: | ||
| + | depends_on: | ||
| + | - postgres | ||
| + | network: | ||
| + | - audiomuse-ai-net | ||
| + | |||
| + | rq-worker: | ||
| + | container_name: | ||
| + | image: ghcr.io/ | ||
| + | # ports: | ||
| + | # - " | ||
| + | volumes: | ||
| + | - / | ||
| + | environment: | ||
| + | MEDIASERVER_TYPE: | ||
| + | NAVIDROME_URL: | ||
| + | REDIS_URL: " | ||
| + | TEMP_DIR: "/ | ||
| + | SERVICE_TYPE: | ||
| + | NAVIDROME_USER: | ||
| + | NAVIDROME_PASSWORD: | ||
| + | POSTGRES_USER: | ||
| + | POSTGRES_PASSWORD: | ||
| + | POSTGRES_DB: | ||
| + | POSTGRES_HOST: | ||
| + | POSTGRES_HOST: | ||
| + | POSTGRES_PORT: | ||
| + | GEMINI_API_KEY: | ||
| + | depends_on: | ||
| + | - postgres | ||
| + | - redis | ||
| + | network: | ||
| + | - audiomuse-ai-net | ||
| + | |||
| + | postgres: | ||
| + | container_name: | ||
| + | image: postgres: | ||
| + | volumes: | ||
| + | - / | ||
| + | environment: | ||
| + | SERVICE_TYPE: | ||
| + | NAVIDROME_USER: | ||
| + | NAVIDROME_PASSWORD: | ||
| + | POSTGRES_USER: | ||
| + | POSTGRES_PASSWORD: | ||
| + | POSTGRES_DB: | ||
| + | POSTGRES_HOST: | ||
| + | POSTGRES_PORT: | ||
| + | GEMINI_API_KEY: | ||
| + | network: | ||
| + | - audiomuse-ai-net | ||
| + | |||
| + | redis: | ||
| + | container_name: | ||
| + | image: redis: | ||
| + | volumes: | ||
| + | - / | ||
| + | environment: | ||
| + | SERVICE_TYPE: | ||
| + | NAVIDROME_USER: | ||
| + | NAVIDROME_PASSWORD: | ||
| + | POSTGRES_USER: | ||
| + | POSTGRES_PASSWORD: | ||
| + | POSTGRES_DB: | ||
| + | POSTGRES_HOST: | ||
| + | POSTGRES_PORT: | ||
| + | GEMINI_API_KEY: | ||
| + | network: | ||
| + | - audiomuse-ai-net | ||
| + | |||
| + | networks: | ||
| + | audiomuse-ai-net: | ||
| + | dns_enabled: | ||
| + | </ | ||
| + | |||
| + | Of course, you need to specify your Navidrome URL, user and password. The GEMINI key is not required, only if you want AI assisted playlist naming. You could also use a self-hosted OLLAMA. | ||
| + | |||
| + | ===== Gemini AI usage ===== | ||
| + | |||
| + | If you want to use the capability to create playlists names using AI, you can use Gemini (and others too). Go to [[https:// | ||
| + | |||
| + | |||
| + | ===== Reverse Proxy ===== | ||
| + | |||
| + | AudioMuse-ai seems to be working only on subdomain and not on subpath. I assume you have **am.mydomain.com**. See the [[selfhost: | ||
| + | |||
| + | <file - spotizerr.conf> | ||
| + | server { | ||
| + | server_name am.mydomain.com; | ||
| + | listen 443 ssl; | ||
| + | http2 on; | ||
| + | |||
| + | access_log / | ||
| + | error_log / | ||
| + | |||
| + | location / { | ||
| + | proxy_pass http:// | ||
| + | proxy_set_header Connection $http_connection; | ||
| + | proxy_set_header Upgrade $http_upgrade; | ||
| + | } | ||
| + | |||
| + | include com.mydomain/ | ||
| + | } | ||
| + | |||
| + | server { | ||
| + | server_name am.mydomain.com; | ||
| + | listen 8443 ssl; | ||
| + | http2 on; | ||
| + | |||
| + | access_log / | ||
| + | error_log / | ||
| + | |||
| + | include " | ||
| + | |||
| + | location / { | ||
| + | include " | ||
| + | include " | ||
| + | proxy_pass http:// | ||
| + | proxy_set_header Connection $http_connection; | ||
| + | proxy_set_header Upgrade $http_upgrade; | ||
| + | } | ||
| + | |||
| + | include com.mydomain/ | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Please note that AudioMuse-ai does not provide **any** authentication or protection: you **must** put your SSO (see [[selfhost: | ||
| + | |||
| + | As usual, i have protected with SSO only the external access profile (port 8443). | ||
| + | |||
| + | ===== Autostart ===== | ||
| + | |||
| + | |||
| + | To start it, and set it up on boot, as usual follow my indications [[gentoo: | ||
| + | < | ||
| + | ln -s / | ||
| + | </ | ||
| + | |||
| + | and create the following config file: | ||
| + | <file - user-containers.audiomuse-ai> | ||
| + | USER=audiomuse-ai | ||
| + | DESCRIPTION=" | ||
| + | </ | ||
| + | |||
| + | Add the service to the default runlevel and start it now: | ||
| + | <code bash> | ||
| + | / | ||
| + | rc-update | ||
| + | </ | ||
| + | |||