Skip to content

freqhole uses role-based access control to manage what users can do.

roles in order from most to least privileged: root, admin, member, viewer.

the system owner. created automatically on first setup.

  • all admin permissions, plus:
  • cannot be deleted or demoted

full control over the server.

  • all member permissions, plus:
  • create and manage users
  • generate invite codes
  • generate account-link codes
  • access maintenance operations
  • view federation/P2P status

standard user with editing rights.

  • all viewer permissions, plus:
  • generate account-link codes for their own account
  • edit song/album/artist metadata
  • edit video/series/season metadata
  • delete songs and albums
  • delete videos
  • create and edit playlists
  • trigger library scans
  • manage tags and genres

read-only access.

  • browse songs, albums, artists
  • browse videos, series, seasons
  • stream music + video
  • search the library
  • add favorites and ratings
  • view playback history

actionrootadminmemberviewer
browse library✓✓✓✓
stream music + video✓✓✓✓
search✓✓✓✓
add favorites / ratings✓✓✓✓
edit song/album metadata✓✓✓✗
edit video/series metadata✓✓✓✗
delete songs/albums✓✓✓✗
delete videos✓✓✓✗
trigger scan✓✓✓✗
manage tags/genres✓✓✓✗
create users / invite codes✓✓✗✗
generate account-link codes✓✓✓✓
approve knock requests✓✓✗✗
server maintenance✓✓✗✗

the first user created on a new server is automatically root.

invite codes specify the role of the new user:

Terminal window
freqhole auth create-invite --role viewer
freqhole auth create-invite --role member
freqhole auth create-invite --role admin

default is viewer if not specified.

admins can change user roles:

  • web app: settings → users
  • CLI: freqhole auth update-user <id> --role member

  • favorites
  • ratings
  • playback history
  • listen sessions
  • songs, albums, artists
  • videos, series, seasons
  • album artwork + video posters
  • metadata edits
  • public playlists