LeoVasanko
575df1214b
session: rename cookie to 'cista', add __Host- prefix on HTTPS
2026-04-27 03:56:07 +00:00
LeoVasanko
1927c24053
Revert an accidental change of functionality that was breaking file listings, originally done for linting purposes in commit 3767fb0.
2026-04-26 07:47:27 +00:00
LeoVasanko
6242c76be8
Add share token support with virtual filesystem and selection toolbar button
2026-04-26 07:46:14 +00:00
LeoVasanko
8c93a4f2b5
Add OnlyOffice-based preview for office documents
...
Replace Aspose.Words with OnlyOffice Document Server for generating
bitmap previews of office documents (Word, Excel, PowerPoint, etc.).
Backend:
- Add cista/onlyoffice.py conversion client
- Convert office docs directly to PNG via OnlyOffice, then AVIF via pyvips
- Make office previews optional based on OnlyOffice availability
- Remove Aspose.Words dependency and all related code
- Add spreadsheet and presentation format support
Frontend:
- Mark office files as previewable in Document.ts
- Add office extensions to MediaPreview.vue preview list
- Fix pre-existing @ts-ignore in HeaderMain.vue
Tests:
- Fix test_lrucache.py parameter name (open -> opener)
Also run ruff format across the codebase to satisfy linter checks.
2026-04-26 06:59:01 +00:00
LeoVasanko
942b54d795
lint: apply manual ruff cleanup (non-preview files)
2026-04-26 06:16:42 +00:00
LeoVasanko
18ee0f3f56
sso: use /auth/api/check for token permission checks
2026-04-26 05:46:09 +00:00
LeoVasanko
f8b2c9494a
WebDAV sync support, access tokens, REST control endpoints ( #10 )
...
Implement complete WebDAV file serving compatible with various clients from Windows File Explorer to more specialized sync tools. The old control WebSocket has been updated to part-DAV, part REST API instead. Implemented user:pass BASIC auth. Added UI and backend for creating tokens that avoid the need to use actual username and password for requests from CLI or DAV.
2026-04-26 04:22:52 +00:00
LeoVasanko
9ac571463a
Uploads by PUT range requests rather than WS, remove dead code WS handlers ( #9 )
...
Increases block size to 16 MiB and adjusts progress display to work smoothly with that. Also removes download WS that was already unused. Provides faster upload speed than over WS.
2026-04-25 01:55:52 +00:00
LeoVasanko
d52b24372a
Remove CISTA_PIL and Pillow preview mode
2026-04-25 02:06:40 +00:00
LeoVasanko
742b3006c9
Adjust emoji log spacing
2026-04-25 01:59:14 +00:00
LeoVasanko
01a979c00a
Improve preview worker error propagation and logging
2026-04-25 01:51:49 +00:00
LeoVasanko
f1e16b7abe
Preview: add pdf+pyvips encode path and simplify timings
2026-04-25 00:20:19 +00:00
LeoVasanko
0ebff0ec17
Preview: simplify pyvips timing to single processing ms + req total.
2026-04-25 00:06:35 +00:00
LeoVasanko
d5ff7757c8
Preview: persistent worker pool, fast AVIF encode, access-log timing
...
- Add preview_worker.py: long-lived subprocess; JSONL request / framed binary
response protocol (BLAKE3 checksum + LE uint32 sizes + msgspec JSON + payload)
- Add _PreviewWorkerPool: asyncio queue-based pool; kill+replace workers on timeout,
checksum error, or protocol error; PREVIEW_TIMEOUT=3s, PREVIEW_WORKERS=cpu-scaled
- Use pyvips effort=0,strip=True for fast AVIF thumbnails; CISTA_PIL=1 env forces Pillow
- Report load/process/save ms in PreviewResponse; inject into access log via req.ctx._log_extra
- Wire start/shutdown_preview_workers into Sanic lifecycle hooks (app.py)
- Call configure_main_logging() after Sanic() to install emoji formatter
- Silence worker stderr (DEVNULL)
2026-04-24 23:53:23 +00:00
LeoVasanko
cd604eb10a
Logging: emoji formatter and access-log extra field
2026-04-24 23:52:34 +00:00
LeoVasanko
abcf5d9940
Use client IP (potentially proxied) in logs, handle [ipv6].
2026-04-24 20:13:11 +00:00
LeoVasanko
0190bda853
Avoid useless check.
2026-04-24 00:04:58 +00:00
LeoVasanko
da4bba95be
Handle missing preview files with silent 404
2026-04-23 19:02:54 +00:00
LeoVasanko
e07ab220cb
Add cleaner access logging for HTTP requests and WebSockets
2026-04-23 18:06:22 +00:00
LeoVasanko
ded7ce65bc
Faster image previews by pyvips.
2026-04-23 17:19:24 +00:00
LeoVasanko
0b269aef7f
Set avif=1 flag for SVT-AV1 when encoding a single image, for increased efficiency and less memory usage.
2026-04-23 16:57:27 +00:00
LeoVasanko
497de296f2
Consistent forwarding of host/origin/ua over HTTP and WS to Paskia.
2026-02-10 23:56:42 +00:00
LeoVasanko
134b216f4c
Cleanup
2026-02-10 23:52:07 +00:00
LeoVasanko
c51552ea29
Cleaner WebSocket/Paskia proxying.
2026-02-10 23:42:13 +00:00
LeoVasanko
00645fc8ff
Attempt to get allocated size on Windows which needs WINAPI. Fallback to file size if not possible.
2026-02-05 20:31:46 +00:00
LeoVasanko
8480a73839
Fix --listen docopt parsing (only -l was working).
2026-02-05 20:01:26 +00:00
LeoVasanko
302ed684e7
Remove invalid Sanic kwarg when binding to all interfaces (not needed anyway).
2026-02-05 19:56:54 +00:00
LeoVasanko
af35e0480a
Better proxy header processing, pass original user-agent without httpx overriding it.
2026-02-05 17:53:52 +00:00
LeoVasanko
f578a50007
Pass the new allocated field through search filtering. Fixes issue where 0 allocated was reported in search results.
2026-02-04 23:55:05 +00:00
LeoVasanko
f40d9c1abd
Cache previews in server RAM for much faster access (they are about 70kB each).
2026-02-04 20:56:16 +00:00
LeoVasanko
3d8845cf99
Brighter low free space colors.
2026-02-04 20:40:59 +00:00
LeoVasanko
87e1443e7d
Auth restricted endpoint is picky about the trailing slash, use it consistently.
2026-02-04 20:35:29 +00:00
LeoVasanko
f45c57e901
Auth mode indication on startupbox
2026-02-04 20:24:21 +00:00
LeoVasanko
41686d1dd1
Correctly handle customized server name in admin settings dialog.
2026-02-04 20:15:56 +00:00
LeoVasanko
62b44ddb43
Fix free/used disk space handling. Implement file disk usage tracking. Display indicators on FileExplorer for incomplete files (sparse allocation, upload in progress).
2026-02-04 18:54:54 +00:00
LeoVasanko
60a53ef3d3
Implement server name config to override the default of using share folder name.
2026-02-04 18:00:21 +00:00
LeoVasanko
55f9117b3e
Remove refresh wwwroot support and static files serving, only using vite to serve frontend in dev mode (avoid accidentally using stale builds).
2026-02-01 06:14:35 +00:00
LeoVasanko
2b6746c55e
Change default port to 8989 like Droppy. Using 8999 for backend in dev mode.
2026-02-01 06:09:56 +00:00
LeoVasanko
1ed3779933
Use fastapi-vue parse_endpoint instead of our own logic.
2026-02-01 06:00:30 +00:00
LeoVasanko
032ad13b97
Unified watcher that *may* receive events from inotify and other sources. Added change notify messages from control and upload WebSockets. Cleanup debug printouts.
2026-02-01 02:44:52 +00:00
LeoVasanko
4eae75c84b
New inotify watcher with efficient algorithms.
2026-01-31 23:46:43 +00:00
LeoVasanko
252b31a293
Performance profile file change watching.
2026-01-31 22:53:17 +00:00
LeoVasanko
bc355d991d
Simplified startup box unix socket formatting.
2026-01-31 22:09:57 +00:00
LeoVasanko
036c4342de
Better error logging on preview generation errors.
2026-01-31 22:00:26 +00:00
LeoVasanko
160f929e0c
Basic details in startup box.
2026-01-31 21:53:39 +00:00
LeoVasanko
1970d40d8a
Implement background worker to make search response faster and avoid hanging the UI when there are a lot of files. Implement better toast messages for transitional events that automatically disappear.
2026-01-31 21:02:16 +00:00
LeoVasanko
46d222006a
More robust zip download processing; don't let aborted requests hang threads, use a larger threadpool separate of preview generation.
2026-01-31 19:43:23 +00:00
LeoVasanko
8f76d770ee
Fixes for public mode authentication flows.
2026-01-31 04:48:44 +00:00
LeoVasanko
232fd92b22
Finalize Paskia integration and built-in authentication.
2026-01-31 00:47:04 +00:00
LeoVasanko
be69164c8f
Bundle icons into a single file.
2026-01-30 19:12:27 +00:00