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
abcf5d9940
Use client IP (potentially proxied) in logs, handle [ipv6].
2026-04-24 20:13:11 +00:00
LeoVasanko
e07ab220cb
Add cleaner access logging for HTTP requests and WebSockets
2026-04-23 18:06:22 +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
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
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
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
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
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
83bc1bea81
Various build fixes, cleanup and details ( #6 )
...
- Major memory usage reduction in video previews
- Finally builds properly on Windows too
2023-11-21 15:32:49 +00:00
LeoVasanko
d939c1ddbb
Video preview posters
2023-11-19 08:44:46 +00:00
LeoVasanko
c84c570d2e
Implement media preview thumbnails for Gallery
2023-11-19 03:38:25 +00:00
LeoVasanko
0cd7249712
Tidying up log, correct HTTP status for error pages.
2023-11-17 09:10:18 +00:00
LeoVasanko
4613581759
Code cleanup and bugfixes:
...
- Resolve threading deadlock when multiple watch request arrived at the same moment.
- Implement more graceful server exit.
- Reduce excessive logging.
- Fix unix socket clearing; until Sanic starts accepting Path for unix socket name.
2023-11-16 03:02:44 +00:00
LeoVasanko
879ad09677
CLI simplification, better diagnostic for missing wwwroot, docs.
2023-11-15 00:03:15 +00:00
LeoVasanko
8bff541297
Updated installation and README
2023-11-15 00:00:21 +00:00
LeoVasanko
55007b4b8b
More efficient flat file list format and various UX improvements ( #3 )
...
This is a major upgrade with assorted things included.
- Navigation flows improved, search appears in URL history, cleared when navigating to another folder
- More efficient file list format for faster loads
- Efficient updates, never re-send full root another time (except at connection)
- Large number of watching and filelist updates (inotify issues remain)
- File size coloring
- Fixed ZIP generation random glitches (thread race condition)
- Code refactoring, cleanup, typing fixes
- More tests
2023-11-12 23:20:40 +00:00
LeoVasanko
9762d7c1ad
Linting, removed extra line from pyproject.toml.
2023-11-09 05:08:46 +00:00
LeoVasanko
bc67ef5fd1
Frontend created and rewritten a few times, with some backend fixes ( #1 )
...
The software is fully operational.
2023-11-08 20:38:40 +00:00
LeoVasanko
ab6b19e538
Formatting and fix Internal Server Error on upload
2023-10-26 11:18:59 +00:00
LeoVasanko
1c310379b1
Fix field name in session cookie; prevented logged in useds authenticating.
2023-10-23 19:47:57 +00:00
LeoVasanko
b5a1fe6c4d
Cleanup, bugfixes. Added access control on files and API.
2023-10-22 22:51:39 +00:00
LeoVasanko
ce0b6c9bd2
Frontend included in repository.
2023-10-21 16:30:47 +00:00
LeoVasanko
bfc04b3831
Refactoring and cleanup
2023-10-21 13:17:09 +00:00
LeoVasanko
447081e5d0
Implemented control commands and tests. Rewritten error and session/flash handling.
2023-10-20 22:44:43 +00:00
LeoVasanko
c5bef025b6
Reset flash cookie also on index page.
2023-10-19 14:24:20 +00:00
LeoVasanko
d269442d7f
Refactor with its own entry point and startup script cista, instead of running via sanic. Config file handling and Droppy updates. HTTP redirection/acme server added.
2023-10-18 20:06:14 +00:00
LeoVasanko
9f889232f3
Implemented login page and new jwt-based sessions. Watching cleanup.
2023-10-17 19:06:27 +00:00
LeoVasanko
f6bbd7b5ff
Major upgrades, much code and docs rewritten.
2023-10-17 15:33:31 +00:00
LeoVasanko
912e0acc0d
Cleanup
2023-10-15 01:31:54 +00:00
LeoVasanko
f9e4991276
Restructuring as a Python package.
2023-10-14 19:29:50 +00:00