How dovletemin/paylash_v2 works
Paýlaş is a self-hosted cloud file workspace for an architecture studio. The main workflow is an employee using the web app to browse a personal, common, or project space, upload or open a file, and retrieve or share it; office editing uses Collabora through WOPI. Separate branches cover chat, administration, WebDAV, and optional web push. Backend feature details beyond the sampled files are represented at their documented subsystem paths; exact handler-to-storage wiring is only shown where supported.
Main entry points: db Data access · api API handlers · api.js API client · minio.go Object storage client
Components 24
Web client
- Web browser
- App router
web/js/app.js - API client
web/js/api.js - Files UI
web/js/files.js - Chat client
web/js/chat.js
Application backend
- HTTP server
internal/server/server.go - API handlers
internal/api - Authentication
internal/api/auth.go - Data access
internal/db
Files and storage
- Object storage client
internal/storage/minio.go - Resumable uploads
internal/api/uploads.go - File history and trash
internal/api/versions.go - File sharing
internal/api/shares.go - Preview and annotations
web/js/preview.js - WebDAV access
internal/dav/handler.go
Collaboration
- WOPI integration
internal/wopi/handler.go - Realtime chat
internal/api/chat.go - Web push
internal/webpush/webpush.go
Administration
- Admin panel
internal/api/admin.go
Other components
- Employee
- PostgreSQL
- MinIO object store
- Collabora Online
- Browser push service
Connections 32
- Employee → Web browser: uses
- Web browser → App router: loads app
- App router → API client: requests data
- API client → HTTP server: HTTP requests
- HTTP server → API handlers: dispatches
- API handlers → Authentication: handles sign-in
- Authentication → Data access: reads sessions
- API handlers → Data access: reads and writes
- Data access → PostgreSQL: queries
- Files UI → API client: requests files
- API handlers → Resumable uploads: dispatches upload routes
- Resumable uploads → Object storage client: uploads objects
- Object storage client → MinIO object store: reads and writes
- API handlers → File history and trash: dispatches file routes
- File history and trash → Data access: updates file records
- File history and trash → Object storage client: restores object versions
- API handlers → File sharing: dispatches share routes
- File sharing → Data access: stores share records
- Preview and annotations → API client: loads previews
- HTTP server → WOPI integration: routes WOPI requests
- WOPI integration → Data access: validates tokens
- WOPI integration → Object storage client: reads and saves files
- Collabora Online → WOPI integration: opens and saves
- Chat client → API client: sends chat requests
- API handlers → Realtime chat: dispatches chat routes
- Realtime chat → Data access: stores messages
- Admin panel → Data access: manages accounts and projects
- HTTP server → WebDAV access: serves WebDAV
- WebDAV access → Data access: resolves files and users
- WebDAV access → Object storage client: accesses file objects
- Realtime chat → Web push: notifies recipients
- Web push → Browser push service: sends web push