Commit graph

686 commits

Author SHA1 Message Date
ed 4e9ad781b6 advisory tiers 2026-05-25 10:10:01 +00:00
ed f4f97b6cc3 make signal-handler less shit;
previously: threading.Condition to wakeup the actual handler;
exciting chance of heisenbugs / deadlocks (theoretically)

almost went with os.pipe on unix and socketpairs on windows,
but turns out SimpleQueue is perfect and safe for this purpose

SimpleQueue is 3.7+ so use a regular queue on <3.7
(same problems as original approach)

also need dedicated thread for popping the queue on <3.7
to avoid deadlock on most platforms (--sig-thr)

new features:

--logrot-sig sets a signal for immediate log-rotate

--stack-sig sets a signal to dump stack to log/stdout

--reload-sig sets a signal to initiates config-reload
   (was hardcoded to USR1 previously)
2026-05-25 00:37:52 +00:00
ed 348b4bb5c7 drop rawpy, use libraw/dcraw_emu directly;
rawpy is still supported but will not be bundled by default
due to security concerns

dcraw_emu reads more formats than rawpy + gives better quality
(we told rawpy to use embedded thumbs), so also much slower

dcraw_emu must be combined with libvips or pillow (equivalent)

other alternatives considered:

libvips + a full imagemagick does a different subset of formats,
less than dcraw_emu, yet is 3x slower and eats ram

