Commit Graph

8 Commits

Author SHA1 Message Date
Jeff Emmett 8220ad5d3b Route uploads through direct.rfiles.online to bypass Cloudflare 100MB limit
- Add direct.rfiles.online A record (DNS only, not proxied through CF)
- Add TLS-enabled Traefik router with Let's Encrypt for direct subdomain
- Add DirectUploadAPIView that accepts space slug as form field
- All uploads now go to https://direct.rfiles.online/api/upload/
- CORS allows *.rfiles.online origins
- Middleware treats 'direct' as reserved (not a shared space)
- Removes chunked upload complexity (no longer needed)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 18:02:14 +00:00
Jeff Emmett 6eabd8eaa2 Add chunked upload to bypass Cloudflare 100MB limit
Cloudflare free plan caps request bodies at 100MB. Files > 90MB now
upload in 80MB chunks: init session, send chunks sequentially, server
reassembles and creates MediaFile. Small files still use direct upload.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:47:29 +00:00
Jeff Emmett d1b44e9b1e Add duplicate file detection with skip/overwrite options
When uploading a file that already exists in a shared space (same filename),
the UI now shows the existing file info with Overwrite and Skip buttons
instead of silently creating a duplicate.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:25:13 +00:00
Jeff Emmett de38c8e1a3 Add migration for max_file_size_mb default change (100 → 0)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:13:49 +00:00
Jeff Emmett 0d3ffb1060 Fix upload failure: add default storage backend to STORAGES
Django 5.x requires a 'default' key in STORAGES for FileField uploads.
Only 'staticfiles' was defined, causing InvalidStorageError on upload.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:12:20 +00:00
Jeff Emmett 8c53efe43d Remove file size limit
- Django upload limit raised to 10GB
- SharedSpace max_file_size_mb default changed to 0 (unlimited)
- Server-side and client-side checks skip when limit is 0
- Upload UI shows "No file size limit"

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:06:33 +00:00
Jeff Emmett e89060beab Add initial database migration for files app
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 16:01:55 +00:00
Jeff Emmett cf9cc22c58 Initial commit: rfiles.online standalone file sharing platform
Extracted from PKMN (personal-knowledge-management-network) into its own
repo with separate database, file storage, and Docker stack.

- files app: SharedSpace, MediaFile, PublicShare, FileAccessLog models
- portal app: Landing page, upload, file management, shared space views
- Host-based URL routing for subdomain shared spaces (*.rfiles.online)
- PWA with service worker and share target support
- Celery tasks for expired share cleanup and file processing
- Docker Compose for dev and production (Traefik + PostgreSQL + Redis)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-10 15:46:31 +00:00