Compare commits

..
1 Commits
Author SHA1 Message Date
smileBeda 4321b0c4af Reset history to current sanitized state 2026-08-05 00:00:55 +00:00
3 changed files with 133 additions and 1 deletions
+23
View File
@@ -0,0 +1,23 @@
.env
.env.*
*.env
*.env.*
!.env.example
!.env.*.example
!*.env.example
!*.env.*.example
data/
*.swp
.DS_Store
# BEGIN reset-history environment exclusions
.env
.env.*
*.env
*.env.*
!.env.example
!.env.*.example
!*.env.example
!*.env.*.example
# END reset-history environment exclusions
+26 -1
View File
@@ -1,2 +1,27 @@
# audiomuse
# AudioMuse-AI
Self-hosted music analysis and playlist-generation service for discovering sonically related tracks in supported
music servers.
## Deployment layout
- **Compose:** `/srv/docker/audiomuse/docker-compose.yml`
- **Static configuration/source:** no additional static configuration or build source
- **Non-secret environment:** service roles, timezone, PostgreSQL topology, Redis URL, and temporary-audio paths are declared inline in Compose; there is no project-local `.env`
- **Secrets:** `/srv/docker/secrets/audiomuse/.env`
- **NVMe application state:** `/srv/appdata/audiomuse/postgres`, `/srv/appdata/audiomuse/redis`, `/srv/appdata/audiomuse/temp-audio-flask`, `/srv/appdata/audiomuse/temp-audio-worker`, `/srv/appdata/audiomuse/plugins-flask`,
and `/srv/appdata/audiomuse/plugins-worker`
- **Bulk HDD data:** none
- **Other mounts:** none
Secrets are never committed to this repository. The central secret environment
is supplied to the PostgreSQL, Flask application, and worker services.
## Dependencies and recovery
- **Networks/dependencies:** the Flask application and worker depend on PostgreSQL and Redis through the private
`audiomuse_internal` network; both also use the external `npm_proxy` network at `192.168.97.25` and
`192.168.97.26`
- **Back up:** `/srv/appdata/audiomuse/postgres`, `/srv/appdata/audiomuse/plugins-flask`, `/srv/appdata/audiomuse/plugins-worker`, and the separately protected AudioMuse-AI secret environment
- **Re-creatable:** the containers, Redis queue state, and temporary-audio directories
+84
View File
@@ -0,0 +1,84 @@
services:
# Redis service for RQ (task queue)
redis:
image: redis:7-alpine
container_name: audiomuse-redis
volumes:
- /srv/appdata/audiomuse/redis:/data
networks:
- audiomuse_internal
restart: unless-stopped
# PostgreSQL database service
postgres:
image: postgres:15-alpine
container_name: audiomuse-postgres
env_file:
- /srv/docker/secrets/audiomuse/.env
environment:
POSTGRES_USER: "audiomuse"
POSTGRES_DB: "audiomusedb"
volumes:
- /srv/appdata/audiomuse/postgres:/var/lib/postgresql/data
networks:
- audiomuse_internal
restart: unless-stopped
# AudioMuse-AI Flask application service
audiomuse-ai-flask:
image: ghcr.io/neptunehub/audiomuse-ai:latest
container_name: audiomuse-ai-flask-app
env_file:
- /srv/docker/secrets/audiomuse/.env
environment:
SERVICE_TYPE: "flask"
TZ: UTC
POSTGRES_USER: "audiomuse"
POSTGRES_DB: "audiomusedb"
POSTGRES_HOST: "postgres"
POSTGRES_PORT: "5432"
REDIS_URL: "redis://redis:6379/0"
TEMP_DIR: "/app/temp_audio"
volumes:
- /srv/appdata/audiomuse/temp-audio-flask:/app/temp_audio
- /srv/appdata/audiomuse/plugins-flask:/app/plugin/installed
depends_on:
- redis
- postgres
networks:
audiomuse_internal:
npm_proxy:
ipv4_address: 192.168.97.25
restart: unless-stopped
# AudioMuse-AI RQ Worker service
audiomuse-ai-worker:
image: ghcr.io/neptunehub/audiomuse-ai:latest
container_name: audiomuse-ai-worker-instance
env_file:
- /srv/docker/secrets/audiomuse/.env
environment:
SERVICE_TYPE: "worker"
TZ: UTC
POSTGRES_USER: "audiomuse"
POSTGRES_DB: "audiomusedb"
POSTGRES_HOST: "postgres"
POSTGRES_PORT: "5432"
REDIS_URL: "redis://redis:6379/0"
TEMP_DIR: "/app/temp_audio"
volumes:
- /srv/appdata/audiomuse/temp-audio-worker:/app/temp_audio
- /srv/appdata/audiomuse/plugins-worker:/app/plugin/installed
depends_on:
- redis
- postgres
networks:
audiomuse_internal:
npm_proxy:
ipv4_address: 192.168.97.26
restart: unless-stopped
networks:
audiomuse_internal:
npm_proxy:
external: true