merge muzick redis into shared infra stack, rotate secrets

This commit is contained in:
kami
2026-07-14 14:42:53 +04:00
parent 78c46b2dcb
commit ef7fe9e712
4 changed files with 25 additions and 35 deletions
+9
View File
@@ -1,3 +1,12 @@
# Database
DB_PASSWORD=change-me
# Shared redis (infra stack)
REDIS_PASSWORD=change-me
# Typesense search
TYPESENSE_API_KEY=change-me
# Last.fm API credentials (required for artist images, tags) # Last.fm API credentials (required for artist images, tags)
LASTFM_API_KEY="your-lastfm-api-key" LASTFM_API_KEY="your-lastfm-api-key"
LASTFM_SHARED_SECRET="your-lastfm-shared-secret" LASTFM_SHARED_SECRET="your-lastfm-shared-secret"
-2
View File
@@ -19,7 +19,6 @@ Audit the muzick project at `/home/kami/apps/muzick/`, file Vikunja tasks for fi
### Tasks filed ### Tasks filed
- See Homelab infra project. Key items: - See Homelab infra project. Key items:
- #108: systemd service references dead Python venv (NEEDS FIX)
- #109: pin Docker images (NEEDS FIX — minio:latest etc) - #109: pin Docker images (NEEDS FIX — minio:latest etc)
- #110: N+1 queries in generators (PERFORMANCE) - #110: N+1 queries in generators (PERFORMANCE)
- #111: image proxy SSRF guard (SECURITY) - #111: image proxy SSRF guard (SECURITY)
@@ -35,5 +34,4 @@ Audit the muzick project at `/home/kami/apps/muzick/`, file Vikunja tasks for fi
8. **No input validation** on many routes (admin, library — `as any` casts) 8. **No input validation** on many routes (admin, library — `as any` casts)
### Remaining autonomous work items ### Remaining autonomous work items
- #108 — Fix systemd service file (references dead Python venv) — CAN DO
- #109 — Pin Docker images in docker-compose.yml — CAN DO - #109 — Pin Docker images in docker-compose.yml — CAN DO
+16 -17
View File
@@ -4,22 +4,14 @@ services:
restart: always restart: always
environment: environment:
POSTGRES_USER: user POSTGRES_USER: user
POSTGRES_PASSWORD: password POSTGRES_PASSWORD: ${DB_PASSWORD}
POSTGRES_DB: muzick POSTGRES_DB: muzick
ports: ports:
- "5432:5432" - "127.0.0.1:5432:5432"
volumes: volumes:
- ./data/postgres:/var/lib/postgresql/data - ./data/postgres:/var/lib/postgresql/data
- ./backend/src/db/schema.sql:/docker-entrypoint-initdb.d/schema.sql - ./backend/src/db/schema.sql:/docker-entrypoint-initdb.d/schema.sql
redis:
image: redis:7
restart: always
ports:
- "6379:6379"
volumes:
- ./data/redis:/data
search: search:
image: typesense/typesense:0.25.1 image: typesense/typesense:0.25.1
restart: always restart: always
@@ -27,23 +19,25 @@ services:
- "8108:8108" - "8108:8108"
volumes: volumes:
- ./data/typesense:/data - ./data/typesense:/data
command: --data-dir /data --api-key=muzick-key command: --data-dir /data --api-key=${TYPESENSE_API_KEY}
backend: backend:
build: ./backend build: ./backend
ports: ports:
- "3000:3000" - "3000:3000"
environment: environment:
DATABASE_URL: postgresql://user:password@db:5432/muzick DATABASE_URL: postgresql://user:${DB_PASSWORD}@db:5432/muzick
REDIS_URL: redis://redis:6379 REDIS_URL: redis://:${REDIS_PASSWORD}@redis:6379
TYPESENSE_API_KEY: muzick-key TYPESENSE_API_KEY: ${TYPESENSE_API_KEY}
MUSIC_DIR: /music MUSIC_DIR: /music
volumes: volumes:
- /mnt/hdd1/media/Music:/music:ro - /mnt/hdd1/media/Music:/music:ro
depends_on: depends_on:
- db - db
- redis
- search - search
networks:
- default
- infra-net
frontend: frontend:
build: ./frontend build: ./frontend
@@ -56,8 +50,8 @@ services:
build: ./workers build: ./workers
network_mode: host network_mode: host
environment: environment:
DATABASE_URL: postgresql://user:password@127.0.0.1:5432/muzick DATABASE_URL: postgresql://user:${DB_PASSWORD}@127.0.0.1:5432/muzick
REDIS_URL: redis://127.0.0.1:6379 REDIS_URL: redis://:${REDIS_PASSWORD}@127.0.0.1:6379
MUSICBRAINZ_CONTACT: ${MUSICBRAINZ_CONTACT} MUSICBRAINZ_CONTACT: ${MUSICBRAINZ_CONTACT}
LASTFM_API_KEY: ${LASTFM_API_KEY} LASTFM_API_KEY: ${LASTFM_API_KEY}
LASTFM_SHARED_SECRET: ${LASTFM_SHARED_SECRET} LASTFM_SHARED_SECRET: ${LASTFM_SHARED_SECRET}
@@ -66,3 +60,8 @@ services:
MUSIC_DIR: /music MUSIC_DIR: /music
volumes: volumes:
- /mnt/hdd1/media/Music:/music:ro - /mnt/hdd1/media/Music:/music:ro
networks:
infra-net:
external: true
name: infra-net
-16
View File
@@ -1,16 +0,0 @@
[Unit]
Description=Muzick Music Player (Docker Compose)
After=docker.service network.target
Requires=docker.service
[Service]
Type=oneshot
RemainAfterExit=yes
User=kami
WorkingDirectory=/home/kami/apps/muzick
ExecStart=/usr/bin/docker compose up -d
ExecStop=/usr/bin/docker compose down
Environment=COMPOSE_FILE=/home/kami/apps/muzick/docker-compose.yml
[Install]
WantedBy=multi-user.target