Subscribe to our newsletter

For the latest in self-hosted news, software, and content delivered straight to your inbox every Friday

Success! Now Check Your Email

To complete Subscribe, click the confirmation link in your inbox. If it doesn’t arrive within 3 minutes, check your spam folder.

Ok, Thanks
App Spotlight: jfa-go, a user management tool for Jellyfin 4 min read
Blog

App Spotlight: jfa-go, a user management tool for Jellyfin

An open-source application built to streamline the management of Jellyfin invites and user accounts

By Ethan Sholly
App Spotlight: jfa-go, a user management tool for Jellyfin Post image

Introduction

Given the recent release and fanfare for the media server invite tool Wizarr, we've decided to feature a similar tool for Jellyfin users that centralizes the entire user management experience in this week's spotlight– introducing jfa-go. jfa-go comes packaged with invite features similar to Wizarr, but also contains a suite of user management features allowing administrators to centralize account settings/options and interact through e-mail, Telegram, Discord, or Matrix.

Preview of the applications 'Invite' functionality

Setup

jfa-go can be easily installed via Docker and provides a minimal docker-compose example to streamline the process. Here's what ours looks like:

  jfa-go:
    image: hrfee/jfa-go
    container_name: jfa-go
    restart: unless-stopped
    ports:
      - 8056:8056
    volumes:
      - ${APPDATA}/jfa-go:/data   #jfa-go config
      - ${APPDATA}/jellyfin:/jf   #jellyfin config

jfa-go's docker-compose.yml configuration

The initial setup contains several options for customizing the application, all of which highlight its various features. The configuration options are straightforward and accompanied by default/common values, which should make the experience less intimidating for new users.

  • Language: Select a language for the application
  • General: Listen address/port/HTTPs for proxies, enable/disable notification updates, theme settings
  • Login: Create a custom username and password to use for jfa-go administration, or connect the application to your Jellyfin admin account
  • Server: Connection settings for your Jellyfin/Emby server
  • Ombi: Optionally configure Ombi account creation automation
  • Messages: E-mail configuration for user communication
  • Password Validation: Create password requirements to be shown at the account creation page
  • Help Messages: Custom help messages for users

Fortunately, all of these settings are available to be changed later, as we hadn't quite designed our ideal workflow at the time of setup. Options to configure Telegram, Discord, and Matrix are also only accessible after setup.

User Experience

Once logged in, the jfa-go experience is streamlined and fairly intuitive to use. The default page upon login is the 'Invites' page, which allows administrators to create and monitor user invites for their installation:

Preview of jfa-go's 'Invites' functionality

One of the more useful features of the application is its ability to store configuration options as profiles (accessed via the Settings menu) that can be applied to a user account when the invite is created. Profiles immediately apply library access and display customization options upon account creation.

To enable profiles, simply configure an existing Jellyfin user with your desired defaults and select it in the 'Add Profile' screen to allow the new profile to inherit that user's settings:

'Profile' creation page

The 'Accounts' page displays a list of current and invited Jellyfin accounts, giving administrators the ability to manage account settings either individual or in bulk:

Screenshot of jfa-go's 'Accounts' management page

Modifying account settings allows administrators to perform a number of tasks:

  • Assign labels for easy account organization
  • Add/update e-mail addresses
  • Inherit settings from other user accounts or jfa-go profiles
  • Set expiration dates for account access
  • Disable accounts

And lastly, the 'Settings' page contains all of the configuration menus presented during installation, plus additional options to configure Telegram, Discord, and Matrix for user interactions via a chat bot:

Additional communication configuration options

Some Drawbacks

The biggest drawback to jfa-go – in our opinion – is its inability to modify Jellyfin's actual settings within the application itself. Configuring users relies on the ability to inherit settings from other users and that's about it. Any application-specific changes still need to be made within Jellyfin before they can be applied downstream in jfa-go.

The option to map our Jellyfin container's configuration volume to jfa-go was also unusual given we provided administrative access to our instance of Jellyfin to jfa-go in the web interface during setup. After digging through the software's documentation, we discovered jfa-go needs access to Jellyfin's directory for the password reset functionality (everything else relies on the Jellyfin administrator account and http(s) connection configured during setup). This wasn't an issue, but – unless we missed it – is probably something that should be made clearer in the installation documentation.

We also found the design of the application to be somewhat lacking. While there is beauty to be found in minimalism, the interface isn't as attractive as some of the other applications we've featured. This is, of course, a personal preference and doesn't have any real bearing on the usefulness of the software.

Final Thoughts

While jfa-go might have a few drawbacks, its functionality more than makes up for them. Administrators who've spent countless hours applying minor account or profile tweaks for all of their Jellyfin users will no doubt have something to gain from this type of software, and after our own experience with jfa-go, we're more than happy to advocate for it.

Thanks, and happy selfh.st/ing!

Comments