chore: rebrand Docker infrastructure to Kima

This commit is contained in:
Your Name
2026-02-16 09:41:11 -06:00
parent 0a52d1d9df
commit 569ed5ecbe
9 changed files with 104 additions and 104 deletions
+24 -24
View File
@@ -1,6 +1,6 @@
# Lidify All-in-One Docker Image (Hardened)
# Kima All-in-One Docker Image (Hardened)
# Contains: Backend, Frontend, PostgreSQL, Redis, Audio Analyzer (Essentia AI)
# Usage: docker run -d -p 3030:3030 -v /path/to/music:/music lidify/lidify
# Usage: docker run -d -p 3030:3030 -v /path/to/music:/music kima/kima
FROM node:20-slim
@@ -129,7 +129,7 @@ if [ -f /data/.schema_ready ]; then
fi
while [ $COUNTER -lt $TIMEOUT ]; do
if PGPASSWORD=lidify psql -h localhost -U lidify -d lidify -c "SELECT 1 FROM \"Track\" LIMIT 1" > /dev/null 2>&1; then
if PGPASSWORD=kima psql -h localhost -U kima -d kima -c "SELECT 1 FROM \"Track\" LIMIT 1" > /dev/null 2>&1; then
echo "[wait-for-db] ✓ Database is ready and schema exists!"
exit 0
fi
@@ -144,7 +144,7 @@ done
echo "[wait-for-db] ERROR: Database schema not ready after ${TIMEOUT}s"
echo "[wait-for-db] Listing available tables:"
PGPASSWORD=lidify psql -h localhost -U lidify -d lidify -c "\dt" 2>&1 || echo "Could not list tables"
PGPASSWORD=kima psql -h localhost -U kima -d kima -c "\dt" 2>&1 || echo "Could not list tables"
exit 1
EOF
@@ -211,7 +211,7 @@ WORKDIR /app
COPY healthcheck-prod.js /app/healthcheck.js
# Create supervisord config - logs to stdout/stderr for Docker visibility
RUN cat > /etc/supervisor/conf.d/lidify.conf << 'EOF'
RUN cat > /etc/supervisor/conf.d/kima.conf << 'EOF'
[supervisord]
nodaemon=true
logfile=/dev/null
@@ -275,7 +275,7 @@ stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
environment=DATABASE_URL="postgresql://lidify:lidify@localhost:5432/lidify",REDIS_URL="redis://localhost:6379",MUSIC_PATH="/music",BATCH_SIZE="10",SLEEP_INTERVAL="5",MAX_ANALYZE_SECONDS="90",BRPOP_TIMEOUT="30",MODEL_IDLE_TIMEOUT="300",NUM_WORKERS="2",THREADS_PER_WORKER="1",LD_LIBRARY_PATH="/opt/cudnn8/nvidia/cudnn/lib:/usr/local/lib/python3.11/dist-packages/nvidia/cublas/lib:/usr/local/lib/python3.11/dist-packages/nvidia/cufft/lib:/usr/local/lib/python3.11/dist-packages/nvidia/cuda_runtime/lib:/usr/local/lib/python3.11/dist-packages/nvidia/cuda_nvrtc/lib:/usr/local/lib/python3.11/dist-packages/nvidia/cusolver/lib:/usr/local/lib/python3.11/dist-packages/nvidia/cusparse/lib:/usr/local/lib/python3.11/dist-packages/nvidia/nccl/lib"
environment=DATABASE_URL="postgresql://kima:kima@localhost:5432/kima",REDIS_URL="redis://localhost:6379",MUSIC_PATH="/music",BATCH_SIZE="10",SLEEP_INTERVAL="5",MAX_ANALYZE_SECONDS="90",BRPOP_TIMEOUT="30",MODEL_IDLE_TIMEOUT="300",NUM_WORKERS="2",THREADS_PER_WORKER="1",LD_LIBRARY_PATH="/opt/cudnn8/nvidia/cudnn/lib:/usr/local/lib/python3.11/dist-packages/nvidia/cublas/lib:/usr/local/lib/python3.11/dist-packages/nvidia/cufft/lib:/usr/local/lib/python3.11/dist-packages/nvidia/cuda_runtime/lib:/usr/local/lib/python3.11/dist-packages/nvidia/cuda_nvrtc/lib:/usr/local/lib/python3.11/dist-packages/nvidia/cusolver/lib:/usr/local/lib/python3.11/dist-packages/nvidia/cusparse/lib:/usr/local/lib/python3.11/dist-packages/nvidia/nccl/lib"
priority=50
[program:audio-analyzer-clap]
@@ -288,12 +288,12 @@ stdout_logfile=/dev/stdout
stdout_logfile_maxbytes=0
stderr_logfile=/dev/stderr
stderr_logfile_maxbytes=0
environment=DATABASE_URL="postgresql://lidify:lidify@localhost:5432/lidify",REDIS_URL="redis://localhost:6379",MUSIC_PATH="/music",BACKEND_URL="http://localhost:3006",SLEEP_INTERVAL="5",NUM_WORKERS="1",MODEL_IDLE_TIMEOUT="300",INTERNAL_API_SECRET="lidify-internal-aio"
environment=DATABASE_URL="postgresql://kima:kima@localhost:5432/kima",REDIS_URL="redis://localhost:6379",MUSIC_PATH="/music",BACKEND_URL="http://localhost:3006",SLEEP_INTERVAL="5",NUM_WORKERS="1",MODEL_IDLE_TIMEOUT="300",INTERNAL_API_SECRET="kima-internal-aio"
priority=60
EOF
# Fix Windows line endings in supervisor config
RUN sed -i 's/\r$//' /etc/supervisor/conf.d/lidify.conf
RUN sed -i 's/\r$//' /etc/supervisor/conf.d/kima.conf
# Create startup script with root check
RUN cat > /app/start.sh << 'EOF'
@@ -306,7 +306,7 @@ set -e
echo ""
echo "============================================================"
echo " Lidify - Premium Self-Hosted Music Server"
echo " Kima - Premium Self-Hosted Music Server"
echo ""
echo " Features:"
echo " - AI-Powered Vibe Matching (Essentia ML)"
@@ -372,32 +372,32 @@ fi
gosu postgres $PG_BIN/pg_ctl -D /data/postgres -w start
# Create user and database if they don't exist
gosu postgres psql -tc "SELECT 1 FROM pg_roles WHERE rolname = 'lidify'" | grep -q 1 || \
gosu postgres psql -c "CREATE USER lidify WITH PASSWORD 'lidify';"
gosu postgres psql -tc "SELECT 1 FROM pg_database WHERE datname = 'lidify'" | grep -q 1 || \
gosu postgres psql -c "CREATE DATABASE lidify OWNER lidify;"
gosu postgres psql -tc "SELECT 1 FROM pg_roles WHERE rolname = 'kima'" | grep -q 1 || \
gosu postgres psql -c "CREATE USER kima WITH PASSWORD 'kima';"
gosu postgres psql -tc "SELECT 1 FROM pg_database WHERE datname = 'kima'" | grep -q 1 || \
gosu postgres psql -c "CREATE DATABASE kima OWNER kima;"
# Create pgvector extension as superuser (required before migrations)
echo "Creating pgvector extension..."
gosu postgres psql -d lidify -c "CREATE EXTENSION IF NOT EXISTS vector;"
gosu postgres psql -d kima -c "CREATE EXTENSION IF NOT EXISTS vector;"
# Run Prisma migrations
cd /app/backend
export DATABASE_URL="postgresql://lidify:lidify@localhost:5432/lidify"
export DATABASE_URL="postgresql://kima:kima@localhost:5432/kima"
echo "Running Prisma migrations..."
ls -la prisma/migrations/ || echo "No migrations directory!"
# Check if _prisma_migrations table exists (indicates previous Prisma setup)
MIGRATIONS_EXIST=$(gosu postgres psql -d lidify -tAc "SELECT EXISTS (SELECT FROM information_schema.tables WHERE table_name = '_prisma_migrations')" 2>/dev/null || echo "f")
MIGRATIONS_EXIST=$(gosu postgres psql -d kima -tAc "SELECT EXISTS (SELECT FROM information_schema.tables WHERE table_name = '_prisma_migrations')" 2>/dev/null || echo "f")
# Check if User table exists (indicates existing data)
USER_TABLE_EXIST=$(gosu postgres psql -d lidify -tAc "SELECT EXISTS (SELECT FROM information_schema.tables WHERE table_schema = 'public' AND table_name = 'User')" 2>/dev/null || echo "f")
USER_TABLE_EXIST=$(gosu postgres psql -d kima -tAc "SELECT EXISTS (SELECT FROM information_schema.tables WHERE table_schema = 'public' AND table_name = 'User')" 2>/dev/null || echo "f")
# Handle rename migration for existing databases
echo "Checking if rename migration needs to be marked as applied..."
if gosu postgres psql -d lidify -tAc "SELECT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name='SystemSettings' AND column_name='soulseekFallback');" 2>/dev/null | grep -q 't'; then
if gosu postgres psql -d kima -tAc "SELECT EXISTS (SELECT 1 FROM information_schema.columns WHERE table_name='SystemSettings' AND column_name='soulseekFallback');" 2>/dev/null | grep -q 't'; then
echo "Old column exists, marking migration as applied..."
gosu postgres psql -d lidify -c "INSERT INTO \"_prisma_migrations\" (id, checksum, finished_at, migration_name, logs, rolled_back_at, started_at, applied_steps_count) VALUES (gen_random_uuid(), '', NOW(), '20250101000000_rename_soulseek_fallback', '', NULL, NOW(), 1) ON CONFLICT DO NOTHING;" 2>/dev/null || true
gosu postgres psql -d kima -c "INSERT INTO \"_prisma_migrations\" (id, checksum, finished_at, migration_name, logs, rolled_back_at, started_at, applied_steps_count) VALUES (gen_random_uuid(), '', NOW(), '20250101000000_rename_soulseek_fallback', '', NULL, NOW(), 1) ON CONFLICT DO NOTHING;" 2>/dev/null || true
fi
if [ "$MIGRATIONS_EXIST" = "t" ]; then
@@ -430,7 +430,7 @@ echo "✓ Migrations completed successfully"
# Verify schema exists before starting services
echo "Verifying database schema..."
if ! gosu postgres psql -d lidify -c "SELECT 1 FROM \"Track\" LIMIT 1" >/dev/null 2>&1; then
if ! gosu postgres psql -d kima -c "SELECT 1 FROM \"Track\" LIMIT 1" >/dev/null 2>&1; then
echo "FATAL: Track table does not exist after migration!"
echo "Database schema verification failed. Container will exit."
exit 1
@@ -471,20 +471,20 @@ fi
# Write environment file for backend
cat > /app/backend/.env << ENVEOF
NODE_ENV=production
DATABASE_URL=postgresql://lidify:lidify@localhost:5432/lidify
DATABASE_URL=postgresql://kima:kima@localhost:5432/kima
REDIS_URL=redis://localhost:6379
PORT=3006
MUSIC_PATH=/music
TRANSCODE_CACHE_PATH=/data/cache/transcodes
SESSION_SECRET=$SESSION_SECRET
SETTINGS_ENCRYPTION_KEY=$SETTINGS_ENCRYPTION_KEY
INTERNAL_API_SECRET=lidify-internal-aio
INTERNAL_API_SECRET=kima-internal-aio
ENVEOF
echo "Starting Lidify..."
echo "Starting Kima..."
exec env \
NODE_ENV=production \
DATABASE_URL="postgresql://lidify:lidify@localhost:5432/lidify" \
DATABASE_URL="postgresql://kima:kima@localhost:5432/kima" \
SESSION_SECRET="$SESSION_SECRET" \
SETTINGS_ENCRYPTION_KEY="$SETTINGS_ENCRYPTION_KEY" \
/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
+2 -2
View File
@@ -20,7 +20,7 @@ if [ "$(id -u)" = "0" ]; then
exit 1
fi
echo "[START] Starting Lidify Backend..."
echo "[START] Starting Kima Backend..."
# Docker Compose health checks ensure database and Redis are ready
# Add a small delay to be extra safe
@@ -62,7 +62,7 @@ if [ -z "$SETTINGS_ENCRYPTION_KEY" ]; then
export SETTINGS_ENCRYPTION_KEY="default-encryption-key-change-me"
fi
echo "[START] Lidify Backend starting on port ${PORT:-3006}..."
echo "[START] Kima Backend starting on port ${PORT:-3006}..."
echo "[CONFIG] Music path: ${MUSIC_PATH:-/music}"
echo "[CONFIG] Environment: ${NODE_ENV:-production}"
+3 -3
View File
@@ -1,11 +1,11 @@
#!/bin/bash
# Lidify Deploy Script
# Kima Deploy Script
# Builds Docker image and cleans up old images/cache to prevent disk bloat
set -e
# Configuration
IMAGE_NAME="${DOCKERHUB_USERNAME:-chevron7locked}/lidify"
IMAGE_NAME="${DOCKERHUB_USERNAME:-chevron7locked}/kima"
VERSION="${VERSION:-latest}"
FULL_IMAGE="${IMAGE_NAME}:${VERSION}"
@@ -15,7 +15,7 @@ GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
echo -e "${GREEN}=== Lidify Deploy ===${NC}"
echo -e "${GREEN}=== Kima Deploy ===${NC}"
echo "Building: ${FULL_IMAGE}"
echo ""
+9 -9
View File
@@ -1,4 +1,4 @@
# Lidify Dev Services
# Kima Dev Services
# Run alongside npm dev servers for audio analysis
#
# Usage:
@@ -12,25 +12,25 @@
services:
postgres:
image: postgres:16-alpine
container_name: lidify_dev_db
container_name: kima_dev_db
environment:
POSTGRES_USER: lidify
POSTGRES_PASSWORD: lidify
POSTGRES_DB: lidify
POSTGRES_USER: kima
POSTGRES_PASSWORD: kima
POSTGRES_DB: kima
volumes:
- postgres_dev_data:/var/lib/postgresql/data
ports:
- "5433:5432"
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U lidify -d lidify"]
test: ["CMD-SHELL", "pg_isready -U kima -d kima"]
interval: 10s
timeout: 5s
retries: 5
redis:
image: redis:7-alpine
container_name: lidify_dev_redis
container_name: kima_dev_redis
ports:
- "6380:6379"
restart: unless-stopped
@@ -44,11 +44,11 @@ services:
audio-analyzer:
build:
context: ./services/audio-analyzer
container_name: lidify_audio_analyzer
container_name: kima_audio_analyzer
environment:
# Connect to host machine's services (or Docker services)
REDIS_URL: redis://redis:6379
DATABASE_URL: postgresql://lidify:lidify@postgres:5432/lidify
DATABASE_URL: postgresql://kima:kima@postgres:5432/kima
# Music path inside container (mounted from host)
MUSIC_PATH: /music
BATCH_SIZE: 10
+7 -7
View File
@@ -1,4 +1,4 @@
# Lidify - Premium Self-Hosted Music Server
# Kima - Premium Self-Hosted Music Server
# All-in-One container with AI-powered vibe matching
#
# Features included:
@@ -12,20 +12,20 @@
# 3. Open http://localhost:3030
services:
lidify:
image: ${DOCKERHUB_USERNAME:-chevron7locked}/lidify:${VERSION:-latest}
container_name: lidify
kima:
image: ${DOCKERHUB_USERNAME:-chevron7locked}/kima:${VERSION:-latest}
container_name: kima
ports:
- "${PORT:-3030}:3030"
volumes:
# REQUIRED: Path to your music library
- ${MUSIC_PATH:-/path/to/your/music}:/music
# Persistent data (database, cache, etc.)
- lidify_data:/data
- kima_data:/data
environment:
- TZ=${TZ:-UTC}
- SESSION_SECRET=${SESSION_SECRET:-}
# Lidarr webhook callback URL - how Lidarr reaches Lidify when downloads complete
# Lidarr webhook callback URL - how Lidarr reaches Kima when downloads complete
# Default uses host.docker.internal which works on most setups with extra_hosts below
# Override if using custom Docker networks: e.g., http://192.168.0.20:3030
- LIDIFY_CALLBACK_URL=${LIDIFY_CALLBACK_URL:-http://host.docker.internal:3030}
@@ -41,4 +41,4 @@ services:
retries: 3
volumes:
lidify_data:
kima_data:
+15 -15
View File
@@ -1,5 +1,5 @@
# Lidify Full Stack - Production Deployment
# Uses pre-built Lidify image from DockerHub + all external services
# Kima Full Stack - Production Deployment
# Uses pre-built Kima image from DockerHub + all external services
#
# Usage:
# docker compose -f docker-compose.server.yml up -d
@@ -9,21 +9,21 @@ services:
# LIDIFY (All-in-One: Frontend + Backend + PostgreSQL + Redis)
# ==============================================================================
lidify:
image: chevron7locked/lidify:latest
container_name: lidify
kima:
image: chevron7locked/kima:latest
container_name: kima
ports:
- "${FRONTEND_PORT:-3030}:3030"
volumes:
# IMPORTANT: CHANGE THIS to your music library path
- ${MUSIC_PATH:-/path/to/your/music}:/music
# Persistent data (database, cache, covers, etc.)
- lidify_data:/data
- kima_data:/data
environment:
- TZ=${TZ:-America/Chicago}
# Generate with: openssl rand -base64 32
- SESSION_SECRET=${SESSION_SECRET:-changeme-generate-secure-key}
# Lidarr webhook callback URL - how Lidarr reaches Lidify when downloads complete
# Lidarr webhook callback URL - how Lidarr reaches Kima when downloads complete
# Default uses host.docker.internal which works on most setups with extra_hosts below
# Override if using custom Docker networks: e.g., http://192.168.0.20:3030
- LIDIFY_CALLBACK_URL=${LIDIFY_CALLBACK_URL:-http://host.docker.internal:3030}
@@ -52,7 +52,7 @@ services:
# Lidarr - Music collection manager
lidarr:
image: lscr.io/linuxserver/lidarr:latest
container_name: lidify_lidarr
container_name: kima_lidarr
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
@@ -68,7 +68,7 @@ services:
# Prowlarr - Indexer manager
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: lidify_prowlarr
container_name: kima_prowlarr
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
@@ -82,7 +82,7 @@ services:
# FlareSolverr - Cloudflare bypass for Prowlarr
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: lidify_flaresolverr
container_name: kima_flaresolverr
environment:
- LOG_LEVEL=${LOG_LEVEL:-info}
- LOG_HTML=${LOG_HTML:-false}
@@ -95,7 +95,7 @@ services:
# qBittorrent - Torrent client
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: lidify_qbittorrent
container_name: kima_qbittorrent
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
@@ -114,7 +114,7 @@ services:
# NZBGet - Usenet client
nzbget:
image: lscr.io/linuxserver/nzbget:latest
container_name: lidify_nzbget
container_name: kima_nzbget
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
@@ -128,8 +128,8 @@ services:
restart: unless-stopped
volumes:
# Lidify
lidify_data:
# Kima
kima_data:
# External services
lidarr_config:
prowlarr_config:
@@ -138,4 +138,4 @@ volumes:
networks:
default:
name: lidify_network
name: kima_network
+14 -14
View File
@@ -1,17 +1,17 @@
# Optional External Services for Lidify
# Optional External Services for Kima
#
# These services are OPTIONAL and can be enabled based on your needs.
# To use these services alongside the core Lidify stack:
# To use these services alongside the core Kima stack:
#
# docker compose -f docker-compose.yml -f docker-compose.services.yml up -d
#
# Note: You can configure these services through the Lidify web UI after starting them.
# Note: You can configure these services through the Kima web UI after starting them.
services:
# Lidarr - Music collection manager
lidarr:
image: lscr.io/linuxserver/lidarr:latest
container_name: lidify_lidarr
container_name: kima_lidarr
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
@@ -24,12 +24,12 @@ services:
- "8686:8686"
restart: unless-stopped
networks:
- lidify_network
- kima_network
# Prowlarr - Indexer manager
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: lidify_prowlarr
container_name: kima_prowlarr
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
@@ -40,12 +40,12 @@ services:
- "9696:9696"
restart: unless-stopped
networks:
- lidify_network
- kima_network
# FlareSolverr - Cloudflare bypass for Prowlarr
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: lidify_flaresolverr
container_name: kima_flaresolverr
environment:
- LOG_LEVEL=${LOG_LEVEL:-info}
- LOG_HTML=${LOG_HTML:-false}
@@ -55,12 +55,12 @@ services:
- "8191:8191"
restart: unless-stopped
networks:
- lidify_network
- kima_network
# qBittorrent - Torrent client
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: lidify_qbittorrent
container_name: kima_qbittorrent
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
@@ -76,12 +76,12 @@ services:
- "6881:6881/udp"
restart: unless-stopped
networks:
- lidify_network
- kima_network
# NZBGet - Usenet client
nzbget:
image: lscr.io/linuxserver/nzbget:latest
container_name: lidify_nzbget
container_name: kima_nzbget
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
@@ -94,7 +94,7 @@ services:
- "6789:6789"
restart: unless-stopped
networks:
- lidify_network
- kima_network
volumes:
lidarr_config:
@@ -103,5 +103,5 @@ volumes:
nzbget_config:
networks:
lidify_network:
kima_network:
external: true
+29 -29
View File
@@ -3,18 +3,18 @@ services:
# LIDIFY CORE APPLICATION
# ==============================================================================
# Backend API - Your Lidify Express.js server
# Backend API - Your Kima Express.js server
backend:
build:
context: ./backend
dockerfile: Dockerfile
container_name: lidify_backend
container_name: kima_backend
environment:
# Database
DATABASE_URL: postgresql://${POSTGRES_USER:-lidifydb}:${POSTGRES_PASSWORD:-changeme}@postgres:5432/${POSTGRES_DB:-lidify}
POSTGRES_USER: ${POSTGRES_USER:-lidifydb}
DATABASE_URL: postgresql://${POSTGRES_USER:-kimadb}:${POSTGRES_PASSWORD:-changeme}@postgres:5432/${POSTGRES_DB:-kima}
POSTGRES_USER: ${POSTGRES_USER:-kimadb}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
POSTGRES_DB: ${POSTGRES_DB:-lidify}
POSTGRES_DB: ${POSTGRES_DB:-kima}
REDIS_URL: redis://redis:6379
# Server config
@@ -36,9 +36,9 @@ services:
ALLOWED_ORIGINS: ${ALLOWED_ORIGINS:-http://localhost:3000,http://localhost:3030}
# Internal API secret for service-to-service auth
INTERNAL_API_SECRET: ${INTERNAL_API_SECRET:-lidify-internal-secret-change-me}
INTERNAL_API_SECRET: ${INTERNAL_API_SECRET:-kima-internal-secret-change-me}
# Lidarr webhook callback URL - how Lidarr can reach Lidify
# Lidarr webhook callback URL - how Lidarr can reach Kima
# Use backend:3006 for same-network communication, or external IP:3030 for external Lidarr
LIDIFY_CALLBACK_URL: ${LIDIFY_CALLBACK_URL:-http://backend:3006}
# Debug: enable extra podcast stream/cache logging
@@ -64,9 +64,9 @@ services:
default:
aliases:
- backend
- lidify_backend
- kima_backend
# Frontend Web UI - Your Lidify Next.js app
# Frontend Web UI - Your Kima Next.js app
frontend:
build:
context: ./frontend
@@ -77,7 +77,7 @@ services:
NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-}
# Build type: "nightly" for dev builds, unset/empty for tagged releases
NEXT_PUBLIC_BUILD_TYPE: ${NEXT_PUBLIC_BUILD_TYPE:-nightly}
container_name: lidify_frontend
container_name: kima_frontend
environment:
NODE_ENV: ${NODE_ENV:-production}
# Used by next.config.ts rewrites() inside the container.
@@ -102,11 +102,11 @@ services:
postgres:
image: pgvector/pgvector:pg16
container_name: lidify_db
container_name: kima_db
environment:
POSTGRES_USER: ${POSTGRES_USER:-lidifydb}
POSTGRES_USER: ${POSTGRES_USER:-kimadb}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
POSTGRES_DB: ${POSTGRES_DB:-lidify}
POSTGRES_DB: ${POSTGRES_DB:-kima}
volumes:
- postgres_data:/var/lib/postgresql/data
ports:
@@ -115,12 +115,12 @@ services:
healthcheck:
# IMPORTANT:
# pg_isready defaults to connecting to a database with the same name as the user.
# Our default user is "lidifydb" but default database is "lidify",
# so without -d this will spam logs with: FATAL: database "lidifydb" does not exist
# Our default user is "kimadb" but default database is "kima",
# so without -d this will spam logs with: FATAL: database "kimadb" does not exist
test:
[
"CMD-SHELL",
"pg_isready -U ${POSTGRES_USER:-lidifydb} -d ${POSTGRES_DB:-lidify}",
"pg_isready -U ${POSTGRES_USER:-kimadb} -d ${POSTGRES_DB:-kima}",
]
interval: 10s
timeout: 5s
@@ -128,7 +128,7 @@ services:
redis:
image: redis:7-alpine
container_name: lidify_redis
container_name: kima_redis
ports:
- "${REDIS_PORT:-6379}:6379"
restart: unless-stopped
@@ -145,7 +145,7 @@ services:
# Lidarr - Music collection manager
lidarr:
image: lscr.io/linuxserver/lidarr:latest
container_name: lidify_lidarr
container_name: kima_lidarr
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
@@ -161,7 +161,7 @@ services:
# Prowlarr - Indexer manager
prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: lidify_prowlarr
container_name: kima_prowlarr
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
@@ -175,7 +175,7 @@ services:
# FlareSolverr - Cloudflare bypass for Prowlarr
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: lidify_flaresolverr
container_name: kima_flaresolverr
environment:
- LOG_LEVEL=${LOG_LEVEL:-info}
- LOG_HTML=${LOG_HTML:-false}
@@ -191,7 +191,7 @@ services:
# qBittorrent - Torrent client
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: lidify_qbittorrent
container_name: kima_qbittorrent
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
@@ -210,7 +210,7 @@ services:
# SABnzbd - Usenet client
sabnzbd:
image: lscr.io/linuxserver/sabnzbd:latest
container_name: lidify_sabnzbd
container_name: kima_sabnzbd
environment:
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
@@ -230,10 +230,10 @@ services:
audio-analyzer:
build:
context: ./services/audio-analyzer
container_name: lidify_audio_analyzer
container_name: kima_audio_analyzer
environment:
REDIS_URL: redis://redis:6379
DATABASE_URL: postgresql://${POSTGRES_USER:-lidifydb}:${POSTGRES_PASSWORD:-changeme}@postgres:5432/${POSTGRES_DB:-lidify}
DATABASE_URL: postgresql://${POSTGRES_USER:-kimadb}:${POSTGRES_PASSWORD:-changeme}@postgres:5432/${POSTGRES_DB:-kima}
MUSIC_PATH: /music
BATCH_SIZE: ${AUDIO_ANALYSIS_BATCH_SIZE:-10}
SLEEP_INTERVAL: ${AUDIO_ANALYSIS_INTERVAL:-5}
@@ -285,17 +285,17 @@ services:
audio-analyzer-clap:
build:
context: ./services/audio-analyzer-clap
container_name: lidify_audio_analyzer_clap
container_name: kima_audio_analyzer_clap
environment:
REDIS_URL: redis://redis:6379
DATABASE_URL: postgresql://${POSTGRES_USER:-lidifydb}:${POSTGRES_PASSWORD:-changeme}@postgres:5432/${POSTGRES_DB:-lidify}
DATABASE_URL: postgresql://${POSTGRES_USER:-kimadb}:${POSTGRES_PASSWORD:-changeme}@postgres:5432/${POSTGRES_DB:-kima}
BACKEND_URL: http://backend:3006
MUSIC_PATH: /music
SLEEP_INTERVAL: ${CLAP_SLEEP_INTERVAL:-5}
NUM_WORKERS: ${CLAP_WORKERS:-2}
THREADS_PER_WORKER: ${CLAP_THREADS_PER_WORKER:-1}
MODEL_IDLE_TIMEOUT: ${CLAP_MODEL_IDLE_TIMEOUT:-300}
INTERNAL_API_SECRET: ${INTERNAL_API_SECRET:-lidify-internal-secret-change-me}
INTERNAL_API_SECRET: ${INTERNAL_API_SECRET:-kima-internal-secret-change-me}
volumes:
- ${MUSIC_PATH:-./music}:/music:ro
depends_on:
@@ -324,7 +324,7 @@ services:
# capabilities: [gpu]
volumes:
# Lidify core
# Kima core
postgres_data:
backend_cache:
backend_logs:
@@ -336,4 +336,4 @@ volumes:
networks:
default:
name: lidify_network
name: kima_network
+1 -1
View File
@@ -20,7 +20,7 @@ if [ "$(id -u)" = "0" ]; then
exit 1
fi
echo "[START] Starting Lidify Frontend..."
echo "[START] Starting Kima Frontend..."
echo "[CONFIG] Environment: ${NODE_ENV:-production}"
echo "[CONFIG] API URL: ${NEXT_PUBLIC_API_URL:-not set}"