Commit Graph

38 Commits

Author SHA1 Message Date
eleksir
c18eb8fb07 Update .gitignore 2026-04-05 01:06:04 +03:00
eleksir
0cb4d355ab Fix tests path fragility 2026-04-05 01:05:25 +03:00
eleksir
6cea15f553 Implement dir_scan_timeout config option 2026-04-04 23:32:37 +03:00
eleksir
6e56e74df4 If configured directory is missing, archive will be created anyway, but this error will be logged. 2026-04-04 22:45:00 +03:00
eleksir
3c22b2e1a0 Now TLS handshake errors will respect your loglevel setting 2026-04-04 22:25:23 +03:00
eleksir
65a57a6af6 Fixed bug with file extentions, enhance logging
- Fix 404 on downloading archive with extension
- Add downloaded archive length to log
- Add md5 hash to log
2026-04-04 21:45:33 +03:00
eleksir
e063352252 Compression levels does not apply for bzip2, xz, zstd, lz4, now we map then as best as we can. 2026-04-04 16:45:07 +03:00
eleksir
f20f490c15 Disable keepalive connections and set idle timeout to 10 seconds, explicitly 2026-04-04 16:17:21 +03:00
eleksir
ae321a216d Explicitly hardcode MaxHeaderBytes as 1k, to prevent slowloris attack 2026-04-04 16:08:57 +03:00
eleksir
729b147b90 If no files found in configured directories warn in log about it 2026-04-04 16:03:08 +03:00
eleksir
7b001d710a Implement timing-safe string comparison for authentication
Prevents timing attacks where an attacker could deduce correct
credentials by measuring response times. Not sure if it is real threat,
but anyway.
2026-04-04 15:59:40 +03:00
eleksir
2201fc72f1 Implement proper signal handler 2026-04-04 15:50:09 +03:00
eleksir
5e7dd4b960 Make logging thread safe, useful to run tests in parallel 2026-04-04 15:32:42 +03:00
eleksir
c1444f8c1d Add cancellation after read and before write, to be able to cancel operation more quickly 2026-04-04 15:22:50 +03:00
eleksir
6955e14921 Add hardlink detection for *nix platforms, they stored as links in tar, so content is effectively deduplites 2026-04-04 15:08:54 +03:00
eleksir
fd8612cfc6 Log all requests, not only ones that hit backup target, fix comments to be docstring friendly. 2026-04-04 14:44:48 +03:00
eleksir
e449fb78c9 Add more tests 2026-04-04 13:59:09 +03:00
eleksir
958ef67f29 Move ssl/tls related error to debug loglevel, to avoid log cluttering. 2026-04-04 13:16:22 +03:00
eleksir
14b7a17b00 Move log message about selected default compression algo after logging subsystem fully initialized 2026-04-04 12:44:47 +03:00
eleksir
c3553de856 Add version and software name in first message during startup, fix typo in log message during config loading. 2026-04-04 12:33:40 +03:00
eleksir
06ee9e081f Do not create log dir in openrc init file as per default config v0.5 2026-04-04 12:07:32 +03:00
eleksir
8beba095d0 Add ability to select compression algo by downloading location with file extension.
- Also update README.md with more useful examples.
v0.4
2026-04-04 11:49:33 +03:00
eleksir
afffc99a8a Eliminate duplicate code, make use of readHeaderTimeout const 2026-04-04 11:05:57 +03:00
eleksir
6201b03230 Update AGENTS.md 2026-04-04 11:01:53 +03:00
eleksir
3e246da9c5 Vendor used libs v0.3 2026-03-28 04:06:34 +03:00
eleksir
9046cb0067 Add comparsion table to README.md, fix path in openrc init script 2026-03-28 04:02:57 +03:00
eleksir
722620945d Move code to different places, add comments here and there, no actual changes 2026-03-28 01:38:17 +03:00
eleksir
15ac3be410 Implemented tar+parallel gzip compression + unit tests for it. 2026-03-28 00:19:09 +03:00
eleksir
3620623321 Implemented tar+xz compression + unit tests for it. 2026-03-27 23:50:27 +03:00
eleksir
b494479128 Implemented tar+lz4 compression + unit tests for it. 2026-03-27 23:37:13 +03:00
eleksir
a73354b59d Implemented tar+zstd compression + unit tests for it. 2026-03-27 23:03:44 +03:00
eleksir
5226688836 Implemented tar+bz2 compression + unit tests for it. 2026-03-27 21:28:27 +03:00
eleksir
05c9eb6669 Do not configure tls options if we running in plain http mode, without encryption 2026-03-27 20:20:32 +03:00
eleksir
565e40c9be Add config option to change prefix for Content-Disposition filename. Defaults to backup. 2026-03-27 09:50:51 +03:00
eleksir
607922be19 Make tar creation more crossplatform by adding files always with forward slash path separators 2026-03-27 09:14:04 +03:00
eleksir
fe3ab9c10e Initialize logger early, fix error message when symlink addition failed. v0.2 2026-03-27 08:21:42 +03:00
eleksir
16ae887196 Add AGENTS.md, simplify code, 2 fixes in log package, 3 bugs fixed.
- Add AGENTS.md for vibecoding ai data.
- Remove github.com/pkg/errors dependency
- writeWithContext — remove goroutine overhead, just check context before fn
- copyWithContext — remove unnecessary panic recovery
- Remove panic recovery tests (TestWriteWithContextPanic, TestCopyWithContextPanic, panicReader)
- Error, Warn, Info, Debug, Fatal — accept ...any instead of string (enables log.Error(err))
- Close — don't panic if Log is nil, don't close stderr
- Add unit tests (internal/log/main_test.go)
- getClientIP — trim spaces from X-Forwarded-For, use net.SplitHostPort for IPv6
- isExcluded — normalize paths to forward slashes for cross-platform regex matching
- writeWithContext godoc — fix stale comment about panic recovery
- internal/log/main_test.go — log package tests (19 tests)
2026-03-27 01:24:32 +03:00
eleksir
0bea45b770 Initial commit v0.1 2026-03-25 22:13:27 +03:00