magick wins wrt formats but is even slower (4x of dcraw_emu)
2026-05-23 20:55:33 +00:00
ed 1f4246c6bb support .mka; closes #1489 2026-05-21 00:27:41 +00:00
Lydia Vierkorn 83dc20f33e
spectrograms: option to use log frequency scale (#1487) 2026-05-20 22:34:48 +00:00
ed 8d4363d147 list-nics / list-ips 2026-04-24 20:56:12 +00:00
ed 8b986888a9 logrotate-counter format 2026-04-24 20:09:52 +00:00
ed 46bd386a55 early logging 2026-04-23 19:26:39 +00:00
ed 8c7cdf8583 add --certkey 2026-04-22 20:32:18 +00:00
ed 43773f2c7e filesize units 6/7; closes #1389 2026-04-22 19:31:47 +00:00
ed ac05b4f1e6 helptext: mention --urlform get 2026-04-22 17:54:24 +00:00
ed 9a724b0124 misc logging/ux 2026-04-22 17:31:07 +00:00
ed cbd82b654a use ${ENV} syntax for env-vars;
only expand environment-variables of the form ${ENV}

by default, crash on startup if the old $ENV syntax is found,
explaning that the old syntax can be enabled with an option
2026-04-20 23:43:00 +02:00
ed 3a9ff67ab0 audioplayer: add bcstm/bfstm/brstm; closes #1447 2026-04-20 20:31:04 +02:00
ed a5d859d2b1 smb: add ipv6 support; closes #1417 2026-04-11 00:17:05 +00:00
ed 961a273764 autogrid global-option 2026-04-10 19:37:00 +00:00
stackxp ec3e0e7e1d
add --glang to use browser language (#1410)
Signed-off-by: ed <s@ocv.me>
Co-authored-by: ed <s@ocv.me>
2026-04-04 20:24:11 +00:00
ed abdbd69a68 libvips jxl tweaks 2026-03-23 02:02:15 +00:00
ed 7d6b037dcc thumbnail pregen; closes #1381 2026-03-23 01:57:32 +00:00
ed 5f3b76c8f8 nohtml / noscript as global options 2026-03-22 17:11:45 +00:00
ed 134e378e3a docs: dothidden, unlist, descript.ion 2026-03-22 16:22:22 +00:00
ed fc39561b32 add m4a aliases m4b/m4r; closes #1317 2026-03-08 09:02:57 +00:00
exci c6965f0614
add optional update-checker (#1315)
can check if the current version has a known vulnerability, with the option to panic and exit if so, and otherwise show a warning in the controlpanel for admins

---------

Co-authored-by: ed <s@ocv.me>
2026-03-07 21:54:49 +00:00
ed 9951e0333d readme: daw rephrase; closes #1305 2026-02-25 00:26:34 +00:00
Сашка724ая 5a7504fdbf
Support 4-digit chmod (#1299)
* Support 4-digit chmod octal values

---------

Signed-off-by: Aleksandr Ksenofontov <github@sashok724.net>
2026-02-16 18:06:04 +00:00
ed 0ca4c1bda4 explain fika 2026-02-14 20:06:23 +00:00
ed 27ae2e1e66 vips can read most RAWs (not .arw (sony)) 2026-02-14 19:43:33 +00:00
ed d44ea24530 add fika 2026-02-10 21:25:15 +00:00
ed 48c1017843 jxl-enc: add th-qvx (separate qscale) + misc 2026-02-09 20:18:00 +00:00
ed 312f48e17c add rw_edit (closes #1276);
previously, only .md files were editable with permissions read+write;
all other file-extensions required the delete-permission in addition

rw_edit is the list of file-extensions to allow read+write editing of
2026-02-07 23:55:23 +00:00
ed a368fc66b3 tail/follow: add windows support; closes #1262 2026-02-06 18:57:00 +00:00
Ivan Shapovalov a65a30b1b4 web, th: rudimentary jxl support
Fixes #724.
2026-02-04 01:34:04 +01:00
ed 598df44e87 cfg: warn on quotes 2026-02-02 19:08:56 +00:00
stackxp 22cdc0f8c9
remove nth and fix nih description (#1257)
Co-authored-by: ed <s@ocv.me>
2026-01-29 18:28:21 +00:00
ed 6dcb1efb7c add ?smsg 2026-01-21 04:55:50 +00:00
ed e752005543 rcm: config sets defaults;
also rename ren/rdb to reduce probability of
localstorage conflicts with other softwares
2026-01-19 00:28:00 +00:00
ed 60ceea4b42 add nospawn, assert_root 2026-01-18 22:15:34 +00:00
ed 826e84c8ec add --flo (logfile format) 2026-01-18 21:03:43 +00:00
ed d925553810 override domain for uploads (closes #255);
`up-site` will override the scheme and domain (https://example.com/)
in the links to newly uploaded files, making it possible to upload a
file from a LAN IP while obtaining an external URL in return
2026-01-18 00:30:46 +00:00
ed 41d3bae929 override domain for shares (closes #1211);
`shr-site` will override the scheme and domain (https://example.com/)
in the link to a newly created share, making it possible to create a
share from a LAN IP while obtaining an external URL in return

---------

Co-authored-by: mechabubba <stevenvanniisprettycool@gmail.com>
2026-01-17 23:58:57 +00:00
ed 40fb263097 rephrase "see serverlog" 2026-01-17 20:35:06 +00:00
ed 8240ef6151 index xattrs as tags; closes #134 2026-01-13 02:50:32 +00:00
ed 87a5c22a34 per-protocol ip binds; closes #1176 2026-01-07 23:27:03 +00:00
ed f81d80bcad option to change the "pw" header/uparam name;
useful to force basic-auth and such
2026-01-01 23:59:16 +00:00
ed 63d8e5a033 append to existing files with PUT 2026-01-01 20:32:33 +00:00
ed 4714c2fa5a add sftp server (powered by 39c3) 2025-12-30 23:38:54 +00:00
ed 4642d32366 dedicated tcp-port for tricky webdav clients;
there are webdav-clients (for example zotero) which fully pretend
to be a graphical webbrowser, going as far as faking the firefox
user-agent, which means they get the graphical login-page
instead of 401 (basic-authentication challenge)

these webdav-clients unfortunately also refuse to send credentials
unless they get 401'd, so until now it was impossible to connect them

the obvious solution of adding a suffix to
links in PROPFIND responses is a nonstarter;

* windows-webdav ignores the <displayname> property and shows the
   <href> as the filename, so this would show up in windows explorer
   and probably make most file operations impossible

* rclone is the opposite; ignores the <href> property (so it wouldn't
   even see the suffix) and builds its own URL from the <displayname>

so we need a new weapon:

gloabl-option dav-port makes copyparty listen on another port which
is dedicated to webdav-clients that otherwise don't look the part

global-option p-nodav is the opposite; tags a listening-port as
only accepting connections from graphical browsers, just in case

closes #1142
2025-12-26 17:21:58 +00:00
ed 4c73704ce7 fix ui-notree; closes #1123 2025-12-23 22:49:04 +00:00
ed 0b6d2d2424 safari: workaround another apple bug (closes #1111);
seemingly as of iOS / macos 26.1, safari started requesting
favicons -- specifically only favicons -- with the incorrect
browser context (they probably forgot to initialize something)

instead of the correct user-agent, it would send:
* iOS: NetworkingExtension/8623.1.14.10.9
* macos: com.apple.WebKit.Networking/21623.1.14.11.9

further, it would NOT send any SameSite=Strict cookies,
which the session-cookie is (for good reason)

putting these two together, safari now looks like a webdav client,
and copyparty sends the only appropriate response (http 401),
resulting in a basic-authentication popup

left with no good options, this is what we can do to mitigate:

* add a new option --ua-nodav which is a regex of user-agents
   which are definitely not webdav clients, as macos-finder still
   flipflops between WebDAVLib/1.3 and WebDAVFS/3.0.0 like normal

* use the "js=y" cookie as another flag that this is a webbrowser

merry christmas
2025-12-16 22:38:51 +00:00
ed 9c64788d43 add x-forwarded-proto fallback (closes #1110);
some reverseproxies do not include a compatible alternative to
x-forwarded-proto by default, while also lacking the option to
set custom headers

add --xf-proto-fb to set a fixed protocol to assume
2025-12-16 21:15:44 +00:00