LeoVasanko
6242c76be8
Add share token support with virtual filesystem and selection toolbar button
2026-04-26 07:46:14 +00:00
LeoVasanko
942b54d795
lint: apply manual ruff cleanup (non-preview files)
2026-04-26 06:16:42 +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
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