mirror of
https://github.com/Chevron7Locked/kima-hub.git
synced 2026-06-19 07:37:17 +00:00
chore: rebrand Docker infrastructure to Kima
This commit is contained in:
+24
-24
@@ -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)
|
# 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
|
FROM node:20-slim
|
||||||
|
|
||||||
@@ -129,7 +129,7 @@ if [ -f /data/.schema_ready ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
while [ $COUNTER -lt $TIMEOUT ]; do
|
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!"
|
echo "[wait-for-db] ✓ Database is ready and schema exists!"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@@ -144,7 +144,7 @@ done
|
|||||||
|
|
||||||
echo "[wait-for-db] ERROR: Database schema not ready after ${TIMEOUT}s"
|
echo "[wait-for-db] ERROR: Database schema not ready after ${TIMEOUT}s"
|
||||||
echo "[wait-for-db] Listing available tables:"
|
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
|
exit 1
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
@@ -211,7 +211,7 @@ WORKDIR /app
|
|||||||
COPY healthcheck-prod.js /app/healthcheck.js
|
COPY healthcheck-prod.js /app/healthcheck.js
|
||||||
|
|
||||||
# Create supervisord config - logs to stdout/stderr for Docker visibility
|
# 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]
|
[supervisord]
|
||||||
nodaemon=true
|
nodaemon=true
|
||||||
logfile=/dev/null
|
logfile=/dev/null
|
||||||
@@ -275,7 +275,7 @@ stdout_logfile=/dev/stdout
|
|||||||
stdout_logfile_maxbytes=0
|
stdout_logfile_maxbytes=0
|
||||||
stderr_logfile=/dev/stderr
|
stderr_logfile=/dev/stderr
|
||||||
stderr_logfile_maxbytes=0
|
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
|
priority=50
|
||||||
|
|
||||||
[program:audio-analyzer-clap]
|
[program:audio-analyzer-clap]
|
||||||
@@ -288,12 +288,12 @@ stdout_logfile=/dev/stdout
|
|||||||
stdout_logfile_maxbytes=0
|
stdout_logfile_maxbytes=0
|
||||||
stderr_logfile=/dev/stderr
|
stderr_logfile=/dev/stderr
|
||||||
stderr_logfile_maxbytes=0
|
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
|
priority=60
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Fix Windows line endings in supervisor config
|
# 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
|
# Create startup script with root check
|
||||||
RUN cat > /app/start.sh << 'EOF'
|
RUN cat > /app/start.sh << 'EOF'
|
||||||
@@ -306,7 +306,7 @@ set -e
|
|||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "============================================================"
|
echo "============================================================"
|
||||||
echo " Lidify - Premium Self-Hosted Music Server"
|
echo " Kima - Premium Self-Hosted Music Server"
|
||||||
echo ""
|
echo ""
|
||||||
echo " Features:"
|
echo " Features:"
|
||||||
echo " - AI-Powered Vibe Matching (Essentia ML)"
|
echo " - AI-Powered Vibe Matching (Essentia ML)"
|
||||||
@@ -372,32 +372,32 @@ fi
|
|||||||
gosu postgres $PG_BIN/pg_ctl -D /data/postgres -w start
|
gosu postgres $PG_BIN/pg_ctl -D /data/postgres -w start
|
||||||
|
|
||||||
# Create user and database if they don't exist
|
# 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 -tc "SELECT 1 FROM pg_roles WHERE rolname = 'kima'" | grep -q 1 || \
|
||||||
gosu postgres psql -c "CREATE USER lidify WITH PASSWORD 'lidify';"
|
gosu postgres psql -c "CREATE USER kima WITH PASSWORD 'kima';"
|
||||||
gosu postgres psql -tc "SELECT 1 FROM pg_database WHERE datname = 'lidify'" | grep -q 1 || \
|
gosu postgres psql -tc "SELECT 1 FROM pg_database WHERE datname = 'kima'" | grep -q 1 || \
|
||||||
gosu postgres psql -c "CREATE DATABASE lidify OWNER lidify;"
|
gosu postgres psql -c "CREATE DATABASE kima OWNER kima;"
|
||||||
|
|
||||||
# Create pgvector extension as superuser (required before migrations)
|
# Create pgvector extension as superuser (required before migrations)
|
||||||
echo "Creating pgvector extension..."
|
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
|
# Run Prisma migrations
|
||||||
cd /app/backend
|
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..."
|
echo "Running Prisma migrations..."
|
||||||
ls -la prisma/migrations/ || echo "No migrations directory!"
|
ls -la prisma/migrations/ || echo "No migrations directory!"
|
||||||
|
|
||||||
# Check if _prisma_migrations table exists (indicates previous Prisma setup)
|
# 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)
|
# 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
|
# Handle rename migration for existing databases
|
||||||
echo "Checking if rename migration needs to be marked as applied..."
|
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..."
|
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
|
fi
|
||||||
|
|
||||||
if [ "$MIGRATIONS_EXIST" = "t" ]; then
|
if [ "$MIGRATIONS_EXIST" = "t" ]; then
|
||||||
@@ -430,7 +430,7 @@ echo "✓ Migrations completed successfully"
|
|||||||
|
|
||||||
# Verify schema exists before starting services
|
# Verify schema exists before starting services
|
||||||
echo "Verifying database schema..."
|
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 "FATAL: Track table does not exist after migration!"
|
||||||
echo "Database schema verification failed. Container will exit."
|
echo "Database schema verification failed. Container will exit."
|
||||||
exit 1
|
exit 1
|
||||||
@@ -471,20 +471,20 @@ fi
|
|||||||
# Write environment file for backend
|
# Write environment file for backend
|
||||||
cat > /app/backend/.env << ENVEOF
|
cat > /app/backend/.env << ENVEOF
|
||||||
NODE_ENV=production
|
NODE_ENV=production
|
||||||
DATABASE_URL=postgresql://lidify:lidify@localhost:5432/lidify
|
DATABASE_URL=postgresql://kima:kima@localhost:5432/kima
|
||||||
REDIS_URL=redis://localhost:6379
|
REDIS_URL=redis://localhost:6379
|
||||||
PORT=3006
|
PORT=3006
|
||||||
MUSIC_PATH=/music
|
MUSIC_PATH=/music
|
||||||
TRANSCODE_CACHE_PATH=/data/cache/transcodes
|
TRANSCODE_CACHE_PATH=/data/cache/transcodes
|
||||||
SESSION_SECRET=$SESSION_SECRET
|
SESSION_SECRET=$SESSION_SECRET
|
||||||
SETTINGS_ENCRYPTION_KEY=$SETTINGS_ENCRYPTION_KEY
|
SETTINGS_ENCRYPTION_KEY=$SETTINGS_ENCRYPTION_KEY
|
||||||
INTERNAL_API_SECRET=lidify-internal-aio
|
INTERNAL_API_SECRET=kima-internal-aio
|
||||||
ENVEOF
|
ENVEOF
|
||||||
|
|
||||||
echo "Starting Lidify..."
|
echo "Starting Kima..."
|
||||||
exec env \
|
exec env \
|
||||||
NODE_ENV=production \
|
NODE_ENV=production \
|
||||||
DATABASE_URL="postgresql://lidify:lidify@localhost:5432/lidify" \
|
DATABASE_URL="postgresql://kima:kima@localhost:5432/kima" \
|
||||||
SESSION_SECRET="$SESSION_SECRET" \
|
SESSION_SECRET="$SESSION_SECRET" \
|
||||||
SETTINGS_ENCRYPTION_KEY="$SETTINGS_ENCRYPTION_KEY" \
|
SETTINGS_ENCRYPTION_KEY="$SETTINGS_ENCRYPTION_KEY" \
|
||||||
/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
|
/usr/bin/supervisord -c /etc/supervisor/supervisord.conf
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ if [ "$(id -u)" = "0" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "[START] Starting Lidify Backend..."
|
echo "[START] Starting Kima Backend..."
|
||||||
|
|
||||||
# Docker Compose health checks ensure database and Redis are ready
|
# Docker Compose health checks ensure database and Redis are ready
|
||||||
# Add a small delay to be extra safe
|
# 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"
|
export SETTINGS_ENCRYPTION_KEY="default-encryption-key-change-me"
|
||||||
fi
|
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] Music path: ${MUSIC_PATH:-/music}"
|
||||||
echo "[CONFIG] Environment: ${NODE_ENV:-production}"
|
echo "[CONFIG] Environment: ${NODE_ENV:-production}"
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# Lidify Deploy Script
|
# Kima Deploy Script
|
||||||
# Builds Docker image and cleans up old images/cache to prevent disk bloat
|
# Builds Docker image and cleans up old images/cache to prevent disk bloat
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# Configuration
|
# Configuration
|
||||||
IMAGE_NAME="${DOCKERHUB_USERNAME:-chevron7locked}/lidify"
|
IMAGE_NAME="${DOCKERHUB_USERNAME:-chevron7locked}/kima"
|
||||||
VERSION="${VERSION:-latest}"
|
VERSION="${VERSION:-latest}"
|
||||||
FULL_IMAGE="${IMAGE_NAME}:${VERSION}"
|
FULL_IMAGE="${IMAGE_NAME}:${VERSION}"
|
||||||
|
|
||||||
@@ -15,7 +15,7 @@ GREEN='\033[0;32m'
|
|||||||
YELLOW='\033[1;33m'
|
YELLOW='\033[1;33m'
|
||||||
NC='\033[0m' # No Color
|
NC='\033[0m' # No Color
|
||||||
|
|
||||||
echo -e "${GREEN}=== Lidify Deploy ===${NC}"
|
echo -e "${GREEN}=== Kima Deploy ===${NC}"
|
||||||
echo "Building: ${FULL_IMAGE}"
|
echo "Building: ${FULL_IMAGE}"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Lidify Dev Services
|
# Kima Dev Services
|
||||||
# Run alongside npm dev servers for audio analysis
|
# Run alongside npm dev servers for audio analysis
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
@@ -12,25 +12,25 @@
|
|||||||
services:
|
services:
|
||||||
postgres:
|
postgres:
|
||||||
image: postgres:16-alpine
|
image: postgres:16-alpine
|
||||||
container_name: lidify_dev_db
|
container_name: kima_dev_db
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: lidify
|
POSTGRES_USER: kima
|
||||||
POSTGRES_PASSWORD: lidify
|
POSTGRES_PASSWORD: kima
|
||||||
POSTGRES_DB: lidify
|
POSTGRES_DB: kima
|
||||||
volumes:
|
volumes:
|
||||||
- postgres_dev_data:/var/lib/postgresql/data
|
- postgres_dev_data:/var/lib/postgresql/data
|
||||||
ports:
|
ports:
|
||||||
- "5433:5432"
|
- "5433:5432"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: ["CMD-SHELL", "pg_isready -U lidify -d lidify"]
|
test: ["CMD-SHELL", "pg_isready -U kima -d kima"]
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
redis:
|
redis:
|
||||||
image: redis:7-alpine
|
image: redis:7-alpine
|
||||||
container_name: lidify_dev_redis
|
container_name: kima_dev_redis
|
||||||
ports:
|
ports:
|
||||||
- "6380:6379"
|
- "6380:6379"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -44,11 +44,11 @@ services:
|
|||||||
audio-analyzer:
|
audio-analyzer:
|
||||||
build:
|
build:
|
||||||
context: ./services/audio-analyzer
|
context: ./services/audio-analyzer
|
||||||
container_name: lidify_audio_analyzer
|
container_name: kima_audio_analyzer
|
||||||
environment:
|
environment:
|
||||||
# Connect to host machine's services (or Docker services)
|
# Connect to host machine's services (or Docker services)
|
||||||
REDIS_URL: redis://redis:6379
|
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 inside container (mounted from host)
|
||||||
MUSIC_PATH: /music
|
MUSIC_PATH: /music
|
||||||
BATCH_SIZE: 10
|
BATCH_SIZE: 10
|
||||||
|
|||||||
@@ -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
|
# All-in-One container with AI-powered vibe matching
|
||||||
#
|
#
|
||||||
# Features included:
|
# Features included:
|
||||||
@@ -12,20 +12,20 @@
|
|||||||
# 3. Open http://localhost:3030
|
# 3. Open http://localhost:3030
|
||||||
|
|
||||||
services:
|
services:
|
||||||
lidify:
|
kima:
|
||||||
image: ${DOCKERHUB_USERNAME:-chevron7locked}/lidify:${VERSION:-latest}
|
image: ${DOCKERHUB_USERNAME:-chevron7locked}/kima:${VERSION:-latest}
|
||||||
container_name: lidify
|
container_name: kima
|
||||||
ports:
|
ports:
|
||||||
- "${PORT:-3030}:3030"
|
- "${PORT:-3030}:3030"
|
||||||
volumes:
|
volumes:
|
||||||
# REQUIRED: Path to your music library
|
# REQUIRED: Path to your music library
|
||||||
- ${MUSIC_PATH:-/path/to/your/music}:/music
|
- ${MUSIC_PATH:-/path/to/your/music}:/music
|
||||||
# Persistent data (database, cache, etc.)
|
# Persistent data (database, cache, etc.)
|
||||||
- lidify_data:/data
|
- kima_data:/data
|
||||||
environment:
|
environment:
|
||||||
- TZ=${TZ:-UTC}
|
- TZ=${TZ:-UTC}
|
||||||
- SESSION_SECRET=${SESSION_SECRET:-}
|
- 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
|
# 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
|
# 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}
|
- LIDIFY_CALLBACK_URL=${LIDIFY_CALLBACK_URL:-http://host.docker.internal:3030}
|
||||||
@@ -41,4 +41,4 @@ services:
|
|||||||
retries: 3
|
retries: 3
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
lidify_data:
|
kima_data:
|
||||||
|
|||||||
+15
-15
@@ -1,5 +1,5 @@
|
|||||||
# Lidify Full Stack - Production Deployment
|
# Kima Full Stack - Production Deployment
|
||||||
# Uses pre-built Lidify image from DockerHub + all external services
|
# Uses pre-built Kima image from DockerHub + all external services
|
||||||
#
|
#
|
||||||
# Usage:
|
# Usage:
|
||||||
# docker compose -f docker-compose.server.yml up -d
|
# docker compose -f docker-compose.server.yml up -d
|
||||||
@@ -9,21 +9,21 @@ services:
|
|||||||
# LIDIFY (All-in-One: Frontend + Backend + PostgreSQL + Redis)
|
# LIDIFY (All-in-One: Frontend + Backend + PostgreSQL + Redis)
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|
||||||
lidify:
|
kima:
|
||||||
image: chevron7locked/lidify:latest
|
image: chevron7locked/kima:latest
|
||||||
container_name: lidify
|
container_name: kima
|
||||||
ports:
|
ports:
|
||||||
- "${FRONTEND_PORT:-3030}:3030"
|
- "${FRONTEND_PORT:-3030}:3030"
|
||||||
volumes:
|
volumes:
|
||||||
# IMPORTANT: CHANGE THIS to your music library path
|
# IMPORTANT: CHANGE THIS to your music library path
|
||||||
- ${MUSIC_PATH:-/path/to/your/music}:/music
|
- ${MUSIC_PATH:-/path/to/your/music}:/music
|
||||||
# Persistent data (database, cache, covers, etc.)
|
# Persistent data (database, cache, covers, etc.)
|
||||||
- lidify_data:/data
|
- kima_data:/data
|
||||||
environment:
|
environment:
|
||||||
- TZ=${TZ:-America/Chicago}
|
- TZ=${TZ:-America/Chicago}
|
||||||
# Generate with: openssl rand -base64 32
|
# Generate with: openssl rand -base64 32
|
||||||
- SESSION_SECRET=${SESSION_SECRET:-changeme-generate-secure-key}
|
- 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
|
# 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
|
# 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}
|
- LIDIFY_CALLBACK_URL=${LIDIFY_CALLBACK_URL:-http://host.docker.internal:3030}
|
||||||
@@ -52,7 +52,7 @@ services:
|
|||||||
# Lidarr - Music collection manager
|
# Lidarr - Music collection manager
|
||||||
lidarr:
|
lidarr:
|
||||||
image: lscr.io/linuxserver/lidarr:latest
|
image: lscr.io/linuxserver/lidarr:latest
|
||||||
container_name: lidify_lidarr
|
container_name: kima_lidarr
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
@@ -68,7 +68,7 @@ services:
|
|||||||
# Prowlarr - Indexer manager
|
# Prowlarr - Indexer manager
|
||||||
prowlarr:
|
prowlarr:
|
||||||
image: lscr.io/linuxserver/prowlarr:latest
|
image: lscr.io/linuxserver/prowlarr:latest
|
||||||
container_name: lidify_prowlarr
|
container_name: kima_prowlarr
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
@@ -82,7 +82,7 @@ services:
|
|||||||
# FlareSolverr - Cloudflare bypass for Prowlarr
|
# FlareSolverr - Cloudflare bypass for Prowlarr
|
||||||
flaresolverr:
|
flaresolverr:
|
||||||
image: ghcr.io/flaresolverr/flaresolverr:latest
|
image: ghcr.io/flaresolverr/flaresolverr:latest
|
||||||
container_name: lidify_flaresolverr
|
container_name: kima_flaresolverr
|
||||||
environment:
|
environment:
|
||||||
- LOG_LEVEL=${LOG_LEVEL:-info}
|
- LOG_LEVEL=${LOG_LEVEL:-info}
|
||||||
- LOG_HTML=${LOG_HTML:-false}
|
- LOG_HTML=${LOG_HTML:-false}
|
||||||
@@ -95,7 +95,7 @@ services:
|
|||||||
# qBittorrent - Torrent client
|
# qBittorrent - Torrent client
|
||||||
qbittorrent:
|
qbittorrent:
|
||||||
image: lscr.io/linuxserver/qbittorrent:latest
|
image: lscr.io/linuxserver/qbittorrent:latest
|
||||||
container_name: lidify_qbittorrent
|
container_name: kima_qbittorrent
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
@@ -114,7 +114,7 @@ services:
|
|||||||
# NZBGet - Usenet client
|
# NZBGet - Usenet client
|
||||||
nzbget:
|
nzbget:
|
||||||
image: lscr.io/linuxserver/nzbget:latest
|
image: lscr.io/linuxserver/nzbget:latest
|
||||||
container_name: lidify_nzbget
|
container_name: kima_nzbget
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
@@ -128,8 +128,8 @@ services:
|
|||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
# Lidify
|
# Kima
|
||||||
lidify_data:
|
kima_data:
|
||||||
# External services
|
# External services
|
||||||
lidarr_config:
|
lidarr_config:
|
||||||
prowlarr_config:
|
prowlarr_config:
|
||||||
@@ -138,4 +138,4 @@ volumes:
|
|||||||
|
|
||||||
networks:
|
networks:
|
||||||
default:
|
default:
|
||||||
name: lidify_network
|
name: kima_network
|
||||||
|
|||||||
+14
-14
@@ -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.
|
# 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
|
# 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:
|
services:
|
||||||
# Lidarr - Music collection manager
|
# Lidarr - Music collection manager
|
||||||
lidarr:
|
lidarr:
|
||||||
image: lscr.io/linuxserver/lidarr:latest
|
image: lscr.io/linuxserver/lidarr:latest
|
||||||
container_name: lidify_lidarr
|
container_name: kima_lidarr
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
@@ -24,12 +24,12 @@ services:
|
|||||||
- "8686:8686"
|
- "8686:8686"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- lidify_network
|
- kima_network
|
||||||
|
|
||||||
# Prowlarr - Indexer manager
|
# Prowlarr - Indexer manager
|
||||||
prowlarr:
|
prowlarr:
|
||||||
image: lscr.io/linuxserver/prowlarr:latest
|
image: lscr.io/linuxserver/prowlarr:latest
|
||||||
container_name: lidify_prowlarr
|
container_name: kima_prowlarr
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
@@ -40,12 +40,12 @@ services:
|
|||||||
- "9696:9696"
|
- "9696:9696"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- lidify_network
|
- kima_network
|
||||||
|
|
||||||
# FlareSolverr - Cloudflare bypass for Prowlarr
|
# FlareSolverr - Cloudflare bypass for Prowlarr
|
||||||
flaresolverr:
|
flaresolverr:
|
||||||
image: ghcr.io/flaresolverr/flaresolverr:latest
|
image: ghcr.io/flaresolverr/flaresolverr:latest
|
||||||
container_name: lidify_flaresolverr
|
container_name: kima_flaresolverr
|
||||||
environment:
|
environment:
|
||||||
- LOG_LEVEL=${LOG_LEVEL:-info}
|
- LOG_LEVEL=${LOG_LEVEL:-info}
|
||||||
- LOG_HTML=${LOG_HTML:-false}
|
- LOG_HTML=${LOG_HTML:-false}
|
||||||
@@ -55,12 +55,12 @@ services:
|
|||||||
- "8191:8191"
|
- "8191:8191"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- lidify_network
|
- kima_network
|
||||||
|
|
||||||
# qBittorrent - Torrent client
|
# qBittorrent - Torrent client
|
||||||
qbittorrent:
|
qbittorrent:
|
||||||
image: lscr.io/linuxserver/qbittorrent:latest
|
image: lscr.io/linuxserver/qbittorrent:latest
|
||||||
container_name: lidify_qbittorrent
|
container_name: kima_qbittorrent
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
@@ -76,12 +76,12 @@ services:
|
|||||||
- "6881:6881/udp"
|
- "6881:6881/udp"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- lidify_network
|
- kima_network
|
||||||
|
|
||||||
# NZBGet - Usenet client
|
# NZBGet - Usenet client
|
||||||
nzbget:
|
nzbget:
|
||||||
image: lscr.io/linuxserver/nzbget:latest
|
image: lscr.io/linuxserver/nzbget:latest
|
||||||
container_name: lidify_nzbget
|
container_name: kima_nzbget
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
@@ -94,7 +94,7 @@ services:
|
|||||||
- "6789:6789"
|
- "6789:6789"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
networks:
|
||||||
- lidify_network
|
- kima_network
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
lidarr_config:
|
lidarr_config:
|
||||||
@@ -103,5 +103,5 @@ volumes:
|
|||||||
nzbget_config:
|
nzbget_config:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
lidify_network:
|
kima_network:
|
||||||
external: true
|
external: true
|
||||||
|
|||||||
+29
-29
@@ -3,18 +3,18 @@ services:
|
|||||||
# LIDIFY CORE APPLICATION
|
# LIDIFY CORE APPLICATION
|
||||||
# ==============================================================================
|
# ==============================================================================
|
||||||
|
|
||||||
# Backend API - Your Lidify Express.js server
|
# Backend API - Your Kima Express.js server
|
||||||
backend:
|
backend:
|
||||||
build:
|
build:
|
||||||
context: ./backend
|
context: ./backend
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
container_name: lidify_backend
|
container_name: kima_backend
|
||||||
environment:
|
environment:
|
||||||
# Database
|
# Database
|
||||||
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}
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-lidifydb}
|
POSTGRES_USER: ${POSTGRES_USER:-kimadb}
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-lidify}
|
POSTGRES_DB: ${POSTGRES_DB:-kima}
|
||||||
REDIS_URL: redis://redis:6379
|
REDIS_URL: redis://redis:6379
|
||||||
|
|
||||||
# Server config
|
# Server config
|
||||||
@@ -36,9 +36,9 @@ services:
|
|||||||
ALLOWED_ORIGINS: ${ALLOWED_ORIGINS:-http://localhost:3000,http://localhost:3030}
|
ALLOWED_ORIGINS: ${ALLOWED_ORIGINS:-http://localhost:3000,http://localhost:3030}
|
||||||
|
|
||||||
# Internal API secret for service-to-service auth
|
# 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
|
# Use backend:3006 for same-network communication, or external IP:3030 for external Lidarr
|
||||||
LIDIFY_CALLBACK_URL: ${LIDIFY_CALLBACK_URL:-http://backend:3006}
|
LIDIFY_CALLBACK_URL: ${LIDIFY_CALLBACK_URL:-http://backend:3006}
|
||||||
# Debug: enable extra podcast stream/cache logging
|
# Debug: enable extra podcast stream/cache logging
|
||||||
@@ -64,9 +64,9 @@ services:
|
|||||||
default:
|
default:
|
||||||
aliases:
|
aliases:
|
||||||
- backend
|
- backend
|
||||||
- lidify_backend
|
- kima_backend
|
||||||
|
|
||||||
# Frontend Web UI - Your Lidify Next.js app
|
# Frontend Web UI - Your Kima Next.js app
|
||||||
frontend:
|
frontend:
|
||||||
build:
|
build:
|
||||||
context: ./frontend
|
context: ./frontend
|
||||||
@@ -77,7 +77,7 @@ services:
|
|||||||
NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-}
|
NEXT_PUBLIC_API_URL: ${NEXT_PUBLIC_API_URL:-}
|
||||||
# Build type: "nightly" for dev builds, unset/empty for tagged releases
|
# Build type: "nightly" for dev builds, unset/empty for tagged releases
|
||||||
NEXT_PUBLIC_BUILD_TYPE: ${NEXT_PUBLIC_BUILD_TYPE:-nightly}
|
NEXT_PUBLIC_BUILD_TYPE: ${NEXT_PUBLIC_BUILD_TYPE:-nightly}
|
||||||
container_name: lidify_frontend
|
container_name: kima_frontend
|
||||||
environment:
|
environment:
|
||||||
NODE_ENV: ${NODE_ENV:-production}
|
NODE_ENV: ${NODE_ENV:-production}
|
||||||
# Used by next.config.ts rewrites() inside the container.
|
# Used by next.config.ts rewrites() inside the container.
|
||||||
@@ -102,11 +102,11 @@ services:
|
|||||||
|
|
||||||
postgres:
|
postgres:
|
||||||
image: pgvector/pgvector:pg16
|
image: pgvector/pgvector:pg16
|
||||||
container_name: lidify_db
|
container_name: kima_db
|
||||||
environment:
|
environment:
|
||||||
POSTGRES_USER: ${POSTGRES_USER:-lidifydb}
|
POSTGRES_USER: ${POSTGRES_USER:-kimadb}
|
||||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-changeme}
|
||||||
POSTGRES_DB: ${POSTGRES_DB:-lidify}
|
POSTGRES_DB: ${POSTGRES_DB:-kima}
|
||||||
volumes:
|
volumes:
|
||||||
- postgres_data:/var/lib/postgresql/data
|
- postgres_data:/var/lib/postgresql/data
|
||||||
ports:
|
ports:
|
||||||
@@ -115,12 +115,12 @@ services:
|
|||||||
healthcheck:
|
healthcheck:
|
||||||
# IMPORTANT:
|
# IMPORTANT:
|
||||||
# pg_isready defaults to connecting to a database with the same name as the user.
|
# 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",
|
# Our default user is "kimadb" but default database is "kima",
|
||||||
# so without -d this will spam logs with: FATAL: database "lidifydb" does not exist
|
# so without -d this will spam logs with: FATAL: database "kimadb" does not exist
|
||||||
test:
|
test:
|
||||||
[
|
[
|
||||||
"CMD-SHELL",
|
"CMD-SHELL",
|
||||||
"pg_isready -U ${POSTGRES_USER:-lidifydb} -d ${POSTGRES_DB:-lidify}",
|
"pg_isready -U ${POSTGRES_USER:-kimadb} -d ${POSTGRES_DB:-kima}",
|
||||||
]
|
]
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
@@ -128,7 +128,7 @@ services:
|
|||||||
|
|
||||||
redis:
|
redis:
|
||||||
image: redis:7-alpine
|
image: redis:7-alpine
|
||||||
container_name: lidify_redis
|
container_name: kima_redis
|
||||||
ports:
|
ports:
|
||||||
- "${REDIS_PORT:-6379}:6379"
|
- "${REDIS_PORT:-6379}:6379"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -145,7 +145,7 @@ services:
|
|||||||
# Lidarr - Music collection manager
|
# Lidarr - Music collection manager
|
||||||
lidarr:
|
lidarr:
|
||||||
image: lscr.io/linuxserver/lidarr:latest
|
image: lscr.io/linuxserver/lidarr:latest
|
||||||
container_name: lidify_lidarr
|
container_name: kima_lidarr
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
@@ -161,7 +161,7 @@ services:
|
|||||||
# Prowlarr - Indexer manager
|
# Prowlarr - Indexer manager
|
||||||
prowlarr:
|
prowlarr:
|
||||||
image: lscr.io/linuxserver/prowlarr:latest
|
image: lscr.io/linuxserver/prowlarr:latest
|
||||||
container_name: lidify_prowlarr
|
container_name: kima_prowlarr
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
@@ -175,7 +175,7 @@ services:
|
|||||||
# FlareSolverr - Cloudflare bypass for Prowlarr
|
# FlareSolverr - Cloudflare bypass for Prowlarr
|
||||||
flaresolverr:
|
flaresolverr:
|
||||||
image: ghcr.io/flaresolverr/flaresolverr:latest
|
image: ghcr.io/flaresolverr/flaresolverr:latest
|
||||||
container_name: lidify_flaresolverr
|
container_name: kima_flaresolverr
|
||||||
environment:
|
environment:
|
||||||
- LOG_LEVEL=${LOG_LEVEL:-info}
|
- LOG_LEVEL=${LOG_LEVEL:-info}
|
||||||
- LOG_HTML=${LOG_HTML:-false}
|
- LOG_HTML=${LOG_HTML:-false}
|
||||||
@@ -191,7 +191,7 @@ services:
|
|||||||
# qBittorrent - Torrent client
|
# qBittorrent - Torrent client
|
||||||
qbittorrent:
|
qbittorrent:
|
||||||
image: lscr.io/linuxserver/qbittorrent:latest
|
image: lscr.io/linuxserver/qbittorrent:latest
|
||||||
container_name: lidify_qbittorrent
|
container_name: kima_qbittorrent
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
@@ -210,7 +210,7 @@ services:
|
|||||||
# SABnzbd - Usenet client
|
# SABnzbd - Usenet client
|
||||||
sabnzbd:
|
sabnzbd:
|
||||||
image: lscr.io/linuxserver/sabnzbd:latest
|
image: lscr.io/linuxserver/sabnzbd:latest
|
||||||
container_name: lidify_sabnzbd
|
container_name: kima_sabnzbd
|
||||||
environment:
|
environment:
|
||||||
- PUID=${PUID:-1000}
|
- PUID=${PUID:-1000}
|
||||||
- PGID=${PGID:-1000}
|
- PGID=${PGID:-1000}
|
||||||
@@ -230,10 +230,10 @@ services:
|
|||||||
audio-analyzer:
|
audio-analyzer:
|
||||||
build:
|
build:
|
||||||
context: ./services/audio-analyzer
|
context: ./services/audio-analyzer
|
||||||
container_name: lidify_audio_analyzer
|
container_name: kima_audio_analyzer
|
||||||
environment:
|
environment:
|
||||||
REDIS_URL: redis://redis:6379
|
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
|
MUSIC_PATH: /music
|
||||||
BATCH_SIZE: ${AUDIO_ANALYSIS_BATCH_SIZE:-10}
|
BATCH_SIZE: ${AUDIO_ANALYSIS_BATCH_SIZE:-10}
|
||||||
SLEEP_INTERVAL: ${AUDIO_ANALYSIS_INTERVAL:-5}
|
SLEEP_INTERVAL: ${AUDIO_ANALYSIS_INTERVAL:-5}
|
||||||
@@ -285,17 +285,17 @@ services:
|
|||||||
audio-analyzer-clap:
|
audio-analyzer-clap:
|
||||||
build:
|
build:
|
||||||
context: ./services/audio-analyzer-clap
|
context: ./services/audio-analyzer-clap
|
||||||
container_name: lidify_audio_analyzer_clap
|
container_name: kima_audio_analyzer_clap
|
||||||
environment:
|
environment:
|
||||||
REDIS_URL: redis://redis:6379
|
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
|
BACKEND_URL: http://backend:3006
|
||||||
MUSIC_PATH: /music
|
MUSIC_PATH: /music
|
||||||
SLEEP_INTERVAL: ${CLAP_SLEEP_INTERVAL:-5}
|
SLEEP_INTERVAL: ${CLAP_SLEEP_INTERVAL:-5}
|
||||||
NUM_WORKERS: ${CLAP_WORKERS:-2}
|
NUM_WORKERS: ${CLAP_WORKERS:-2}
|
||||||
THREADS_PER_WORKER: ${CLAP_THREADS_PER_WORKER:-1}
|
THREADS_PER_WORKER: ${CLAP_THREADS_PER_WORKER:-1}
|
||||||
MODEL_IDLE_TIMEOUT: ${CLAP_MODEL_IDLE_TIMEOUT:-300}
|
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:
|
volumes:
|
||||||
- ${MUSIC_PATH:-./music}:/music:ro
|
- ${MUSIC_PATH:-./music}:/music:ro
|
||||||
depends_on:
|
depends_on:
|
||||||
@@ -324,7 +324,7 @@ services:
|
|||||||
# capabilities: [gpu]
|
# capabilities: [gpu]
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
# Lidify core
|
# Kima core
|
||||||
postgres_data:
|
postgres_data:
|
||||||
backend_cache:
|
backend_cache:
|
||||||
backend_logs:
|
backend_logs:
|
||||||
@@ -336,4 +336,4 @@ volumes:
|
|||||||
|
|
||||||
networks:
|
networks:
|
||||||
default:
|
default:
|
||||||
name: lidify_network
|
name: kima_network
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ if [ "$(id -u)" = "0" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "[START] Starting Lidify Frontend..."
|
echo "[START] Starting Kima Frontend..."
|
||||||
echo "[CONFIG] Environment: ${NODE_ENV:-production}"
|
echo "[CONFIG] Environment: ${NODE_ENV:-production}"
|
||||||
echo "[CONFIG] API URL: ${NEXT_PUBLIC_API_URL:-not set}"
|
echo "[CONFIG] API URL: ${NEXT_PUBLIC_API_URL:-not set}"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user