Reset history to current sanitized state
This commit is contained in:
+23
@@ -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
|
||||||
@@ -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/>
|
||||||
@@ -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
|
||||||
|
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user