How atalayalabs/oxicloud works
OxiCloud is a self-hosted cloud suite: users browse and upload files, then retrieve, preview, organize, or share them; it also serves calendars, contacts, and office editing. The README describes a hexagonal Rust backend with a web UI and standard DAV protocols. The graph reflects those documented layers and capabilities; detailed wiring is shown only where supported by the sampled source, so some subsystem connections remain intentionally broad.
Main entry points: handlers File handlers · routes.rs API routing · services Blob backends · pg Postgres repositories
Components 24
Web and clients
- Web application
frontend/src/routes - REST API client
frontend/src/lib/api
Interfaces
- API routing
src/interfaces/api/routes.rs - File handlers
src/interfaces/api/handlers - DAV handlers
src/interfaces/api/handlers - Authentication
src/interfaces/api/handlers/auth_handler.rs - WOPI handler
src/interfaces/api/handlers/wopi_handler.rs
Application services
- File workflows
src/application/services - File retrieval
src/application/services/file_retrieval_service.rs - Sharing and search
src/application/services - Calendar and contacts
src/application/services - Identity and access
src/application/services - Live collaboration
src/application/services/collab_session_service.rs - Media processing
src/infrastructure/services
Infrastructure
- Blob backends
src/infrastructure/services - Postgres repositories
src/infrastructure/repositories/pg - Authorization engine
src/infrastructure/services/pg_acl_engine.rs - Background jobs
src/infrastructure/scheduler
Persistent state
- PostgreSQL
- Blob storage
Other components
- Cloud user
- DAV client
- Collabora / OnlyOffice
- OIDC provider
Connections 28
- Cloud user → Web application: uses
- Web application → REST API client: requests
- REST API client → API routing: calls
- API routing → File handlers: routes
- API routing → Authentication: routes
- File handlers → File workflows: invokes
- File handlers → File retrieval: invokes
- File retrieval → Blob backends: reads
- File workflows → Blob backends: stores content
- File workflows → Postgres repositories: persists metadata
- File retrieval → Postgres repositories: reads metadata
- Postgres repositories → PostgreSQL: reads and writes
- Blob backends → Blob storage: reads and writes
- DAV client → DAV handlers: uses DAV
- DAV handlers → Calendar and contacts: invokes
- Calendar and contacts → Postgres repositories: persists records
- File handlers → Sharing and search: invokes
- Sharing and search → Authorization engine: checks access
- Authorization engine → PostgreSQL: queries grants
- Authentication → Identity and access: invokes
- Identity and access → OIDC provider: authenticates
- API routing → WOPI handler: routes
- WOPI handler → Collabora / OnlyOffice: serves editing
- File handlers → Media processing: requests previews
- Media processing → Blob backends: reads content
- Cloud user → Live collaboration: edits together
- Live collaboration → PostgreSQL: stores sessions
- Background jobs → PostgreSQL: stores job state