A modern web client for Jellyfin based on Vue
Go to file
Fernando Fernández 9db65f6ae8 fix: failing github actions
Co-authored-by: aweebs <8809837+aweebs@users.noreply.github.com>

Due to a regression in npm 9.3.0 (upgraded by Node.JS 18 LTS at 18.14.0,
see https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V18.md#2023-02-02-version-18140-hydrogen-lts-bethgriggs-prepared-by-juanarbol),
the `npm get config` command stopped working in workspaces. This made
our actions using actions/setup-node to fail.

Issues were opened in the relevant repositories since january
and february (check https://github.com/npm/cli/issues/6099 and https://github.com/actions/setup-node/issues/712)
but it looks like getting this fixed upstream it's going to take a long time.
We have been waiting for a really long time
for other fixes in npm, so I don't expect this situation will be solved really soon

We need a working CI before the Vue 3 merge, so applying this commit will
solve the issue in the meantime. In the future, it might be interesting
to revert this commit.

Also format the GitHub Actions workflows using the official VSCode GitHub extension
2023-04-03 12:52:57 +02:00
.devcontainer ci: expand devcontainer configuration to support Docker 2023-04-03 12:52:57 +02:00
.docker ci: update Dockerfile to new config.json client configuration 2023-04-03 12:52:57 +02:00
.github fix: failing github actions 2023-04-03 12:52:57 +02:00
.vscode refactor: improve volar autocompletion 2023-04-03 12:52:57 +02:00
debian chore(debian-packaging): use npm ci instead of install 2023-01-15 22:17:09 +01:00
frontend fix: minor fixes 2023-04-03 12:52:57 +02:00
tauri fix(tauri): icon paths 2023-04-03 12:52:57 +02:00
.dockerignore ci(docker): build the client entirely in the Docker context 2021-12-24 16:34:26 +01:00
.editorconfig feat: replace circle loader with Jellyfin-Vue logo 2021-12-05 22:20:27 +01:00
.gitattributes chore(git): add merge attributes for locale files 2020-11-17 19:11:40 +01:00
.gitignore chore(debian-packaging): add configuration 2023-01-15 22:17:09 +01:00
.npmrc chore(node): add engine-strict config to .npmrc 2023-04-03 12:52:57 +02:00
Dockerfile ci: update Dockerfile to new config.json client configuration 2023-04-03 12:52:57 +02:00
LICENSE feat: add initial Nuxt template 2020-09-02 20:48:53 +02:00
package-lock.json refactor: reimplement SortableJS for queue 2023-04-03 12:52:57 +02:00
package.json chore(node): upgrade to Node 18 LTS 2023-04-03 12:52:57 +02:00
README.md chore: remove CONTRIBUTING.md 2023-04-03 12:52:57 +02:00

Jellyfin Vue

Part of the Jellyfin Project


Logo Banner

Docker Pulls GHCR images
GPL 3.0 License Current Release Commitizen friendly
Donate Feature Requests Chat on Matrix Join our Subreddit

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.

View demo

Build Process

Dependencies

  • Node.js LTS >=18.12.0 <19.0.0
  • npm >=8.19.2 (included in Node.js)
  • Jellyfin Server >=10.7.0

Getting Started

  1. Clone or download this repository.

    git clone https://github.com/jellyfin/jellyfin-vue.git
    cd jellyfin-vue
    
  2. Install the build dependencies in the project directory.

    npm install
    
  3. 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.

    Build for production

    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.

Other build features

Running a production build

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.

Running 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 Packages (recommended) or DockerHub for all the tagged images.

Contributing

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 our contributing guide