Commit Graph
105 Commits
Author SHA1 Message Date
Leo Vasanko 88a032acfe Preview: add pdf+pyvips encode path and simplify timings 2026-04-25 00:20:19 +00:00
Leo Vasanko bbb73be07e Preview: simplify pyvips timing to single processing ms + req total. 2026-04-25 00:06:35 +00:00
Leo Vasanko fc2f357470 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
Leo Vasanko e579dbc61f Logging: emoji formatter and access-log extra field 2026-04-24 23:52:34 +00:00
Leo Vasanko 3e337bf1f2 Use client IP (potentially proxied) in logs, handle [ipv6]. 2026-04-24 20:13:11 +00:00
Leo Vasanko 522dd49f3f Avoid useless check. 2026-04-24 00:04:58 +00:00
Leo Vasanko 7b3252c588 Handle missing preview files with silent 404 2026-04-23 19:02:54 +00:00
Leo Vasanko 4626f1cdff Add cleaner access logging for HTTP requests and WebSockets 2026-04-23 18:06:22 +00:00
Leo Vasanko 1795506090 Faster image previews by pyvips. 2026-04-23 17:19:24 +00:00
Leo Vasanko e490cbe0fe 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
Leo Vasanko 2c74779102 Consistent forwarding of host/origin/ua over HTTP and WS to Paskia. 2026-02-10 23:56:42 +00:00
Leo Vasanko b65404beba Cleanup 2026-02-10 23:52:07 +00:00
Leo Vasanko 67d1fa65fb Cleaner WebSocket/Paskia proxying. 2026-02-10 23:42:13 +00:00
Leo Vasanko 6b009dea40 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
Leo Vasanko 7b19739875 Fix --listen docopt parsing (only -l was working). 2026-02-05 20:01:26 +00:00
Leo Vasanko 362a9f47c9 Remove invalid Sanic kwarg when binding to all interfaces (not needed anyway). 2026-02-05 19:56:54 +00:00
Leo Vasanko 7b3a39a58e Better proxy header processing, pass original user-agent without httpx overriding it. 2026-02-05 17:53:52 +00:00
Leo Vasanko 204a308396 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
Leo Vasanko 82062d1d7a Cache previews in server RAM for much faster access (they are about 70kB each). 2026-02-04 20:56:16 +00:00
Leo Vasanko ad37a48df9 Brighter low free space colors. 2026-02-04 20:40:59 +00:00
Leo Vasanko 84d80518a6 Auth restricted endpoint is picky about the trailing slash, use it consistently. 2026-02-04 20:35:29 +00:00
Leo Vasanko e520d9361c Auth mode indication on startupbox 2026-02-04 20:24:21 +00:00
Leo Vasanko 5b4be95ace Correctly handle customized server name in admin settings dialog. 2026-02-04 20:15:56 +00:00
Leo Vasanko b3df715e25 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 19:15:09 +00:00
Leo Vasanko 0656a027f4 Implement server name config to override the default of using share folder name. 2026-02-04 18:00:21 +00:00
Leo Vasanko 3a86fe26a7 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
Leo Vasanko 5c530652fa Change default port to 8989 like Droppy. Using 8999 for backend in dev mode. 2026-02-01 06:09:56 +00:00
Leo Vasanko 1e207b38b7 Use fastapi-vue parse_endpoint instead of our own logic. 2026-02-01 06:00:30 +00:00
Leo Vasanko 80453e98ab 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
Leo Vasanko add9d7ac82 New inotify watcher with efficient algorithms. 2026-01-31 23:46:43 +00:00
Leo Vasanko 7e4b56d9ae Performance profile file change watching. 2026-01-31 22:53:17 +00:00
Leo Vasanko 79875d3190 Simplified startup box unix socket formatting. 2026-01-31 22:09:57 +00:00
Leo Vasanko 5590a756ca Better error logging on preview generation errors. 2026-01-31 22:00:26 +00:00
Leo Vasanko bb0c4075d0 Basic details in startup box. 2026-01-31 21:55:08 +00:00
Leo Vasanko 40fb7bf398 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
Leo Vasanko 9879eea7c4 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
Leo Vasanko 61e59c9b45 Fixes for public mode authentication flows. 2026-01-31 04:48:44 +00:00
Leo Vasanko 9c173ff0bf Finalize Paskia integration and built-in authentication. 2026-01-31 00:48:02 +00:00
Leo Vasanko 1dab7f0fd1 Bundle icons into a single file. 2026-01-30 19:12:27 +00:00
Leo Vasanko 938ece90fe Update scripts with latest fastapi-vue-setup. 2026-01-30 18:52:54 +00:00
Leo Vasanko 14f2177514 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:26 +00:00
Leo Vasanko 984e17c037 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
Leo Vasanko 3d6cf2443c 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
Leo Vasanko 28ccfffc95 Cleaner handling when preview generation fails. Using original file as fallback. 2026-01-21 23:29:51 +00:00
Leo Vasanko b8816d482c Fix admin UI password reset and user deletion functions. 2025-09-30 18:31:20 -06:00
LeoVasanko cfc80d2462 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-10-01 01:10:33 +01:00
Leo Vasanko 3edf595983 Clean up the remaining uses of print() 2025-08-18 10:49:40 -06:00
Leo Vasanko 6aef2e1208 Use zstd rather than brotli for static file compression. 2025-08-17 16:51:46 -06:00
Leo Vasanko 091d57dba7 Fix typing and import in the config file module. 2025-08-17 10:31:54 -06:00
Leo Vasanko 69a897cfec Startup banner with version display, and --version, using stderr/stdout properly. 2025-08-17 10:31:18 -06:00