How devlok1/self-hosted-cloud works
HomeCloud is a self-hosted cloud file manager. Users authenticate in the React UI, browse folders and files, and perform storage actions through an API client; the backend applies ownership-aware services and persists metadata while storing file bytes on disk. A separate resumable-transfer path stages and verifies chunks before finalizing files. The README documents major features and controller responsibilities; some controller and frontend modules were not sampled, so only documented or indexed relationships are shown.
Main entry points: client.ts HTTP API client · TransferService.java Transfer orchestration · FileService.java File management · App.tsx Cloud dashboard
Components 20
Web application
- Cloud dashboard
frontend/src/App.tsx - Sign-in view
frontend/src/components/AuthView.tsx - HTTP API client
frontend/src/api/client.ts - File workspace UI
frontend/src/components
API and security
- Authentication API
backend/src/main/java/com/homecloud/backend/controller/AuthController.java - File API
backend/src/main/java/com/homecloud/backend/controller/FileController.java - Folder API
backend/src/main/java/com/homecloud/backend/controller/FolderController.java - Storage stats API
backend/src/main/java/com/homecloud/backend/controller/StorageController.java - Transfer API
backend/src/main/java/com/homecloud/backend/controller/TransferController.java - JWT security
backend/src/main/java/com/homecloud/backend/security
Storage domain
- Account service
backend/src/main/java/com/homecloud/backend/service/AuthService.java - File management
backend/src/main/java/com/homecloud/backend/service/FileService.java - Folder hierarchy
backend/src/main/java/com/homecloud/backend/service/FolderService.java - Physical file store
backend/src/main/java/com/homecloud/backend/service/FileStorageService.java - JPA metadata
backend/src/main/java/com/homecloud/backend/repository
Resumable transfers
- Transfer orchestration
backend/src/main/java/com/homecloud/backend/service/TransferService.java - Chunk staging
backend/src/main/java/com/homecloud/backend/service/TransferStorageService.java - Transfer records
backend/src/main/java/com/homecloud/backend/repository/UploadSessionRepository.java - Transfer cleanup
backend/src/main/java/com/homecloud/backend/service/TransferCleanupScheduler.java
Other components
- HomeCloud user
Connections 26
- HomeCloud user → Cloud dashboard: uses
- Cloud dashboard → Sign-in view: renders
frontend/src/App.tsx - Cloud dashboard → File workspace UI: renders
frontend/src/App.tsx - Cloud dashboard → HTTP API client: calls
frontend/src/App.tsx - Sign-in view → HTTP API client: calls
frontend/src/components/AuthView.tsx - HTTP API client → Authentication API: HTTP requests
frontend/src/api/client.ts - HTTP API client → File API: HTTP requests
frontend/src/api/client.ts - HTTP API client → Folder API: HTTP requests
frontend/src/api/client.ts - HTTP API client → Storage stats API: HTTP requests
frontend/src/api/client.ts - HTTP API client → Transfer API: HTTP requests
frontend/src/api/client.ts - Authentication API → Account service: delegates to
- File API → File management: delegates to
backend/src/main/java/com/homecloud/backend/controller/FileController.java - Folder API → Folder hierarchy: delegates to
backend/src/main/java/com/homecloud/backend/controller/FolderController.java - Storage stats API → File management: gets statistics
backend/src/main/java/com/homecloud/backend/controller/StorageController.java - Transfer API → Transfer orchestration: delegates to
backend/src/main/java/com/homecloud/backend/controller/TransferController.java - Account service → JPA metadata: uses user repository
backend/src/main/java/com/homecloud/backend/service/AuthService.java - Account service → JWT security: uses JWT service
backend/src/main/java/com/homecloud/backend/service/AuthService.java - File management → JPA metadata: reads and writes
backend/src/main/java/com/homecloud/backend/service/FileService.java - File management → Physical file store: stores file bytes
backend/src/main/java/com/homecloud/backend/service/FileService.java - File management → Folder hierarchy: resolves folders
backend/src/main/java/com/homecloud/backend/service/FileService.java - Folder hierarchy → JPA metadata: reads and writes
backend/src/main/java/com/homecloud/backend/service/FolderService.java - Transfer orchestration → Transfer records: tracks sessions
backend/src/main/java/com/homecloud/backend/service/TransferService.java - Transfer orchestration → Chunk staging: stages and assembles
backend/src/main/java/com/homecloud/backend/service/TransferService.java - Transfer orchestration → Physical file store: finalizes files
backend/src/main/java/com/homecloud/backend/service/TransferService.java - Transfer orchestration → Folder hierarchy: resolves folders
backend/src/main/java/com/homecloud/backend/service/TransferService.java - Transfer cleanup → Transfer orchestration: purges transfers