selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

K7 logo

Self-host K7

v1.17.1

Personal media server for movies, shows, and music

ReleaseOpen SourceAGPL-3.0
Updated14 hours ago
LanguageC#
Setup difficultyModerate
MobileNative app
ThemeDark mode
Stars
344
Port
7080 (HTTP web interface and API)
Requires
Ffmpeg, PostgreSQL
Docker
ghcr.io/kaybi-gh/k7
Install with Docker Compose
K7 on TV, desktop, and mobile device showcase

What is K7?

This media server organizes personal libraries of movies, TV series, and music, fetching metadata automatically from MusicBrainz, TMDb, and TheTVDB. It transcodes via ffmpeg and HLS so content plays on any device, and can federate with other instances to share libraries without copying files. Authentication supports local accounts with two-factor authentication, OIDC single sign-on, and optional guest access. Native clients exist for web, Android phones and TV, Windows, iOS, macOS, and Linux (GTK4), all sharing a unified Blazor and MAUI interface. Features include cross-device remote control, Chromecast casting, OpenSubsonic API for third-party players, dynamic rule-based playlists, offline downloads with sync, and optional AI-powered music discovery through a self-hosted AudioMuse instance. Administration provides a dashboard, diagnostics, webhook notifications, and import tools for Plex, Jellyfin, and Spotify. Deployment uses Docker Compose or a Helm chart on Kubernetes with PostgreSQL.

Should you self-host K7?

K7 scores 51/100 on selfhost.directory (how scoring works) and ranks #59 of 118 in Media Server. It has 344 GitHub stars.

It shipped 10 stable releases in the past year. The latest, v1.17.1, came out on 25 October 2026. New versions land roughly every 4 days.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is AGPL-3.0-licensed and written mostly in C#.

Its closest alternative on selfhost.directory is Jellyfin (88/100, 58 744 stars). It scores higher overall, so compare the two before you pick. See K7 vs Jellyfin side by side.

Features

  • AudioMuse AI integrationDisabled by default until you connect your AudioMuse server
  • Chromecast Support
  • Dynamic playlists
  • Federation
  • Guest Mode
  • Import tool
  • Local authentication with optional 2FA
  • Movies, TV series, and music libraries
  • Multi-platform native clientsiOS and Mac builds exist but are not tested by the maintainer
  • Offline Downloads
  • OIDC/SSO integration
  • OpenSubsonic compatibility
  • Remote Control
  • Sync Play
  • Transcoding (ffmpeg, HLS)

K7 README

How to install K7

Install K7 with Docker Compose

Environment variables
POSTGRES_PASSWORD, SECURITY__APIKEYS__HASHSECRET, PUID, PGID, SECURITY__FORCEHTTPS, BaseUrl, and many more

cp .env.example .env

Edit .env and set POSTGRES_PASSWORD and SECURITY__APIKEYS__HASHSECRET

docker compose up -d

Primary supported installation method. Pulls ghcr.io/kaybi-gh/k7:latest. Open http://localhost:7080 for first-run setup.

How to configure K7

  • Authentication__Local__RegistrationEnabledfalseAllow self-service sign-up

    Allow self-service sign-up

    values: true, false

  • Authentication__Local__SignInEnabledtrueAllow username/password sign-in

    Allow username/password sign-in

    values: true, false

  • Authentication__Oidc__AuthorityOIDC issuer URL

    OIDC issuer URL

  • Authentication__Oidc__ClientIdOIDC client ID

    OIDC client ID

  • Authentication__Oidc__ClientSecretOIDC client secret

    OIDC client secret

  • Authentication__Oidc__EnabledfalseEnable OIDC/SSO authentication

    Enable OIDC/SSO authentication

    values: true, false

  • BaseUrlhttps://localhost:7443Public URL of this instance, required for OIDC redirects and federation

    Public URL of this instance, required for OIDC redirects and federation

  • Database__ProviderPostgresDatabase provider (Postgres or Sqlite)

    Database provider (Postgres or Sqlite)

    values: Postgres, Sqlite

  • K7_ADMIN_PASSWORDPassword for unattended admin bootstrap

    Password for unattended admin bootstrap

  • K7_ADMIN_USERNAMEUsername for unattended admin bootstrap

    Username for unattended admin bootstrap

  • K7_SETUP_TOKENSetup token for password wizard (auto-generated if not set)

    Setup token for password wizard (auto-generated if not set)

  • Paths__ConfigconfigPath for DataProtection keys and OpenIddict certificates

    Path for DataProtection keys and OpenIddict certificates

  • Paths__FFMpegBinaryFolderDirectory containing ffmpeg/ffprobe binaries

    Directory containing ffmpeg/ffprobe binaries

  • Paths__LogslogsPath for Serilog file sink

    Path for Serilog file sink

  • Paths__MetadatasmetadatasPath for artwork and processed metadata files

    Path for artwork and processed metadata files

  • Paths__TranscodingtranscodingPath for HLS/transcode working files

    Path for HLS/transcode working files

  • PGID911Container GID for file permissions

    Container GID for file permissions

  • POSTGRES_DBK7PostgreSQL database name

    PostgreSQL database name

  • POSTGRES_PASSWORDPostgreSQL password for the database

    PostgreSQL password for the database

  • POSTGRES_PORT5432PostgreSQL port

    PostgreSQL port

  • POSTGRES_USERpostgresPostgreSQL username

    PostgreSQL username

  • PUID911Container UID for file permissions

    Container UID for file permissions

  • SECURITY__APIKEYS__HASHSECRETHMAC secret mixed into API key hashes (required at startup)

    HMAC secret mixed into API key hashes (required at startup)

  • Security__ForceHttpstruePrefer secure cookies and OpenIddict transport security

    Prefer secure cookies and OpenIddict transport security

    values: true, false

  • SECURITY__FORCEHTTPSfalseEnable secure cookies and HTTPS enforcement

    Enable secure cookies and HTTPS enforcement

    values: true, false

  • Security__TrustPrivateProxiestrueTrust RFC1918 private networks for X-Forwarded-Proto

    Trust RFC1918 private networks for X-Forwarded-Proto

    values: true, false

K7 releases & version history

More in Media Streaming

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…