Lab Assignment #6: Jellyfin - Local Install

Demonstration due March 14th - March 18th

Rob Brandon

Prerequisites

  • CST8207 GNU/Linux System Support
  • Read chapters six through fourteen in the class reading
  • First five lab assignments are complete

Deliverables

  • You have more than a month to do this assignment.
  • You are expected to have your virtual machine ready for inspection at the time indicated by your lab professor. Your lab professor will let you know what time you will demonstrate your work. If you are not sure what time you are demonstrating, then make sure to be present when your scheduled lab class begins.
  • If your virtual machine is not ready when your instructor calls on you, you will receive a grade of ZERO for this assignment!
  • Please be accurate and punctual.
  • Be prepared to use Zoom to demonstrate the Linux virtual machine that you will create for this assignment to your lab professor. Your lab professor may ask you to run certain commands, or run them himself. Your mark on the lab will be assigned by your lab professor.

Evaluation

  • Demonstrate your work to your lab professor.

Do not print this assignment on paper!

  • On paper, you will miss updates, corrections, and hints added to the online version.
  • On paper, you cannot follow any of the hyperlink URLs that lead you to hints and course notes relevant to answering a question.

Jellyfin Project

Why Jellyfin

Jellyfin is a volunteer-built media solution which allows you to stream media from your own server to different clients, for example a web browser, a mobile phone, or a television. It enables you to manage your media, including movies, television shows, and music. It includes no tracking or central servers and does not cost any money.

Configuring Jellyfin is a fun and challenging project which can have practical application both at home and at work. You will create a virtual machine that runs Jellyfin.

Project

In this project you can choose various options and decide where you want to start, and then choose additional work to bump up your marks.

First you must select and install a Linux distribution like Red Hat or Fedora. Then you must install and configure the Jellyfin software. Information, documentation, and installation guides for Jellyfin are available at jellyfin.org. You must also install any application dependencies, such as ffmpeg.

You will also need to select and configure clients, selecting the operating system and platform for each one. These can be existing devices, computers, or virtual machines. You must configure at least two clients for Jellyfin. Examples of clients could include your Windows host, another virtual machine, a mobile phone, or a television.

You must have a library of at least ten movies in Jellyfin. One source of free MPEG video files is the Internet Archive at archive.org.

For the demonstration, you must be able to access the files from clients as described below.

User Guide

You must also write a user guide to go along with your virtual machine. It should include the following:

  • title page
  • table of contents
  • introduction
  • Jellyfin service explanation & implementation
  • description of ffmpeg installation method
  • maintenance
  • recap
  • final thoughts
  • client devices
    • how to use Jellyfin on client device #1
    • how to use Jellyfin on client device #2
  • conclusion
  • appendix (if any)
  • references

Virtual Machine Specifications

Create a new virtual machine using one of the following distributions. Read the rubric and grading scheme below before choosing a Linux distribution!

  • Any variant of Ubuntu or Debian
  • Red Hat Enterprise Linux
  • CentOS
  • Arch Linux
  • Fedora Linux
  • openSUSE Tumbleweed

Your virtual machine must also meet the following specifications:

  1. Is a virtual machine in VMware Workstation (or alternative)
  2. Has one processor with one core.
  3. Has two gigabibytes of RAM.

It is acceptable to install Linux onto a physical computer such as an old laptop or other device, provided that it meets the minimum specifications described above. Hardware devices are permitted to exceed these specifications, but virtual machines may not.

You should configure the operating system with twice as much swap space as the amount of RAM installed. For virtual machines, this is four gigabytes of swap space.

Accounts and Passwords

Create a user account. The name of your user account is the same as your College username.

Use strong passwords. Don’t forget your password. Using password management software such as LastPass or KeePass is recommended.

Once you have set up Linux, try rebooting the virtual machine.

After your virtual machine boots successfully, you should log in, and shut down the virtual machine using the shutdown command. You may want to boot it again, and then shut it down again, just to make certain it can start and stop successfully.

Once you have shut down the VM, take a snapshot in VMware, and give your snapshot the name clean. Note that I said snapshot, not screenshot.

