src-ui/src/app/components/common/system-status-dialog/system-status-dialog.component.html
@if (!status()) {
Loading...
} @else {
Paperless-ngx Version {{status().pngx_version}} @if (versionMismatch()) { } Frontend version: {{frontendVersion}}
Backend version: {{status().pngx_version}} Install Type{{status().install_type}}Server OS{{status().server_os}}Media Storage{{status().storage.available | fileSize}} available ({{status().storage.total | fileSize}} total)
Type{{status().database.type}}Status {{status().database.status}} @if (status().database.status === 'OK') { } @else { } @if (status().database.status === 'OK') { {{status().database.url}} } @else { {{status().database.url}}: {{status().database.error}} } Migration Status @if (status().database.migration_status.unapplied_migrations.length === 0) { Up to date } @else { {{status().database.migration_status.unapplied_migrations.length}} Pending }
{{status().database.migration_status.latest_migration}} @if (status().database.migration_status.unapplied_migrations.length > 0) {
@for (migration of status().database.migration_status.unapplied_migrations; track migration) { - {{migration}} } }
Redis Status {{status().tasks.redis_status}} @if (status().tasks.redis_status === 'OK') { } @else { } @if (status().tasks.redis_status === 'OK') { {{status().tasks.redis_url}} } @else { {{status().tasks.redis_url}}: {{status().tasks.redis_error}} } Celery Status {{status().tasks.celery_status}} @if (status().tasks.celery_status === 'OK') { } @else { } @if (status().tasks.celery_status === 'OK') { {{status().tasks.celery_url}} } @else { {{status().tasks.celery_error}} } Recent Task Activity ({{status().tasks.summary.days}} days) @if (status().tasks.summary.total_count > 0) {
} @else { No recent tasks }
Search Index {{status().tasks.index_status}} @if (status().tasks.index_status === 'OK') { } @else { } @if (status().tasks.index_status === 'OK') {
{{status().tasks.index_last_modified | customDate:'medium'}} } @else {
{{status().tasks.index_error}} } Classifier {{status().tasks.classifier_status}} @if (status().tasks.classifier_status === 'OK') { @if (isStale(status().tasks.classifier_last_trained)) { } @else { } } @else { } @if (currentUserIsSuperUser) { @if (isRunning(PaperlessTaskType.TrainClassifier)) {
} @else { Run Task } } @if (status().tasks.classifier_status === 'OK') {
{{status().tasks.classifier_last_trained | customDate:'medium'}} } @else {
{{status().tasks.classifier_error}} } Sanity Checker {{status().tasks.sanity_check_status}} @if (status().tasks.sanity_check_status === 'OK') { @if (isStale(status().tasks.sanity_check_last_run)) { } @else { } } @else { } @if (currentUserIsSuperUser) { @if (isRunning(PaperlessTaskType.SanityCheck)) {
} @else { Run Task } } @if (status().tasks.sanity_check_status === 'OK') {
{{status().tasks.sanity_check_last_run | customDate:'medium'}} } @else {
{{status().tasks.sanity_check_error}} } WebSocket Connection @if (status().websocket_connected === 'OK') { OK } @else { Error } @if (aiEnabled) { AI Index {{status().tasks.llmindex_status}} @if (status().tasks.llmindex_status === 'OK') { @if (isStale(status().tasks.llmindex_last_modified)) { } @else { } } @else { } @if (currentUserIsSuperUser) { @if (isRunning(PaperlessTaskType.LlmIndex)) {
} @else { Run Task } } @if (status().tasks.llmindex_status === 'OK') {
{{status().tasks.llmindex_last_modified | customDate:'medium'}} } @else {
{{status().tasks.llmindex_error}} } }
}
@if (!copied()) { } @if (copied()) { } Copy