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.
## Requirements
This project requires [Node 14](https://nodejs.org/en/) and uses **npm** as a package manager.
You also need the following Jellyfin server version:
```
Jellyfin >=10.7.0
```
## Contributing
We provide a [devcontainer](https://code.visualstudio.com/docs/remote/containers) to help you setup your environment.
The project also contains recommended extensions for [Visual Studio Code](https://code.visualstudio.com/), which will help you with syntax style and development.
Finally, we provide useful pre-commit hooks via [Husky](https://typicode.github.io/husky/#/), as well as [Comitizen](https://github.com/commitizen/cz-cli) integration, in order to help you respect the style and naming conventions used throughout this project.
For more information about how to contribute to this project, see [CONTRIBUTING.md](https://github.com/jellyfin/jellyfin-vue/blob/master/CONTRIBUTING.md)
## Build Process
```bash
# install dependencies
$ npm install
# server with hot reload at localhost:3000
$ npm run dev
# serve with hot reload in static mode at localhost:3000
$ npm run dev:static
# build for production
$ npm run build
# launch server
$ npm run start
# build for production and launch server
$ npm run prod
# build for production in static mode
# you will need a web server to host the client
$ npm run build:static
# build for production in static mode and run server
$ npm run prod:static
```
## Running standalone
When using the SSR version of the client, you can run the client in standalone mode in order to save space.
```bash
# install dependencies
$ npm install
# build for production in standalone mode, with server-side rendering
$ npm run build:standalone
# move the server and required files to a dedicated directory
$ mkdir -p /opt/jellyfin-vue
$ cp -r .nuxt .docker/nuxt.config.js .docker/package.json /opt/jellyfin-vue
# install the required dependency and start the client
$ cd /opt/jellyfin-vue
$ npm install
$ npm run start
```