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
87a92838c2
Add benchmark script for OnlyOffice output formats
...
Benchmarks three preview pipelines across all sample documents:
- BMP → AVIF (via pyvips)
- PNG → AVIF (via pyvips) — selected for production
- PNG only (no compression)
Results confirm PNG → AVIF as the optimal path:
- ~30 ms AVIF encode overhead
- 2.1× size reduction vs raw PNG
- Slightly faster than BMP → AVIF
2026-04-26 07:28:52 +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
eb5ff82de6
frontend: add biome checks and pre-commit integration (excluding preview files)
2026-04-26 06:43:06 +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.
v1.7.0
2026-04-25 01:55:52 +00:00
LeoVasanko
d52b24372a
Remove CISTA_PIL and Pillow preview mode
v1.6.2
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
v1.6.1
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
c8ab06d864
Frontend: don't show img preview for video/audio/doc files
...
- MediaPreview.vue: only render <img> for non-video, non-audio items
(video/audio already have their own player containers)
- Document.ts: limit previewurl to previewable files (was checking only .complete)
2026-04-24 23:54:02 +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.
v1.6.0
2026-04-24 00:04:58 +00:00
LeoVasanko
fc48500412
Upload end of file first for large files (for preview to function).
2026-04-24 00:02:17 +00:00
LeoVasanko
d31ad0b525
Avoid showing previews while file upload is in progress or the file is incomplete. This avoids 500 errors on server trying to generate the preview.
2026-04-23 19:34:16 +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
3da2f6e6c3
Don't show broken media previews during uploads, instead show a spinner indicating completion.
2026-04-23 17:40:03 +00:00
LeoVasanko
ded7ce65bc
Faster image previews by pyvips.
2026-04-23 17:19:24 +00:00
LeoVasanko
17550be698
Allow duplicate selected entries of the same name from different paths.
2026-04-23 17:01:03 +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.
v1.5.9
2026-02-10 23:56:42 +00:00
LeoVasanko
134b216f4c
Cleanup
2026-02-10 23:52:07 +00:00
LeoVasanko
06759b3c12
pytest deps, remove unused test group.
2026-02-10 23:46:44 +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
760f7bc35d
Fix vite argument passing on deno (fastapi-vue-setup upstream).
v1.5.8
2026-02-05 20:13:03 +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.
v1.5.7
2026-02-05 17:53:52 +00:00
LeoVasanko
5717486197
Intl support for search hotkey (where US keyboard has it).
v1.5.6
2026-02-05 00:57:42 +00:00
LeoVasanko
0061fc54ae
Keyboard navigation fixes (still not perfect but better).
2026-02-05 00:54:15 +00:00
LeoVasanko
4eefe83072
Fix search bar losing focus under specific conditions, mainly that when the search takes more than 50ms, causing results to be emptied, with a file priorly focused, was causing breadcrumbs to get focused. (reactivity is hard)
2026-02-05 00:07:45 +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).
v1.5.5
2026-02-04 20:56:16 +00:00
LeoVasanko
3d8845cf99
Brighter low free space colors.
v1.5.4
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.
v1.5.3
2026-02-04 20:15:56 +00:00
LeoVasanko
cc351bb992
Space usage widget show full name if possible, allow longer names.
2026-02-04 20:12:49 +00:00
LeoVasanko
c3abbe0a3b
Rename HeaderSelected to SelectionToolbar.
2026-02-04 20:01:05 +00:00
LeoVasanko
127caeedea
Improved selection toolbar UX.
2026-02-04 19:57:31 +00:00
LeoVasanko
113bc56351
README
2026-02-04 19:23:48 +00:00
LeoVasanko
c7727c72d9
Make devserver script take --listen argument for vite, while forwarding other args correctly to backend
2026-02-04 19:23:34 +00:00