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
  • delete songs and albums
  • create and edit playlists
  • trigger library scans
  • manage tags and genres

read-only access.

  • browse songs, albums, artists
  • stream music
  • search the library
  • add favorites and ratings
  • view playback history

actionrootadminmemberviewer
browse library
stream music
search
add favorites / ratings
edit song/album metadata
delete songs/albums
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
  • album artwork
  • metadata edits
  • public playlists