Reset history to current sanitized state

This commit is contained in:
2026-08-05 00:00:55 +00:00
commit 4321b0c4af
4 changed files with 158 additions and 0 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
+24
View File
@@ -0,0 +1,24 @@
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <https://unlicense.org/>
+27
View File
@@ -0,0 +1,27 @@
# 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