Catherine
0b2db170b8
Allow updating wildcard domain sites from an archive with a forge token.
2025-11-19 04:10:02 +00:00
Catherine
457dd60aa0
Factor out authentication helpers. NFC
2025-11-19 02:53:48 +00:00
Catherine
95894bb403
Docker: clean Go cache after building executables.
...
This is an attempt to stop OOMing Codeberg's Forgejo Actions runners,
which count disk and RAM against the same quota.
2025-11-19 02:24:20 +00:00
Catherine
6196026312
CI: publish releases and handle tags.
2025-11-19 01:33:08 +00:00
Catherine
073435aa2b
Redirect domain.tld/project to domain.tld/project/ when present.
...
This is to match the behavior of GitHub, as well as because it isn't
particularly useful to serve a file from the index repo with the same
path segment as the project name (and quite confusing too).
2025-11-18 22:27:03 +00:00
Catherine
325c283e05
Refactor redirect code. NFC
2025-11-18 22:21:51 +00:00
Catherine
7773ebd0dc
CI: switch package runner to medium.
2025-11-18 21:30:18 +00:00
miyuko
cef3d785ec
Add a Prometheus counter for s3:GetObject errors.
2025-11-17 12:33:00 +00:00
miyuko
fff345c695
Don't observe context cancellation errors.
2025-11-17 11:09:26 +00:00
miyuko
de17426f41
Observe blob fetch errors during GET requests.
2025-11-17 11:09:26 +00:00
David Leadbeater
3334af922f
Allow external redirects for 3xx statuses
...
Fixes #60
2025-11-17 19:24:54 +11:00
Catherine
5a09d30d3d
Renovate: disable automerge so it'd stop breaking the flake.
2025-11-17 04:34:26 +00:00
Catherine
d88d97721a
Observe whether manifest cache is bypassed.
2025-11-17 04:34:17 +00:00
Catherine
91dc7e0c54
Add original (decompressed) size to site manifest.
...
This size is not used by git-pages itself, and is not representative of
storage needs, but may be used for estimating how large a site would
be if downloaded in its entirety.
2025-11-16 19:27:04 +00:00
Catherine
770ff5c416
Remove unused go.mod entries.
2025-11-16 19:22:20 +00:00
oppiliappan
779f705d5c
Allow matching multiple subdomains in wildcards
...
Previously, this method would match only hosts of the form:
user.host.com
This changeset allows matches on hosts of the form:
user.org.host.com
user.organization.com.host.com
This will potentially be the pattern that tangled.org uses for its hosted
instance of git-pages.
Signed-off-by: oppiliappan <me@oppi.li >
2025-11-16 05:56:15 +00:00
Catherine
5da56a1b94
Link to git-pages-cli in README.
2025-11-16 02:06:19 +00:00
miyuko
2193fb86de
Try to fix Sentry errors getting attached to wrong transactions.
2025-11-16 00:30:53 +00:00
Catherine
de40c8263a
Set Update-Result for DELETE requests.
...
Done for uniformity and to make git-pages-cli implementation nicer.
2025-11-16 00:18:29 +00:00
Catherine
3e59fd2734
Rename X-Pages-Update header to Update-Result.
...
Same rationale as in 9d0a3ac6ad .
2025-11-15 23:46:20 +00:00
Catherine
9a431b8bbb
Add /.git-pages/health endpoint.
2025-11-15 21:17:30 +00:00
bin
adfbb99172
Add Caddy to the Nix devshell.
...
Also remove flyctl, as we no longer rely on fly.io infrastructure.
2025-11-15 12:20:55 -05:00
Catherine
d604455e1f
Ignore trailing . in hostnames.
...
This means that e.g. `https://site.tld .` will be treated the same as
`https://site.tld `. In DNS, the trailing empty label means "root domain"
and is usually ignored when present. There are some sites with links
that don't work otherwise.
2025-11-15 03:12:03 +00:00
Catherine
3431217a09
Don't respond with a completely blank 404 page.
...
We respond to all other errors with a simple, 1-line explanation that
you could see when using e.g. curl. The one case of "site is found and
the path is a normal path, but it doesn't exist and the 404 page does
not exist either" was unhandled by accident.
2025-11-15 01:42:55 +00:00
Catherine
b70a9ad4dd
Allow only ssh, http, and https schemes for clone URLs.
2025-11-14 23:12:53 +00:00
David Leadbeater
19892ecfd1
Correctly read symlinks from zip files
...
This already worked for tar files, but symlinks in .zip files were
treated as regular files.
2025-11-14 12:51:15 +11:00
Catherine
ff8cf9928e
Make compression always enabled.
...
This removes the `compress` feature.
2025-11-13 23:22:25 +00:00
Catherine
9d0a3ac6ad
Use Branch: instead of X-Pages-Branch: to set custom branch name.
2025-11-12 17:05:11 +00:00
Catherine
ed77339144
Remove deprecated COOP/COEP assignment based on content type.
2025-11-11 17:56:02 +00:00
miyuko
cf5b98e3e5
Don't issue extraneous HEAD requests for S3 GetObject operations.
2025-11-11 17:33:24 +00:00
Catherine
02b5b7d2bb
Ignore only the malformed _redirects/_headers rules.
...
Before this commit, upon encountering a malformed rule, the entire file
was ignored. This is both increasingly unviable for complex sites,
a likely source of self-DoS (or at least degradation of service),
and not the behavior Grebedoc has been promising for a few weeks.
2025-11-11 15:55:48 +00:00
Catherine
c90b453d44
Default to allowed-custom-headers = ["X-Clacks-Overhead"].
...
X-Clacks-Overhead: GNU Terry Pratchett
2025-11-11 15:38:11 +00:00
Catherine
26b29ec4be
Add Netlify _headers support.
2025-11-11 15:36:14 +00:00
Catherine
2a6308eb05
Update flake.
2025-11-11 06:12:40 +00:00
Catherine
f9e142dd51
Observe all storage errors reported by GetManifest.
...
Otherwise users may get jumpscares of "site not found" due to temporary
conditions (network errors to S3 backend included).
2025-11-11 06:10:01 +00:00
Catherine
c4b3671a53
Add [[wildcard]].index-repo-branch option (pages by default).
2025-11-05 23:00:32 +00:00
Catherine
9b19eeae82
Add missing [limits] keys to default configuration.
2025-11-05 22:58:12 +00:00
Catherine
47a658ac03
Avoid leaking http.Transport resources.
...
`http.Transport` objects cache connections and are meant to be long
lived rather than created on demand; creating them on demand leaks
sockets. Bug introduced in commit 3c07ebcc .
2025-11-05 09:48:36 +00:00
Catherine
3c07ebccbf
Add [[wildcard]].fallback-insecure option to disable TLS verification.
...
This is intended for local deployments only.
2025-11-04 19:03:54 +00:00
woodpecker-bot
28c1b42167
fix(deps): update all dependencies
2025-10-30 00:10:05 +00:00
Catherine
ba820e63e3
Work around slog issues handling %% in a format string.
2025-10-29 01:04:01 +00:00
Catherine
2db3de01c7
Fix a nil dereference on non-custom 404 pages.
2025-10-27 16:14:35 +00:00
Catherine
91cafac86a
Apply Content-Type from the manifest to non-200 status pages.
2025-10-27 15:25:14 +00:00
Catherine
d0e0f98616
Fix flake, and (actually) disable Renovate auto-merge.
2025-10-27 15:13:50 +00:00
woodpecker-bot
b295318118
fix(deps): update all dependencies
2025-10-27 00:11:41 +00:00
Catherine
c93bc3a250
CI: run on all branches, but package only on main branch.
...
This is required for Renovate to work properly.
2025-10-26 05:02:01 +00:00
Catherine
30668be4a0
If an https fallback URL is configured, try TLS for Caddy domain check.
...
This is added pretty much exclusively for Codeberg Pages v2 migration,
but the implementation is generic enough to be useful for other similar
setups (if anyone ever has to deal with one...)
2025-10-26 04:55:58 +00:00
Catherine
26b926293b
Serve X-Content-Type-Options: nosniff.
...
Mozilla HTTP Observatory cares about this (5 points), and there isn't
really any reason not to send it at all times.
2025-10-24 09:28:49 +00:00
Catherine
68343a3dff
Turns out a Web Worker is a type of frame (for COEP purposes).
2025-10-24 09:26:54 +00:00
Catherine
fc1582972c
Fix flake.
2025-10-23 15:12:29 +00:00