Skip to content

System and Operations

System and operations keep the service stable, configurable, observable, and recoverable. This area spans startup configuration, database-backed runtime settings, background tasks, health checks, logs, mail, audit, and CLI operations.

Capability Boundaries

CapabilityNotesRelated docs
Startup configurationListen address, database, logging, WebDAV prefix, node mode, rate limiting, cacheConfiguration Overview, Server, Database
Runtime system settingsAdmin-console hot settings for site, registration, mail, WOPI, trash, task retentionSystem Settings
Background tasksThumbnails, archive jobs, migration, offline download, cleanup, periodic jobs, retriesSystem Settings, Operations CLI
MailSMTP, templates, outbox, test mailMail
MonitoringHealth, readiness, Prometheus metrics, Grafana dashboardMonitoring and Grafana
AuditAdmin operations, team audit, filterable audit logsAdmin Console
CLIdoctor, offline config, node enroll, cross-database migrationOperations CLI
Backup and upgradesDatabase, config, local upload directories, version upgrades, rollbackBackup and Restore, Upgrade and Version Migration

Backend Modules

ModuleOwns
config::loader, ops::configStatic configuration loading and runtime system settings
runtime::startup, runtime::tasksPrimary/follower startup and periodic background tasks
taskUser-visible background tasks, scheduling, retries, cleanup
mail::sender, mail::outbox, mail::templateMail delivery and templates
ops::health, api::routes::health, metricsHealth checks, readiness, metrics
ops::auditAudit log recording, querying, presentation
cli::*Offline operations commands

Configuration Boundaries

  • Anything required before startup belongs in config.toml or ASTER__... environment variables.
  • Administrator-adjustable runtime behavior belongs in the database-backed system_config table.
  • System default definitions are centralized in src/config/definitions.rs.
  • New user-visible background tasks should use task::create_task_record() and wake the dispatcher.

Troubleshooting Direction

  • Service does not start: check config path, database connection, occupied ports, directory permissions.
  • Readiness fails: check migrations, default policies, node mode, follower binding state.
  • Background tasks pile up: check dispatcher state, retention settings, failure reasons, retry count.
  • Admin console is unavailable but config must change: use the config subcommand in Operations CLI.

Released under the MIT License