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
LeoVasanko
849b1a6868
Update scripts with latest fastapi-vue-setup.
2026-01-30 18:40:26 +00:00
LeoVasanko
7be02e951d
Consistent dialog styling widgets and using Paskia's shared backdrop. Internal password auth mimics Paskia. API paths changed (/auth goes to internal or paskia depending on config). All API calls and previews get access checks.
2026-01-30 18:28:05 +00:00
LeoVasanko
442816a0ae
Fix video preview images that were displayed sideways for portrait video. The least bad approach loses HDR but shows in correct orientation. For 0 and 180 degrees we preserve HDR too.
2026-01-22 02:20:39 +00:00
LeoVasanko
ba6380e71e
Add a script to run devserver. Migrate to build and JS utils provided by fastapi-vue. Frontend directory renamed to frontend-build. Update Sanic, deprecations.
2026-01-21 23:32:04 +00:00
LeoVasanko
0d853032bf
Cleaner handling when preview generation fails. Using original file as fallback.
2026-01-21 23:29:51 +00:00
LeoVasanko
055eaa8a21
Fix admin UI password reset and user deletion functions.
2025-10-01 06:31:20 +00:00
LeoVasanko
05fb81c36d
Implement web-based user management / admin setup. ( #8 )
...
Implement Admin Settings dialog for user management and toggling the public server flag, not needing CLI for maintenance anymore.
2025-09-30 23:10:33 +00:00
LeoVasanko
5e2e71eafb
Clean up the remaining uses of print()
2025-08-18 22:49:40 +00:00
LeoVasanko
7e4c5bc911
Use zstd rather than brotli for static file compression.
2025-08-18 04:51:46 +00:00
LeoVasanko
bfcce1b80e
Fix typing and import in the config file module.
2025-08-17 22:10:55 +00:00
LeoVasanko
2bd8d4a323
Startup banner with version display, and --version, using stderr/stdout properly.
2025-08-17 21:10:43 +00:00
LeoVasanko
1d97d48fed
Cleaner server shutdowns:
...
- Remove a workaround for Sanic server not always terminating cleanly
- Terminate worker threads before server stop
- Silent closing of watching WebSocket attempted to open while shutting down
2025-08-17 19:21:03 +00:00
LeoVasanko
f627890e55
Image previews improved, all EXIF Orientations handled.
2025-08-17 19:00:52 +00:00