Part of the Jellyfin Project
This is an experimental web client for Jellyfin based on Vue.js. We welcome all contributions and pull requests! If you have a larger feature in mind please open an issue so we can discuss the implementation before you start.
- Node.js LTS
>=16.13.1 <17.0.0
- npm
>=8.1.2
(included in Node.js) - Jellyfin Server
>=10.7.0
-
Clone or download this repository.
git clone https://github.com/jellyfin/jellyfin-vue.git cd jellyfin-vue
-
Install the build dependencies in the project directory.
npm install
-
Run the web client with Nuxt as a server for local development.
npm start # Run with the following env variable if you get an error such as this: # Error: error:0308010C:digital envelope routines::unsupported # It's _probably_ due to a conflict between recent OpenSSL versions and Node 16-17 NODE_OPTIONS=--openssl-legacy-provider npm start
The client will be available at http://127.0.0.1:3000 by default.
When you're ready to deploy the client, you must build the client specifically production:
npm run build
Build output will be available under the
src/dist
folder.
Instead of a development version, you can run a server with a production-ready build of the client directly with Nuxt, so you can verify in advance how the client will work in a production environment:
npm run prod
Although the build of the client is production-ready, Nuxt's own HTTP server should never be exposed directly to the internet and a proper hosting tool like Nginx should always be used instead.
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 Packages (recommended) or DockerHub for all the tagged images.
We provide a devcontainer to help you setup your environment.
The project also contains recommended extensions for Visual Studio Code, which will help you with syntax style and development.
Finally, we try to follow the ConventionalCommits Guidelines when writing commit messages.
For more information about how to contribute to this project, see CONTRIBUTING.md