Skip to content

Kyoo #2401

Description

@MickLesk

Name of the Script

Kyoo

Script Type

CT (LXC Container)

Script path

No response

Where does it run?

Proxmox VE host

Does this script support arm64?

arm64 supported

📋 Script Details

Kyoo is a self-hosted media server for movies, series and anime, an alternative to Jellyfin or Plex. It identifies files without a required folder structure, pulls metadata from TheMovieDB and TheTVDB, transcodes on the fly with automatic quality switching and hardware acceleration, detects intros and credits, and renders ASS and PGS subtitles in the browser. This script builds its auth, API, scanner, transcoder and web app from source and runs them with PostgreSQL behind nginx.

Activity

  1. github-actions commented on Oct 9, 2026

    @github-actions
    Contributor

    The Kyoo script is ready for testing. Run it in the Proxmox VE shell (or on an Incus host) to create a container:

    bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/DevScripts/main/ct/kyoo.sh)"
    

    There is no default account. The first account registered at http://:8901 becomes the administrator, so create it right after the install. Later sign-ups have to be verified by the administrator before they can play anything.
    Visitors who are not logged in can browse the library but not play it (GUEST_CLAIMS in /opt/kyoo_data/.env). Set GUEST_CLAIMS= to require a login for everything, then run systemctl restart kyoo-auth.
    The library is read from /opt/kyoo_data/media. Bind-mount your media there from the host, e.g. pct set -mp0 /path/to/media,mp=/opt/kyoo_data/media, and make it readable for the container's root user. New files are picked up automatically; files on a network share that sends no change events show up after systemctl restart kyoo-scanner.
    PUBLIC_URL and JWT_ISSUER in /opt/kyoo_data/.env must stay identical. Change both when Kyoo is reached under another address (needed for OIDC logins), then run systemctl restart kyoo-auth kyoo-api kyoo-scanner.
    Hardware transcoding is configured from the GPU passed through at install time (GOCODER_HWACCEL=vaapi for Intel/AMD, nvidia for NVIDIA, disabled otherwise). Change it in /opt/kyoo_data/.env (qsv is also valid) and run systemctl restart kyoo-transcoder.
    Install and every update compile Kyoo from source (Go, Bun, Python and the Expo web app). The first build takes about 12 minutes on 4 cores and peaks at about 2.5 GB of RAM; updates take a few minutes because the build caches are kept.

    Note: This is not in the official repo yet—it's just a dev version! After merging into ProxmoxVE, it will need to be recreated.

    Discord testing thread: https://discord.com/channels/1302816934508630047/1558017214307762208

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions