Skip to main content

Users & Permissions Overview

Codex includes a comprehensive user management system with role-based access control (RBAC), granular permissions, and content-level sharing restrictions.

Quick Start

Create Admin User

# Via CLI during setup
codex seed --config codex.yaml

Add Users

  1. Go to Settings > Users
  2. Click Add User
  3. Set username, email, password
  4. Select a role (Reader, Maintainer, or Admin)
  5. Save

Create API Key

  1. Go to Settings > Profile > API Keys
  2. Click Create API Key
  3. Name the key and select permissions
  4. Copy the key (shown only once!)

Core Concepts

Roles

Codex uses three hierarchical roles:

RoleDescriptionPermissions
ReaderBrowse and read content8 permissions
MaintainerManage content and libraries15 permissions
AdminFull system access20 permissions

Each higher role includes all permissions from lower roles. See Permissions & Roles for details.

Permission Types

CategoryPermissionsDescription
LibrariesRead, Write, DeleteAccess to library management
SeriesRead, Write, DeleteAccess to series metadata
BooksRead, Write, DeleteAccess to books and reading
PagesReadAccess to page images
UsersRead, Write, DeleteUser management (Admin)
API KeysRead, Write, DeleteAPI key management
TasksRead, WriteBackground task access
SystemHealth, AdminSystem-level access

Effective Permissions

A user's effective permissions combine their role with any custom permissions:

Effective = Role Permissions ∪ Custom Permissions

For API keys, permissions are further constrained:

API Key Effective = Effective ∩ Token Permissions

Sharing Tags

For content-level restrictions (e.g., family sharing), use Sharing Tags:

  • Allow grants - User only sees content with allowed tags (whitelist mode)
  • Deny grants - User sees everything except denied content
  • Deny always overrides allow

Authentication Methods

MethodUse CaseExample
JWT TokenWeb UI, API clientsAuthorization: Bearer <token>
API KeyAutomation, OPDSX-API-Key: codex_... or Authorization: Bearer codex_...
Basic AuthSimple clients, OPDScurl -u user:pass or curl -u api:<api-key>

In This Section