A modern web client for Jellyfin based on Vue
Go to file
Fernando Fernández 1f803d4b5f
ci(renovate): improve lockfileMaintenance updates
* Reduce schedule: we're getting security alerts before the 2 months have reached.
Instead of relying solely in vulnerability alerts PRs,
is better if we can solve them proactively,
hence updating lockfiles in a timely manner.

* Enable dependency dashboard,
requiring approvals for lockfileMaintenance updates:
As seen in
https://github.com/sindresorhus/eslint-plugin-unicorn/issues/2204#issuecomment-1781437403
we also might need to have our transitive and peer dependencies updated as well.
Having the ability to trigger the lockfile maintenance manually
it's a great QoL improvement for our workflow

That issue is also related to #1985, where the issue was first discovered
2023-10-26 17:04:57 +00:00
.devcontainer chore(devcontainer): install missing tauri deps 2023-10-24 17:21:54 +02:00
.github ci(renovate): improve lockfileMaintenance updates 2023-10-26 17:04:57 +00:00
.vscode chore: fix most sonarcloud's code smells (#2072) 2023-08-16 21:14:06 +02:00
frontend chore(deps): update npm development dependencies (#2118) 2023-10-24 18:41:03 +02:00
packaging chore(deps): update npm development dependencies (#2118) 2023-10-24 18:41:03 +02:00
.gitattributes chore(git): add merge attributes for locale files 2020-11-17 19:11:40 +01:00
.gitignore chore: organize file structure 2023-10-24 10:03:12 +00:00
.npmrc chore: organize file structure 2023-10-24 10:03:12 +00:00
LICENSE feat: add initial Nuxt template 2020-09-02 20:48:53 +02:00
package-lock.json chore(deps): update npm development dependencies (#2118) 2023-10-24 18:41:03 +02:00
package.json chore(deps): upgrade to node 20 LTS 2023-10-24 10:03:21 +00:00
README.md docs: minor style fix 2023-10-24 10:03:22 +00:00

Jellyfin Vue

Part of the Jellyfin Project


Logo Banner Docker Pulls GHCR images GPL 3.0 License Current Release Conventional Commits Donate Feature Requests Chat on Matrix Join our Subreddit Code coverage Maintainability Rating Reliability Rating Vulnerabilities Code Smells Technical debt Quality gate Duplicated lines Bugs Security Total lines


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.

Read more
  • Local instances Examples: Our Windows/Mac/Linux application, a local web server, etc: All the necessary assets for the frontend to work are available locally (in your device) or bundled into the underlying environment (Tauri, Electron, etc) where it is running. No assets need to be fetched remotely.
  • Remote instances Examples: Our hosted instance, an admin hosting Jellyfin Vue and sharing the URL (which is in a different domain from the Jellyfin Server), etc: This probably comprises most cases. Here, all the frontend assets are not locally available, but somewhere else. When you access the remotely hosted frontend (normally using a web browser like Firefox or Microsoft Edge), all the frontend assets are loaded/cached into your device. Once the load has finished, the connection will exclusively be between your device and the Jellyfin server(s) ¹². Whoever is serving the frontend is never in the middle. ³

¹ 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.

Usage instructions for developers 🛠

See development setup from our Contributing guides.

Contributing 🤝

See Contributing guide.