Skip to content

Latest commit

 

History

2,148 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

K7

License: AGPL-3.0 .NET 10

K7 is a self-hosted media server for a small circle of family and friends.

The name comes from the French pronunciation /ka.sɛt/ (cassette). The idea is to bring back that feeling of a shelf at home: audio tapes, VHS, everything yours and local.

K7 on TV, desktop, and mobile More screenshots: screenshots/README.md.

Demo

Access the live demo here. Only guest login is available, so features that require a full account are not accessible.

Quick start (Docker)

cp .env.example .env   # set POSTGRES_PASSWORD
docker compose up -d   # pulls ghcr.io/kaybi-gh/k7:latest

Open http://localhost:7080 and complete first-run setup. Install details: docs/admin/install.md.

Features

Core

  • Open source (AGPL-3.0) - your server, your rules, no vendor lock-in
  • Simple to deploy - no complex stack required
  • Movies, TV series, and music - one shelf for everything you already own locally (more types may come)
  • Local auth + optional 2FA + optional OIDC - works offline at home, plug in your identity provider when you need SSO
  • Guest mode - optional limited access without a personal account (admin-controlled)
  • Transcoding (ffmpeg, HLS) - play anywhere, even when the client or network cannot handle the original file
  • Federation - link two K7 instances (yours and a friend's) to share and stream remote media and metadata without duplicating files

Clients

  • Web, Android (phone + TV), Windows, iOS, Mac - same UI everywhere (Blazor WASM or MAUI + Blazor)
  • Fully keyboard-navigable - spatial navigation across the whole app
  • Remote control - drive playback on one device (TV, phone, browser) from another logged-in client on the same server
  • Chromecast (Web and Android only) - cast video and music to any supported device
  • OpenSubsonic - connect apps like Symfonium or Feishin with an app password (Settings -> External clients)
  • iOS and Mac builds exist but are not tested by the maintainer (no Apple hardware)

Personalization

  • Server-wide defaults - the admin can set default values for almost all customization (home layout, video player, playback, track selection, and more); each user can override them in their own settings
  • Custom home page - pin what matters to you instead of a one-size-fits-all dashboard
  • Global media filters - hide content you never want to see, across the whole app
  • Playback preferences - quality, subtitles, intro skip, seekbar thumbnails, and more, so each viewing session feels right
  • Library and profile restrictions - fine-tune who can access what beyond simple sharing rules
  • Editable metadata with field locks - fix or override titles, descriptions and more, lock individual fields so metadata refreshes do not overwrite your changes

Your space

  • Playlists, collections, history, stats, reviews - one place for "your" corner of the shelf, not buried in admin screens
  • Dynamic playlists - rule-based lists (genre, year, play count, artist, and more) that re-evaluate as your library grows, like a mixtape that updates itself
  • Offline downloads - take media on native clients and sync progress when you are back online

Music discovery (AudioMuse AI)

  • Optional integration with self-hosted AudioMuse AI - mood radios, similar tracks, sonic paths, and playlists built from a text prompt, plus natural-language search in the library
  • Keeps AI-assisted discovery on infrastructure you control; disabled by default until you connect your AudioMuse server

Social

  • Sync Play - watch or listen together remotely, as if you were on the same couch
  • Shared profiles - follow a series as a couple (or any group) with merged stats and history on each account
  • Visibility controls - separate what you share and what you accept to see, per content type (playback history, reviews, collections, playlists, dynamic playlists) from and to whoever you want: nobody, your local server, federated servers, specific people

Administration

  • Dashboard, diagnostics, background tasks - see what the server is doing without SSH
  • Outgoing notifications - customizable webhook rules (event filters, payload templates) to plug K7 into your own tools
  • Import tool - migrate from Plex, Jellyfin, Spotify, and more (tools/K7.Import)

Documentation

All guides (users, admins, developers): docs/README.md.

Community

This project was built for my own specific needs. While I think it could benefit some people, making it free and open source does not mean I will work on every feature request.

Contributions are welcome:

  • Issues - bugs (not security reports; see SECURITY.md)
  • Discussions - ideas, feature requests, and questions
  • Pull requests - opening a PR does not guarantee a merge

Please read CONTRIBUTING.md for guidelines and to start contributing.

Code of conduct

Be respectful and constructive. Harassment and bad-faith behavior are not tolerated. Maintainers may close or remove contributions that violate this.

Support

While a simple thank you is more than enough, I do accept donations. If K7 is useful to you and you feel like chipping in, the Sponsor button on this repository is the simplest way to do that.

K7 also relies on many other open source projects and communities listed below, many of them welcome donations too.

Special thanks

K7 would not exist without the work of many projects and communities, including:

See the in-app About page for a fuller list of credits.

License

K7 is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). If you modify K7 and provide it over a network, you must share your changes under the same license.

About

Self-hosted media server for a small circle of family and friends.

Topics

Resources

Contributing

Security policy

Stars

167 stars

Watchers

1 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages