How plutonhq/pluton works
Pluton is a self-hosted backup management platform. Users configure storage and backup plans in the web UI, schedule and monitor backups, then browse snapshots to restore or download data. The backend also supports replication, retention, notifications, device management, and self-backup. The storage-management path is supported by sampled source; other major capabilities are represented from the README and repository structure, so their internal call wiring is shown only where the evidence supports it.
Main entry points: rclone.ts Rclone integration · App.tsx Web application · StorageService.ts Storage service · services API client
Components 25
Web interface
- Web application
frontend/src/components/App/App/App.tsx - Plans and status
frontend/src/components/Plan - Restore browser
frontend/src/components/Restore - Storage settings
frontend/src/components/Storage - API client
frontend/src/services
API and configuration
- HTTP routes
backend/src/routes/index.ts - Request controllers
backend/src/controllers - Plan services
backend/src/services/PlanService.ts - Storage service
backend/src/services/StorageService.ts
Backup runtime
- Schedule manager
backend/src/managers/CronManager.ts - Job queue
backend/src/jobs/JobQueue.ts - Backup tasks
backend/src/jobs/tasks/BackupTask.ts - Backup handlers
backend/src/managers/handlers/BackupHandler.ts - Backup strategies
backend/src/strategies/backup - Restic engine
backend/src/utils/restic/restic.ts
Restore and replication
- Restore handlers
backend/src/managers/handlers/RestoreHandler.ts - Replication handlers
backend/src/managers/handlers/ReplicationOrchestrator.ts - Event services
backend/src/services/events - Notification channels
backend/src/notifications/NotificationManager.ts
State and integrations
- Domain stores
backend/src/stores - Application database
backend/src/db/index.ts - Rclone integration
backend/src/utils/rclone/rclone.ts - Storage providers
backend/src/utils/providers
Other components
- User
- Backup destinations
Connections 29
- User → Web application: uses
- Web application → Plans and status: opens
- Web application → Restore browser: opens
- Web application → Storage settings: opens
- Plans and status → API client: requests plan data
- Restore browser → API client: requests restore data
- Storage settings → API client: requests storage actions
- API client → HTTP routes: HTTP requests
- HTTP routes → Request controllers: dispatches
- Request controllers → Storage service: calls storage operations
- Request controllers → Plan services: calls plan operations
- Storage service → Domain stores: reads and writes
- Plan services → Domain stores: reads and writes
- Domain stores → Application database: queries
- Storage service → Rclone integration: browses remotes
- Storage service → Storage providers: uses provider settings
- Schedule manager → Job queue: enqueues tasks
- Job queue → Backup tasks: dispatches
- Backup tasks → Backup handlers: runs backup work
- Backup handlers → Backup strategies: selects strategy
- Backup strategies → Restic engine: runs backup engine
- Backup strategies → Rclone integration: accesses remote storage
- Rclone integration → Backup destinations: transfers backup data
- Restore handlers → Restic engine: runs restore operations
- Restore handlers → Rclone integration: accesses remote data
- Replication handlers → Rclone integration: copies remote data
- Backup handlers → Event services: emits backup events
- Restore handlers → Event services: emits restore events
- Event services → Notification channels: notifies