feat: add VitePress docs site, music file picker modal, Dockerfile optimization, i18n keys for 14 locales
- Add docs/ with VitePress site (19 pages): guide, config, architecture, FAQ - Add GitHub Actions workflow for auto-deploy to GitHub Pages - Replace music 'Add Tracks' upload picker with in-app audio file browser modal - Add music picker CSS styles with dark theme support - Add missing i18n keys (search_audio, no_audio_files, etc.) to all 14 locales - Optimize Dockerfile: shared base stage, COPY --chmod, consolidated RUN, HEALTHCHECK - Improve README: docs links, updated stats (222+ tests, 14 languages), feature status
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
# Storage Quotas
|
||||
|
||||
OxiCloud supports per-user storage quotas to limit disk usage.
|
||||
|
||||
## Enabling Quotas
|
||||
|
||||
```bash
|
||||
OXICLOUD_ENABLE_USER_STORAGE_QUOTAS=true
|
||||
```
|
||||
|
||||
## How It Works
|
||||
|
||||
1. Each user has a `storage_quota` field (in bytes, `0` = unlimited)
|
||||
2. On every file upload, the current usage is checked against the quota
|
||||
3. If the upload would exceed the quota, it's rejected with a `413 Payload Too Large` error
|
||||
4. Admins can view and set quotas via the admin panel or API
|
||||
|
||||
## API
|
||||
|
||||
| Method | Endpoint | Description |
|
||||
|--------|----------|-------------|
|
||||
| GET | `/api/admin/users/{id}/quota` | Get user's quota and current usage |
|
||||
| PUT | `/api/admin/users/{id}/quota` | Set user's quota |
|
||||
|
||||
## Admin Panel
|
||||
|
||||
The admin panel (`/admin.html`) shows each user's current usage vs. quota with a visual progress bar.
|
||||
|
||||
## Deduplication Interaction
|
||||
|
||||
Storage usage is calculated based on **logical file size** (what the user uploaded), not physical blob size. This means:
|
||||
|
||||
- If two users upload the same 100 MB file, each user's quota is charged 100 MB
|
||||
- But on disk, only one 100 MB blob exists
|
||||
|
||||
This ensures fair quota accounting while maintaining dedup benefits.
|
||||
Reference in New Issue
Block a user