Commit Graph

228 Commits

Author SHA1 Message Date
woodpecker-bot
f1400aaf62 fix(deps): pin dependencies 2025-10-23 00:11:27 +00:00
miyuko
8f8521d697 Don't compress video or audio files. 2025-10-22 17:25:13 +01:00
miyuko
ffedc45a14 Don't send COEP/COOP headers for non-HTML resources. 2025-10-22 17:25:10 +01:00
miyuko
d6a7a72e09 Serve compressed content directly if client indicates support. 2025-10-22 16:59:35 +01:00
miyuko
aa965c5a08 Use s3:GetObject instead of s3:ListObjects for CheckDomain. 2025-10-22 13:45:15 +01:00
Catherine
34db13e603 Simplify observability code. NFC 2025-10-22 10:44:25 +00:00
Simon Kolkmann
d144ea197e Update README. 2025-10-22 11:53:32 +02:00
Catherine
d1be93919f Make installable with go install. 2025-10-22 05:24:55 +00:00
Gusted
9f435d6e28 Disable actions/buildah-simple from renovate 2025-10-22 01:37:45 +02:00
miyuko
c39e57a857 Fetch manifests in parallel when handling GET requests. 2025-10-22 00:25:21 +01:00
miyuko
3863f0f134 Revert "Add a GetManifests function."
This reverts commit 0a111234f2.
2025-10-22 00:25:21 +01:00
Catherine
9849bcd498 Renovate: disable abandonmentThreshold.
It's fine for a package to stop getting updates if it is feature
complete.
2025-10-21 23:14:15 +00:00
woodpecker-bot
0d7a9aa9eb chore(deps): add renovate.json 2025-10-21 22:59:59 +00:00
Catherine
5e09a2b2bb Add a metric for site space saving due to compression. 2025-10-21 03:54:20 +00:00
Catherine
25f7ea08c9 Sniff Content-Type during site update.
This isn't yet used in the code responding to GET requests because we
do not yet have a migration path for legacy code.
2025-10-21 03:40:29 +00:00
Catherine
0a111234f2 Add a GetManifests function.
Intended as an implementation detail of parallel `getPages`.
2025-10-21 01:40:22 +00:00
Catherine
83c1e564c4 Add stored_size (size after deduplication) to manifest. 2025-10-21 00:49:27 +00:00
Catherine
23b516cf15 Observe timings even for 304 Not Modified responses to manifest loads. 2025-10-21 00:29:42 +00:00
Catherine
99b87226a1 Move update error observation to a single place. NFC 2025-10-18 21:49:54 +00:00
miyuko
fcc6245ce8 Respond to webhook deliveries in under 3 seconds. 2025-10-18 04:38:06 +01:00
miyuko
2ac2aee14a Use ETags when refreshing cached manifests. 2025-10-17 21:13:58 +01:00
Catherine
d54976e756 Report update errors or timeouts.
Looking through Sentry history, `update <domain> err:` is an extremely
high SNR signal of something going wrong; from configuration errors on
our side, to people pushing too-large git repositories and it failing.
Either way we should know.
2025-10-17 10:33:41 +00:00
Catherine
ff6fff2133 Add git_pages_http_request_count metric. 2025-10-17 02:13:06 +00:00
miyuko
e709634906 Add classic buckets to git_pages_s3_get_object_duration_seconds. 2025-10-17 03:07:14 +01:00
miyuko
93b7ad3af8 Add classic buckets to git_pages_http_request_duration_seconds. 2025-10-17 02:33:53 +01:00
miyuko
cfeb2d0dbe Observe s3:GetObject latency. 2025-10-16 03:23:38 +01:00
miyuko
6fe029238a Update flake.nix. 2025-10-16 00:50:12 +01:00
miyuko
32109d0db8 Monitor how long it takes us to respond to HTTP requests. 2025-10-16 00:41:23 +01:00
miyuko
eda3e8a791 Add stale-while-revalidate support to the cache. 2025-10-15 23:53:12 +01:00
miyuko
8bb6d0ff28 Unconditionally sample HTTP requests for tracing that take too long. 2025-10-15 18:26:33 +01:00
miyuko
87262e82f0 Swallow DNS allowlist parsing errors if at least one record is valid. 2025-10-15 02:36:14 +01:00
Catherine
afae6e42f3 S3: log blob sizes in human readable form. 2025-10-13 02:39:17 +00:00
miyuko
443e929dea Respond within 10 seconds when receiving GitHub webhooks. 2025-10-13 00:52:07 +01:00
Catherine
188c66c434 Use an ad-hoc type to deserialize JSON webhook payload.
This is both better structured, and avoids crashes on invalid payloads
that would occur before this commit due to a lack of checking for nil
in the maps.
2025-10-09 14:53:01 +00:00
Catherine
5b8cb4ba11 Clean up Caddyfile, removing Fly.io-isms.
The grebedoc.dev infrastructure is no longer directly tied to
the container built from this repository, so we don't have to
pollute the configuration with Fly.io-isms.
2025-10-09 14:43:41 +00:00
Catherine
d887ae1602 Allow metadata retrieval with Codeberg Pages v2 authorization method. 2025-10-09 13:48:46 +00:00
Catherine
e0b659f668 Add [limits].allowed-repository-url-prefixes configuration option.
This is useful to limit updates to a specific Git forge.
Naturally, enabling this option disables updates from archive.
2025-10-09 13:48:15 +00:00
miyuko
2d603db810 Use the upstream certmagic-s3 Caddy plugin.
Merged PR: https://github.com/ss098/certmagic-s3/pull/25
2025-10-08 01:24:12 +01:00
Catherine
15107298b2 Allow a trailing dot in Codeberg Pages v2 DNS TXT authentication method. 2025-10-07 19:00:46 +00:00
miyuko
a85905bd31 Fix time-based cache expiration practically never working.
config.MaxAge is now a nanosecond value, and multiplying it by
time.Second (number of nanoseconds in a second) will make it too large
for the cache expiry algorithm to have any effect.
2025-10-05 15:06:33 +01:00
Catherine
0eede0792d Add hostname and (if present) $PAGES_REGION to Server:.
Indispensable when debugging anycast configurations.
2025-10-05 08:11:52 +00:00
Catherine
a14f9e1e6c Use int64, not uint32, for sizes in the manifest.
This change eliminates a number of rather sketchy casts.

This conversion is a no-op for the wire format, explicitly per
Protobuf documentation.
2025-10-03 06:02:21 +00:00
Catherine
1e01a12958 Implement force redirects. 2025-10-02 16:41:23 +00:00
Catherine
157ceb8342 Add an HTTP status code workaround for GitHub. 2025-10-02 12:41:15 +00:00
Catherine
a7c47a798f Allow running without a configuration TOML file.
This is useful if it's more convenient to configure the server via
environment variables only.
2025-10-02 11:33:21 +00:00
miyuko
d5a4ac4098 Fix URL argument validation when using the -update-site CLI option. 2025-09-30 21:59:41 +01:00
Catherine
f0805c9ff5 Revert "Remove redundant bounds check from ExtractTar. NFCI"
This reverts commit 485cd4b9b1.

It wasn't redundant.
2025-09-30 05:20:02 +00:00
Catherine
485cd4b9b1 Remove redundant bounds check from ExtractTar. NFCI 2025-09-30 05:19:07 +00:00
Catherine
277b329e2d Merge backend_observer.go into observe.go. NFC 2025-09-30 04:40:30 +00:00
Catherine
50e32fedb0 Add logo. 2025-09-30 04:35:06 +00:00