Functional workflows and data flows showing how different services interact and process information across the homelab infrastructure.
How Authentik provides centralized authentication across all homelab services.
graph LR
User[User] --> Service[Any Service]
Service --> Check{Logged In?}
Check -->|No| Login[Authentik Login]
Check -->|Yes| Access[Access Granted]
Login --> Auth[Enter Password]
Auth --> Token[Get Token]
Token --> Service
Service --> Access
classDef user fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef auth fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef service fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
class User user
class Login,Auth,Token auth
class Service,Check,Access service
- Identity Provider: Authentik (lucille4)
- Protected Services: All user-facing applications across all servers
- Authentication Method: OIDC/SAML integration
- Session Management: Centralized session handling with persistent tokens
Automated media discovery, download, and organization workflow.
graph TD
User[User] --> Request[Request Media<br/>via Jellyseerr]
Request --> Type{Movie or<br/>TV Show?}
Type -->|Movie| Radarr[Radarr<br/>Movie Manager]
Type -->|TV Show| Sonarr[Sonarr<br/>TV Manager]
Radarr --> Search[Search<br/>Indexers]
Sonarr --> Search
Search --> Download[Download<br/>via Sabnzbd]
Download --> Process[Process &<br/>Organize]
Process --> Storage[Media<br/>Storage]
Storage --> Ready[Ready to<br/>Watch!]
YouTube[YouTube<br/>Videos] --> MeTube[MeTube<br/>Downloader]
MeTube --> Storage
classDef user fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef manager fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef process fill:#fff3e0,stroke:#f57c00,stroke-width:2px
classDef storage fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
class User,Request user
class Radarr,Sonarr,MeTube manager
class Search,Download,Process process
class Storage,Ready storage
- Request System: User-friendly interface for content requests
- Quality Management: Automatic quality monitoring and upgrades
- Multi-source Support: Usenet indexers with fallback options
- Post-processing: Automated organization, naming, and notifications
Document processing, AI analysis, and knowledge management workflows.
graph TD
Upload[Upload Document] --> Paperless[Paperless-ngx]
Paperless --> OCR[Extract Text<br/>OCR]
OCR --> Classify[Auto-classify<br/>& Tag]
Classify --> AI[AI Analysis]
AI --> Store[Store with<br/>Smart Search]
Email[Email] --> Paperless
Scanner[Scanner] --> Paperless
classDef input fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef process fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef ai fill:#fff3e0,stroke:#f57c00,stroke-width:2px
class Upload,Email,Scanner input
class Paperless,OCR,Classify process
class AI,Store ai
graph TD
subgraph "Create Knowledge"
Wiki[WikiJS<br/>Knowledge Base]
Blog[Ghost<br/>Blog Posts]
Docs[Documents<br/>in Paperless]
end
subgraph "Search Everything"
Search[Search Query] --> Text[Text Search<br/>Meilisearch]
Search --> Smart[Smart Search<br/>Vector DB]
Text --> Results[Combined<br/>Results]
Smart --> Results
end
subgraph "AI Assistant"
Question[Ask Question] --> Ollama[Ollama AI]
Ollama --> Knowledge[Search<br/>Knowledge]
Knowledge --> Answer[Smart<br/>Answer]
end
classDef create fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef search fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef ai fill:#fff3e0,stroke:#f57c00,stroke-width:2px
class Wiki,Blog,Docs create
class Search,Text,Smart,Results search
class Question,Ollama,Knowledge,Answer ai
- Multi-format OCR: Support for various document formats with Tesseract and Gotenberg
- Semantic Understanding: Vector embeddings for contextual search capabilities
- Knowledge Integration: Cross-referencing between documents and wiki content
- RAG Capabilities: Retrieval-augmented generation for AI responses
Centralized observability and monitoring data collection across all servers.
graph TD
subgraph "All Servers"
Logs[Container Logs<br/>Dozzle Agents]
Metrics[System Metrics<br/>Beszel Agents]
Uptime[Service Uptime<br/>Uptime Kuma]
end
subgraph "Central Collection"
Logs --> Seq[Seq<br/>Log Storage]
Metrics --> Grafana[Grafana<br/>Dashboards]
Uptime --> Status[Service<br/>Status]
end
subgraph "Unified View"
Seq --> Glance[Glance<br/>Dashboard]
Grafana --> Glance
Status --> Glance
end
subgraph "Alerts"
Seq --> Alerts[Alert<br/>System]
Grafana --> Alerts
Status --> Alerts
Alerts --> Notify[Email/<br/>Slack]
end
classDef source fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef collect fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef view fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef alert fill:#ffe0e0,stroke:#d32f2f,stroke-width:2px
class Logs,Metrics,Uptime source
class Seq,Grafana,Status collect
class Glance view
class Alerts,Notify alert
- Multi-layer Observability: Logs, metrics, and uptime monitoring
- Centralized Aggregation: Single points for logs (Seq) and metrics (Grafana)
- Distributed Collection: Agents on every server feed central systems
- Unified Dashboard: Glance provides single-pane view of entire infrastructure
Data protection strategy across critical servers and services.
graph TD
subgraph "What Gets Backed Up"
Docs[Documents<br/>Paperless]
Config[Configurations<br/>All Services]
Wiki[Wiki Content]
Media[Media Settings<br/>Not files]
end
subgraph "Backup Process"
Docs --> Export[Export Data]
Config --> Export
Wiki --> Export
Media --> Export
Export --> Encrypt[Encrypt<br/>Backup]
Encrypt --> Cloud1[Backblaze B2<br/>Primary]
Encrypt --> Cloud2[Hetzner<br/>Secondary]
end
subgraph "Recovery"
Cloud1 --> Restore[Restore<br/>Options]
Cloud2 --> Restore
Restore --> Full[Full Recovery]
Restore --> Partial[Single File<br/>Recovery]
end
Schedule[Weekly<br/>Automatic] --> Export
classDef data fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef process fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef cloud fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
classDef restore fill:#fff3e0,stroke:#f57c00,stroke-width:2px
class Docs,Config,Wiki,Media data
class Export,Encrypt,Schedule process
class Cloud1,Cloud2 cloud
class Restore,Full,Partial restore
- Multi-cloud Redundancy: Backblaze B2 and Hetzner Storage for geographic diversity
- Encryption: All backups encrypted at rest and in transit
- Application-aware: Paperless exports ensure data consistency
- Automated Scheduling: Weekly backups via resticprofile automation
- Granular Recovery: Full system or selective file restoration capabilities
File management and printing process flow for the maker environment.
graph TD
Design[Design 3D Model] --> STL[STL File]
STL --> Slice[Slice to G-Code]
Slice --> GCode[G-Code File]
GCode --> Sync[Syncthing<br/>File Sync]
Sync --> Devices[All Devices]
Sync --> OctoPrint[OctoPrint<br/>on lucille3]
OctoPrint --> Printer[3D Printer]
OctoPrint --> Monitor[Monitor Print<br/>via Web]
Monitor --> Progress[View Progress]
Monitor --> Control[Control Print]
Monitor --> Camera[Camera Feed<br/>Optional]
Printer --> Done[Print Complete!]
Done --> Notify[Get Notification]
classDef design fill:#e3f2fd,stroke:#1565c0,stroke-width:2px
classDef sync fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
classDef print fill:#fff3e0,stroke:#f57c00,stroke-width:2px
classDef monitor fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
class Design,STL,Slice,GCode design
class Sync,Devices sync
class OctoPrint,Printer,Done print
class Monitor,Progress,Control,Camera,Notify monitor
- File Synchronization: Seamless G-code sharing between devices and printer
- Remote Management: Web-based printer control and monitoring
- Progress Tracking: Real-time print progress and temperature monitoring
- Integration: Monitoring data feeds into centralized homelab observability