How spasmilenkov/project-alexandria works
Alexandria is a self-hosted file-management and media-serving application. Users manage directories and files through the API, upload content, and retrieve versions, previews, or shared files; preview generation runs asynchronously. The repository also exposes tagging, streaming/playlists, account and appearance settings, and administrative monitoring. The preview dispatch, worker, storage, and statistics connections are supported by sampled source; other feature groupings reflect the file tree and README, so their internal call wiring is not expanded.
Main entry points: PreviewGenerationHandler.cs Preview job handler · Storage Files and directories API · PreviewService.cs Preview dispatch · PreviewStatsService.cs Preview statistics
Components 22
Accounts and access
- Authentication API
Backend/Alexandria.Api/Features/Auth - User management
Backend/Alexandria.Api/Features/Users - Access policies
Backend/Alexandria.Api/Features/Policies
File management
- Files and directories API
Backend/Alexandria.Api/Features/Storage - Tagging API
Backend/Alexandria.Api/Features/Tags - Share links API
Backend/Alexandria.Api/Features/Storage/SignedUrls - S3 object storage
Preview pipeline
- Preview API
Backend/Alexandria.Api/Features/Storage/Files/Preview - Preview dispatch
Backend/Alexandria.Services.Preview/PreviewService.cs - Message broker
- Preview job handler
Backend/Alexandria.Workers.Document/Handlers/PreviewGenerationHandler.cs - Document previews
Backend/Alexandria.Services.Preview/Documents/PdfPreviewService.cs - Media previews
Backend/Alexandria.Services.Preview/Media/MediaPreviewService.cs - Preview repository
Backend/Alexandria.Repositories/PreviewRepository.cs
Streaming and media
- Streaming and playlists API
Backend/Alexandria.Api/Features/Streaming - Player engine
Frontend/src/composables/usePlayerEngine.ts
Settings and operations
- User settings
Backend/Alexandria.Api/Features/Settings - Admin and monitoring API
Backend/Alexandria.Api/Features/Admin - Preview statistics
Backend/Alexandria.Services.Monitoring/PreviewStatsService.cs - PostgreSQL
- Preview data access
Backend/Alexandria.Repositories/PreviewRepository.cs
Other components
- User
Connections 28
- User → Authentication API: authenticates
- User → Files and directories API: manages files
- User → Tagging API: organizes files
- User → Share links API: shares files
- User → Preview API: views previews
- User → Streaming and playlists API: streams media
- User → User settings: customizes
- Files and directories API → Preview dispatch: requests previews
- Preview dispatch → Preview repository: checks jobs
- Preview dispatch → Message broker: publishes jobs
- Message broker → Preview job handler: delivers jobs
- Preview job handler → Document previews: generates documents
- Preview job handler → Media previews: generates media
- Preview job handler → S3 object storage: uploads previews
- Preview job handler → Preview repository: updates records
- Preview API → S3 object storage: serves previews
- Share links API → S3 object storage: serves shared files
- Player engine → Streaming and playlists API: requests streams
- Player engine → User: plays media
- Admin and monitoring API → Preview statistics: requests statistics
- Preview statistics → Preview data access: queries preview data
- Preview statistics → PostgreSQL: queries job data
- Preview repository → PostgreSQL: reads and writes
- Preview data access → PostgreSQL: reads preview records
- Access policies → PostgreSQL: stores rules
- User management → PostgreSQL: stores accounts
- User settings → PostgreSQL: stores preferences
- Files and directories API → S3 object storage: stores file content