In the future, you can take snapshots while the virtual machine is running, or while it is shut down. Snapshots taken while the VM is shut down will take much less time, and be much smaller.


Assessment

You will be assigned a letter grade for this lab assignment based on the grid below. Note that your letter grade is dependent on the Linux distribution that you install, and how you install the software utility ffmpeg.

Debian, Ubuntu RHEL 8 Fedora Linux, openSUSE Tumbleweed Arch Linux
ffmpeg from official repositories F not available D C
third party repository not recommended not recommended D not recommended
static ffmpeg binary downloaded from web site F D C B
ffmpeg compiled from source D C B A

You can increase your grade by a full letter grade (for example, a B to an A) by implementing at least two of the following.

You can increase your grade by two full letter grades (for example, a C to an A) by implementing at least four of the following.

  1. A working music library with at least ten songs.
  2. Working Internet radio
  3. An additional working client from the list at https://jellyfin.org/clients/ (up to a maximum of three additional clients, for a total of five).

In addition, students who submit an acceptable User Guide will increase their grade by a full letter grade.

Students who implement a custom visual style or theme using CSS will receive a positive modifier on their grade; for example, a grade of B would become B+.

Students who do not implement at least two clients will receive a negative modifier on their grade; for example, a grade of B would become a B-.

Demonstrating Your Work

Show your lab professor the Linux virtual machine that you will create for this assignment. Your lab professor may ask you to run certain commands, or run them himself. You must also demonstrate at least one client for Jellyfin (and preferably two). It is acceptable to use a webcam to demonstrate a client where screensharing is impossible. Your mark on this lab will be assigned by your lab professor according to the grid and grading scheme above.

Troubleshooting

If you have problems doing the lab, some of these steps might help you.

RHEL Troubleshooting

You can debug problems in emergency mode by using the journalctl command to view log and error messages. Error messages will be highlighted in red. Use the same keys you would use with less to navigate the output of journalctl. Press q to quit journalctl. Note that some error messages appear even during a normal boot. Use your judgement to determine which error messages are relevant to the failure of the system to boot.

VMware Troubleshooting

The most common problem with VMware Workstation since 2008 is when you receive the following error:

This virtual machine appears to be in use.

If this virtual machine is not in use, press the “Take Ownership” button to obtain ownership of it. Otherwise, press the “Cancel” button to avoid damaging it.

Ideally, you should click the “Take Ownership” button and then everything will work normally for you. If that doesn’t work, you can use the following procedure:

  1. Close VMware Workstation
  2. Delete any .lck or .lock files and/or folder you see in the directory containing the problematic virtual machine.
  3. Run VMware Workstation
  4. Start the virtual machine.

Note that you cannot increase the amount of RAM in a virtual machine beyond 3 GiB while it is running.


The following suggestions for VMware troubleshooting involve making changes to your host computer or the configuration of your virtual machine.

  1. Ensure that the following settings are turned on in your BIOS or UEFI firmware (you may not have all these settings, and some are different names for the same thing):
    • Intel Virtualization Technology
    • Intel VT-x
    • Virtualization Extensions
    • Vanderpool
  1. Try increasing the number of processor cores allocated to the virtual machine to two. If you have a quad-core Intel CPU, you might be able to allocate as many as four cores.
  2. Try uninstalling and reinstalling VMware.
  3. Try an older version of VMware.
  4. Don’t use VMware. Try VirtualBox instead. There are some instructions for installing RHEL in VirtualBox.

Changelog

  • Version 1.0
    • posted 10:00pm February 2, 2022
  • Version 1.1
    • posted 11:00am February 25, 2022
    • it’s possible to get ffmpeg via the official Fedora repositories, so I corrected the rubric
    • additional clarifications from Dan
  • Version 1.11
    • posted 10:00pm March 9, 2022
    • Deadline extended by a week.
  • Version 1.2
    • posted 9:00am March 11, 2022
    • REMOVED: "You must demonstrate that your scheduled backups are working."

  • Version: 1.2