Home

Awesome

<h1 align="center">Jellyfin Vue</h1> <h3 align="center">Part of the <a href="https://jellyfin.org">Jellyfin Project</a></h3>
<p align="center"> <img alt="Logo Banner" src="https://raw.githubusercontent.com/jellyfin/jellyfin-ux/master/branding/SVG/banner-logo-solid.svg?sanitize=true"/> <a href="https://hub.docker.com/r/jellyfin/jellyfin-vue"> <img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/jellyfin/jellyfin-vue"> </a> <a href="https://github.com/jellyfin/jellyfin-vue/pkgs/container/jellyfin-vue"> <img alt="GHCR images" src="https://img.shields.io/badge/Github-packages-blue"> </a> <a href="https://github.com/jellyfin/jellyfin-vue"> <img alt="GPL 3.0 License" src="https://img.shields.io/github/license/jellyfin/jellyfin-vue.svg"/> </a> <a href="https://translate.jellyfin.org/projects/jellyfin-vue/jellyfin-vue/"> <img src="https://translate.jellyfin.org/widgets/jellyfin-vue/-/jellyfin-vue/svg-badge.svg"> </a> <a href="https://github.com/jellyfin/jellyfin-vue/releases"> <img alt="Current Release" src="https://img.shields.io/github/release/jellyfin/jellyfin-vue.svg"/> </a> <a href="https://conventionalcommits.org"> <img alt="Conventional Commits" src="https://img.shields.io/badge/Conventional%20Commits-%23FE5196?logo=conventionalcommits&logoColor=white" /> </a> <a href="https://opencollective.com/jellyfin"> <img alt="Donate" src="https://img.shields.io/opencollective/all/jellyfin.svg?label=backers"/> </a> <a href="https://features.jellyfin.org"> <img alt="Feature Requests" src="https://img.shields.io/badge/fider-vote%20on%20features-success.svg"/> </a> <a href="https://matrix.to/#/#jellyfin-vue:matrix.org"> <img alt="Chat on Matrix" src="https://img.shields.io/matrix/jellyfin:matrix.org.svg?logo=matrix"/> </a> <a href="https://www.reddit.com/r/jellyfin"> <img alt="Join our Subreddit" src="https://img.shields.io/badge/reddit-r%2Fjellyfin-%23FF5700.svg"/> </a> <a href="https://sonarcloud.io/summary/new_code?id=jellyfin_jellyfin-vue"> <img alt="Code coverage"src="https://sonarcloud.io/api/project_badges/measure?project=jellyfin_jellyfin-vue&metric=coverage"/> </a> <a href="https://sonarcloud.io/summary/new_code?id=jellyfin_jellyfin-vue"> <img alt="Maintainability Rating"src="https://sonarcloud.io/api/project_badges/measure?project=jellyfin_jellyfin-vue&metric=sqale_rating"/> </a> <a href="https://sonarcloud.io/summary/new_code?id=jellyfin_jellyfin-vue"> <img alt="Reliability Rating"src="https://sonarcloud.io/api/project_badges/measure?project=jellyfin_jellyfin-vue&metric=reliability_rating"/> </a> <a href="https://sonarcloud.io/summary/new_code?id=jellyfin_jellyfin-vue"> <img alt="Vulnerabilities"src="https://sonarcloud.io/api/project_badges/measure?project=jellyfin_jellyfin-vue&metric=vulnerabilities"/> </a> <a href="https://sonarcloud.io/summary/new_code?id=jellyfin_jellyfin-vue"> <img alt="Code Smells"src="https://sonarcloud.io/api/project_badges/measure?project=jellyfin_jellyfin-vue&metric=code_smells"/> </a> <a href="https://sonarcloud.io/summary/new_code?id=jellyfin_jellyfin-vue"> <img alt="Technical debt"src="https://sonarcloud.io/api/project_badges/measure?project=jellyfin_jellyfin-vue&metric=sqale_index"/> </a> <a href="https://sonarcloud.io/summary/new_code?id=jellyfin_jellyfin-vue"> <img alt="Quality gate"src="https://sonarcloud.io/api/project_badges/measure?project=jellyfin_jellyfin-vue&metric=alert_status"/> </a> <a href="https://sonarcloud.io/summary/new_code?id=jellyfin_jellyfin-vue"> <img alt="Duplicated lines"src="https://sonarcloud.io/api/project_badges/measure?project=jellyfin_jellyfin-vue&metric=duplicated_lines_density"/> </a> <a href="https://sonarcloud.io/summary/new_code?id=jellyfin_jellyfin-vue"> <img alt="Bugs"src="https://sonarcloud.io/api/project_badges/measure?project=jellyfin_jellyfin-vue&metric=bugs"/> </a> <a href="https://sonarcloud.io/summary/new_code?id=jellyfin_jellyfin-vue"> <img alt="Security"src="https://sonarcloud.io/api/project_badges/measure?project=jellyfin_jellyfin-vue&metric=security_rating"/> </a> <a href="https://sonarcloud.io/summary/new_code?id=jellyfin_jellyfin-vue"> <img alt="Total lines"src="https://sonarcloud.io/api/project_badges/measure?project=jellyfin_jellyfin-vue&metric=ncloc"/> </a> </p>

This is an alternative client for Jellyfin based on Vue.js. It might not be feature complete and it's constantly evolving.

Usage instructions for end users ๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ

Hosted instance ๐ŸŒ

Our hosted instance points to a version built from the current master branch. Hosted by CloudFlare Pages.

โš ๏ธ This only works for Jellyfin servers that are behind a reverse proxy and has HTTPS correctly set up. If your server runs over HTTP, you must use another deployment type.

Docker Container ๐Ÿ“ฆ

You can run the Docker container with the following command, replacing 8080 with the port of your choice:

docker run -d -p 8080:80 ghcr.io/jellyfin/jellyfin-vue

You can check GitHub Packages (GHCR) (recommended) or DockerHub for all the tagged images.

Other means ๐Ÿ’ฝ

There are more ways to host Jellyfin Vue yourself. Check our wiki page for the most up to date information.

Privacy disclaimer ๐Ÿ•ต๐Ÿป

Jellyfin Vue is just a GUI (Graphical User Interface) for a Jellyfin server. It only establishes connection to the Jellyfin server that you point it to, nothing else.

<details> <summary><strong>Read more</strong></summary>

ยน Assuming that the hosted version has not been altered (by adding trackers, beacons...) in any way from the sources provided in this repository and you trust the person/people behind it to not have done so.

ยฒ Some features that need access to remote resources that are not controlled by you and/or the person hosting Jellyfin Vue might be added in the future (such as Google Cast support for Chromecasts). These will be always opt in and toggleable through our configuration

ยณ We assume standard networks here, no special configurations or policies that your ISP/Workplace/University/etc might apply.

Jellyfin Web (our main frontend) works in a similar way: It connects by default to the Jellyfin server that is running alongside, but it's also capable to connect to other Jellyfin servers like can be tested in our demo and the hosted instance. By inspecting the network requests, you will find that only connections to fetch its own assets are made to the server distributing the client, but connections to your own Jellyfin server will not go through it.

The same principel applies to Jellyfin Vue. Note that Jellyfin Web can also be hosted standalone, just like Jellyfin Vue.

</details>

Usage instructions for developers ๐Ÿ› 

See development setup from our Contributing guides.

Contributing ๐Ÿค

See Contributing guide.