* refactor: segregated ldap and fwd auth settings into imports and added variable validations * added: LDAP users listed in configuration variables are promoted to staff or superuser
Django Setup
Apps
The backend is split up into the following apps.
config
Root Django App. Doesn't define any views.
- Has main
settings.py - Has main
urls.pyresponsible for routing to other apps
common
Functionality shared between apps.
Defines views on the root /api/* path. Has base views to inherit from.
- Connections to ES and Redis
- Searching
- URL parser
- Collection of helper functions
appsettings
Responsible for functionality from the settings pages.
Defines views at /api/appsettings/*.
- Index setup
- Reindexing
- Snapshots
- Filesystem Scan
- Manual import
channel
Responsible for Channel Indexing functionality.
Defines views at /api/channel/* path.
download
Implements download functionality with yt-dlp.
Defines views at /api/download/*.
- Download videos
- Queue management
- Thumbnails
- Subscriptions
playlist
Implements playlist functionality.
Defines views at /api/playlist/*.
- Index Playlists
- Manual Playlists
stats
Builds aggregations views for the statistics dashboard.
Defines views at /api/stats/*.
task
Defines tasks for Celery.
Defines views at /api/task/*.
- Has main
tasks.pywith all shared_task definitions - Has
CustomPeriodicTaskmodel - Implements apprise notifications links
- Implements schedule functionality
user
Implements user and auth functionality.
Defines views at /api/config/*.
- Defines custom
Accountmodel
video
Index functionality for videos.
Defines views at /api/video/*.
- Index videos
- Index comments
- Index/download subtitles
- Media stream parsing