Favicon of Kyoo

Kyoo

Manage your personal media library with a portable platform that tracks watch history, organizes content by genre, and offers personalized recommendations.

Take full control of your entertainment experience with a comprehensive media server designed for portability and scale. Whether you are managing a massive collection of movies, tracking your progress on television series, or discovering new favorites, this platform keeps everything perfectly organized. Keep track of your watch history so you never lose your place in a season, and easily resume playback across different devices. Browse by intuitive categories like Family, Fantasy, and News to find exactly what you are in the mood for. Receive personalized recommendations based on your viewing habits, ensuring you always have something great to watch. Built to handle vast libraries, it offers a seamless way to host, categorize, and enjoy your digital media files without relying on third-party streaming services.

Directory Structure

kyoo
data
media
.env
docker-compose.yml

docker-compose.yml

services:
  kyoo:
    image: ghcr.io/zoriya/kyoo:latest
    container_name: kyoo
    restart: unless-stopped
    ports:
      - 80:80
    environment:
      - DB_HOST=postgres
      - DB_PORT=5432
      - DB_USER=kyoo
      - DB_PASSWORD=${DB_PASSWORD}
      - DB_NAME=kyoo
      - REDIS_HOST=redis
      - REDIS_PORT=6379
      - MEILISEARCH_HOST=http://meilisearch:7700
      - MEILISEARCH_API_KEY=${MEILI_MASTER_KEY}
      - JWT_SECRET=${JWT_SECRET}
    volumes:
      - ./data/config:/app/config
      - ./data/logs:/app/logs
      - ./media:/app/media
    depends_on:
      - postgres
      - redis
      - meilisearch

  postgres:
    image: postgres:15-alpine
    container_name: kyoo_postgres
    restart: unless-stopped
    environment:
      - POSTGRES_USER=kyoo
      - POSTGRES_PASSWORD=${DB_PASSWORD}
      - POSTGRES_DB=kyoo
    volumes:
      - ./data/db:/var/lib/postgresql/data

  redis:
    image: redis:alpine
    container_name: kyoo_redis
    restart: unless-stopped
    volumes:
      - ./data/redis:/data

  meilisearch:
    image: getmeili/meilisearch:v1.3
    container_name: kyoo_meilisearch
    restart: unless-stopped
    environment:
      - MEILI_MASTER_KEY=${MEILI_MASTER_KEY}
      - MEILI_NO_ANALYTICS=true
    volumes:
      - ./data/meili:/meili_data

.env

DB_PASSWORD=secure_database_password
MEILI_MASTER_KEY=secure_meili_master_key_min_16_bytes
JWT_SECRET=secure_random_jwt_secret_string
Categories:

Share:

Ad
Favicon

 

  
 

Similar to Kyoo

Favicon

 

  
  
Favicon

 

  
  
Favicon