Catherine
b1c372ea54
All subdomains of a forbidden domain are forbidden as well.
2025-09-22 20:00:54 +00:00
Catherine
f0b19debdc
Make X-Pages-Update: no-change a reportable event.
2025-09-22 19:48:31 +00:00
Catherine
3701aa1800
Simplify. NFC
2025-09-22 19:46:17 +00:00
Catherine
9907a26397
Remove leftover comments. NFC
2025-09-22 19:43:56 +00:00
Catherine
c11114149c
Allow marking a domain as unconditionally forbidden to update.
2025-09-22 19:39:23 +00:00
Catherine
6a2cc5b157
Minor refactor. NFC
2025-09-22 19:39:23 +00:00
miyuko
1aef0288e7
Add page operation metrics and expose them in Prometheus text format.
2025-09-22 19:03:59 +01:00
Catherine
584957a92d
Provide Allow: header when responding with 405 Method Not Allowed.
2025-09-22 17:41:03 +00:00
Catherine
789a5e682e
[breaking-change] Use type-safe representation for time durations.
2025-09-22 17:05:22 +00:00
Catherine
80e3d7ff56
Turn off Caddy's admin interface and expose metrics on the same port.
2025-09-22 16:26:55 +00:00
Catherine
e78f70626e
Fly.io: enable Caddy metrics collection.
2025-09-22 09:50:01 +00:00
Catherine
247922a093
Fly.io: configure concurrency.
...
The default is 20, and is regularly reached by crawlers or overly
enthusiastic browsers. The actual concurrency limit is likely closer
to 500-1000.
2025-09-22 08:42:12 +00:00
Catherine
fd7b632b52
Expand Server: header to include machine ID on Fly.io.
2025-09-22 08:27:03 +00:00
Catherine
6dfc03c3a8
Reimplement ugly automemlimit logging at startup.
2025-09-22 07:02:42 +00:00
Catherine
a159dba0b8
[breaking-change] Redesign environment var configuration overrides.
...
This is done using reflection to avoid boilerplate and potential desync
of the two configuration interfaces. The `[[wildcards]]` section did
not fit well into the "splat every config key" paradigm, so it is
unmarshalled as a whole from a JSON payload in an environment variable.
This commit also splits up the `Config` type into small per-section
struct types and removes most references to the global `config` in
favor of passing pointers to sections around.
A new option, `-print-config-env-vars`, shows the names and types of
all of the available configuration knobs.
2025-09-22 07:02:42 +00:00
Catherine
d81676fea0
Miscellaneous minor configuration related fixes.
2025-09-22 01:31:41 +00:00
Catherine
bf2922f892
[breaking-change] Add default config values where appropriate.
2025-09-21 23:08:27 +00:00
Catherine
51606aac98
Replace hardcoded limits with a config file section.
2025-09-21 19:00:36 +00:00
Catherine
e59699ab1a
Configure Caddy to use PROXY protocol for X-Forwarded-For.
2025-09-21 14:27:25 +00:00
Catherine
d4f5420875
Configure Caddy to use HTTP/3.
...
Also, add `Alt-Svc:` headers for both H2 and H3.
2025-09-21 14:27:25 +00:00
Catherine
21227ce59f
Only send Access-Control-Allow-Origin: in response to a CORS request.
...
This saves a bit of bandwidth. NFC otherwise.
2025-09-21 08:19:08 +00:00
Catherine
2af2975713
Add tar+gzip and tar+zstd compressed archive support.
2025-09-21 06:25:10 +00:00
Catherine
382bee9b4e
Don't send Access-Control-Max-Age: in response to GET requests.
...
This header only has meaning in an `OPTIONS` response.
2025-09-21 06:05:17 +00:00
Catherine
b5ab776a23
Use Cache-Control: max-age=60, stale-while-revalidate=3600.
...
This is a way to avoid blocking on network requests in the browser
while ensuring the content is served very fresh.
2025-09-21 05:31:06 +00:00
Catherine
5b471f6677
Add a feature flag for testing h2c:// performance.
2025-09-21 04:38:06 +00:00
Catherine
a10e28210a
Enable h2c:// (cleartext HTTP/2) protocol on all http:// sockets.
...
This allows git-pages and Caddy to efficiently use the same connection
for many pipelined requests, which I hope will reduce contention when
some bot decides to send fifty requests in the same millisecond.
This commit also changes built-in Caddy configuration to use HTTP/2
cleartext only when talking to the backend.
2025-09-21 03:36:14 +00:00
Catherine
403821a150
Return status 413 Request Entity Too Large where appropriate.
2025-09-21 03:35:18 +00:00
Catherine
d2d4a27667
Return status 415 Unsupported Media Type in PUT handler.
...
Before this commit, an unparseable media type would return 200 OK.
2025-09-21 03:33:42 +00:00
Catherine
5765fa7ffa
Proxy requests for unknown sites via wildcard fallback URL (if any).
2025-09-21 02:39:44 +00:00
Catherine
d5302e4358
[breaking-change] Allow multiple wildcard domains to be configured.
2025-09-21 00:29:51 +00:00
Catherine
acf948ac6b
Remove code for migrating from v1 data layout.
2025-09-20 20:10:40 +00:00
Catherine
7e9cd17b70
Add a -get-manifest option for debugging.
...
This isn't done via a socket to avoid potential misconfiguration
leading to authentication bypass.
2025-09-20 20:07:15 +00:00
Catherine
bdc119d630
Remove leading . path segments from tar archive member filenames.
2025-09-20 15:42:17 +00:00
miyuko
2f525f3bb7
Strip Content-Type parameters when looking at the type.
2025-09-20 16:12:23 +01:00
Catherine
26647411ed
Fix tar file extractor.
2025-09-20 14:57:53 +00:00
Catherine
960a40d736
Add Honeybadger.io observability support.
...
It's not yet clear how useful it is, but it's at least something.
2025-09-20 14:19:55 +00:00
Catherine
e5f1bac0ed
Remove outdated comment. NFC
2025-09-20 08:38:55 +00:00
Catherine
f5ffd70824
Rename X-Pages-Outcome response header to X-Pages-Update.
2025-09-20 08:34:56 +00:00
Catherine
ddf0de8435
Record non-fatal problems in manifest and report them.
...
This feature keeps complex features like `_redirects` debuggable.
2025-09-20 08:33:11 +00:00
Catherine
bd294982b2
Disallow Host: values starting with a dot.
...
Although these should never appear in first place, allowing them
to proceed into application logic may cause conflicts with reserved
manifest names.
2025-09-20 07:41:34 +00:00
Catherine
15b2f1ea39
Allow zip and tar archive uploads PUT request.
2025-09-20 07:16:10 +00:00
Catherine
95814dd3f3
Parse _redirects file and store rules in manifest.
2025-09-20 07:16:10 +00:00
Catherine
3acab677e0
Split up backend.go. NFC
2025-09-20 04:39:13 +00:00
Catherine
7178885bfb
Add a dedicated error type to report missing blob or manifest.
2025-09-20 04:24:36 +00:00
Catherine
412c2c2e3a
Fix issues found by staticcheck. NFC
2025-09-20 03:55:58 +00:00
Catherine
9f0e54546a
CI: fix trigger list.
2025-09-20 01:18:25 +00:00
Catherine
ed0f8e9d0d
Add instructions for first-party container to README.
2025-09-20 01:12:52 +00:00
Catherine
fa17b9c1ed
Build Docker images on CI.
2025-09-20 00:34:13 +00:00
Catherine
9d18700834
Switch from Nix back to Docker for deployment.
2025-09-20 00:12:55 +00:00
Catherine
da604215c1
Adapt Caddyfile during the build.
...
Until https://github.com/ss098/certmagic-s3/pull/25 is merged, this
also uses a fork of certmagic-s3.
2025-09-19 22:12:48 +00:00