Leo Vasanko
bcbcef219e
session: rename cookie to 'cista', add __Host- prefix on HTTPS
2026-04-27 04:00:14 +00:00
Leo Vasanko
1e75763f77
Add share token support with virtual filesystem and selection toolbar button
2026-04-26 07:46:14 +00:00
Leo Vasanko
3767fb0cec
lint: apply manual ruff cleanup (non-preview files)
2026-04-26 06:16:42 +00:00
LeoVasanko
123cb45daa
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.
Reviewed-on: #10
2026-04-26 06:22:52 +01:00
LeoVasanko
91e07d61b6
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.
Reviewed-on: #9
2026-04-25 03:55:52 +01: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
3e337bf1f2
Use client IP (potentially proxied) in logs, handle [ipv6].
2026-04-24 20:13:11 +00:00
Leo Vasanko
4626f1cdff
Add cleaner access logging for HTTP requests and WebSockets
2026-04-23 18:06:22 +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
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
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
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
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
33db2c01b4
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 08:15:01 -06:00
Leo Vasanko
0cf9c254e5
Various build fixes, cleanup and details ( #6 )
...
- Major memory usage reduction in video previews
- Finally builds properly on Windows too
Reviewed-on: #6
2023-11-21 15:32:49 +00:00
Leo Vasanko
434e55f303
Video preview posters
2023-11-18 17:50:27 -08:00
Leo Vasanko
696e3ab568
Implement media preview thumbnails for Gallery
2023-11-18 11:38:25 -08:00
Leo Vasanko
f8a9197474
Tidying up log, correct HTTP status for error pages.
2023-11-16 17:10:18 -08:00
Leo Vasanko
b6b387d09b
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 07:09:57 -08:00
Leo Vasanko
c40c245ce6
CLI simplification, better diagnostic for missing wwwroot, docs.
2023-11-14 11:05:04 -08:00
Leo Vasanko
1fdd00b833
Updated installation and README
2023-11-14 08:00:21 -08:00
Leo Vasanko
9854dd01cc
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
Reviewed-on: #3
2023-11-12 23:20:40 +00:00
Leo Vasanko
e26cb8f70a
Linting, removed extra line from pyproject.toml.
2023-11-08 13:08:46 -08:00
Leo Vasanko
876d76bc1f
Frontend created and rewritten a few times, with some backend fixes ( #1 )
...
The software is fully operational.
Reviewed-on: #1
2023-11-08 20:38:40 +00:00
Leo Vasanko
4a53d0b8e2
Formatting and fix Internal Server Error on upload
2023-10-26 18:59:19 +03:00
Leo Vasanko
9428cc2d9c
Fix field name in session cookie; prevented logged in useds authenticating.
2023-10-24 01:47:57 +03:00
Leo Vasanko
4852212347
Cleanup, bugfixes. Added access control on files and API.
2023-10-23 04:51:39 +03:00
Leo Vasanko
93351ae86d
Frontend included in repository.
2023-10-21 22:30:47 +03:00
Leo Vasanko
e68a05e663
Refactoring and cleanup
2023-10-21 19:17:09 +03:00
Leo Vasanko
e90174a09d
Implemented control commands and tests. Rewritten error and session/flash handling.
2023-10-21 04:44:43 +03:00
Leo Vasanko
f969c2ccb4
Reset flash cookie also on index page.
2023-10-19 20:24:20 +03:00
Leo Vasanko
05c6f03d20
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-19 02:06:14 +03:00
Leo Vasanko
429a7dfb16
Implemented login page and new jwt-based sessions. Watching cleanup.
2023-10-18 01:06:27 +03:00
Leo Vasanko
bd680e3668
Major upgrades, much code and docs rewritten.
2023-10-17 21:33:31 +03:00
Leo Vasanko
4e3c0e2b98
Cleanup
2023-10-15 07:31:54 +03:00
Leo Vasanko
f697d96c89
Restructuring as a Python package.
2023-10-15 02:42:16 +03:00