Catherine
929aedfd2c
Use strings.Trim{Prefix,Suffix}. NFC
2025-09-18 20:05:59 +00:00
Catherine
877d375af7
Fold domain names to lowercase when constructing a web root.
...
Currently all domains with uppercase letters in them (as presented in
the `Host:` header during registration) are broken.
2025-09-18 19:40:51 +00:00
Catherine
3c46169ba6
Refactor authentication code.
2025-09-18 19:23:59 +00:00
bin
6f932df886
Initial Nix flake
2025-09-18 19:14:47 +00:00
Catherine
f99298d38b
Make Caddy startup dependent on git-pages.
...
Fly.io starts routing requests to the VM the moment it becomes
reachable (listens on its service ports) even if it is not ready yet.
This causes transient failures on machine startup.
2025-09-18 17:28:25 +00:00
Catherine
2548effeb8
Unify Caddy and git-pages health checks.
2025-09-18 13:50:48 +00:00
Catherine
810dc9cea0
Disable swap on fly.io.
...
This just results in latency spikes with big uploads.
2025-09-18 13:23:38 +00:00
Catherine
d48c754b9e
Switch from hivemind to supervisord.
...
Hivemind doesn't have auto-restart capability (it quits with code 0,
which just stops the VM).
2025-09-18 12:15:23 +00:00
Catherine
b85b762ba9
[breaking-change] Update Dockerfile to add Caddy and a fly.io deployment option.
2025-09-18 05:14:04 +00:00
Catherine
0ed4fd2fc2
Fetch repositories to /tmp, not in-memory.
2025-09-18 04:32:23 +00:00
Catherine
07a736382c
Automatically set GOMEMLIMIT at 90% of available memory.
...
Or at the ratio specified by `AUTOMEMLIMIT`.
2025-09-18 03:31:51 +00:00
Catherine
fb9f4a7c4a
Allow configuring log format.
...
In a production environment the timestamp will be appended by the log
service.
2025-09-18 02:00:49 +00:00
Catherine
bd6e377e43
Allow explicit authorization to bypass wildcard URL restriction.
2025-09-18 01:56:06 +00:00
Catherine
bbd7964e0c
Revert "Expose metadata when running on bunny.net magic containers."
...
This reverts commit 705685e918 .
2025-09-18 01:42:17 +00:00
Catherine
2ca9a4c244
Revert "Log successful health check."
...
This reverts commit 82f24d5508 .
2025-09-18 01:40:51 +00:00
Catherine
c9b2cbb52e
Work around a TOCTTOU race in os.Root.MkdirAll().
...
This race was reliably triggered by an initial push into an empty blob
store, causing it to fail.
2025-09-17 23:14:52 +00:00
Catherine
82f24d5508
Log successful health check.
2025-09-17 18:31:38 +00:00
Catherine
f482be4c05
Invalidate S3 backend cache after committing or deleting a manifest.
2025-09-17 17:01:50 +00:00
Catherine
6abaa04688
[breaking-change] S3_ENDPOINT_URL→S3_ENDPOINT.
2025-09-17 16:25:31 +00:00
Catherine
73f00459c7
Simplify X-Bunnynet-MC format.
2025-09-17 15:38:32 +00:00
Catherine
ea2c2c5d2e
[breaking-change] Add a health check endpoint.
...
Also, simplify the listen endpoint configuration format.
2025-09-17 15:36:27 +00:00
Catherine
13c72015a7
Raise default S3 backend max-age for manifests to 60s.
...
The default of 5s is way too aggressive and results in poor experience.
2025-09-17 15:16:02 +00:00
Catherine
705685e918
Expose metadata when running on bunny.net magic containers.
2025-09-17 14:55:50 +00:00
Catherine
ef7aea6a38
Fix S3 backend cache expiry calculation.
2025-09-17 14:19:10 +00:00
Catherine
48cc4cbcbb
Cache misses as well as hits in S3 GetManifest.
...
Otherwise URLs with a subdirectory end up hammering the backend server.
2025-09-17 14:18:08 +00:00
Catherine
a0bd7d8650
Implement migration from v1 data layout.
2025-09-17 13:14:10 +00:00
miyuko
31131a6360
Use a context to ensure a time-based deadline for update operations.
2025-09-17 13:14:42 +01:00
miyuko
cf8abbca28
Wrap errors when calling fmt.Errorf.
2025-09-17 13:14:42 +01:00
miyuko
92622b19a4
Fix file not closed after serving a page.
2025-09-17 13:14:42 +01:00
Catherine
3b80cb4144
Fix domain presence check.
...
Before this commit, domains which had a project deployed but not
an index would be incorrectly considered nonexistent when queried
via the Caddy endpoint.
2025-09-17 12:11:25 +00:00
Catherine
8d9c64410e
Update Dockerfile.
2025-09-17 10:31:31 +00:00
Catherine
9e7ea8b5f1
Fix ETag header format.
2025-09-17 10:31:20 +00:00
Catherine
6463c4d2c5
Override backend configuration from environment.
2025-09-17 10:17:45 +00:00
Catherine
b3f8b941d8
[breaking-change] Split blob paths for S3 backend as well.
2025-09-17 10:03:39 +00:00
Catherine
373d48ed22
Cache blobs in memory when using the S3 backend.
2025-09-17 07:42:33 +00:00
Catherine
1faf0a4431
Cache manifests in memory when using the S3 backend.
2025-09-17 06:54:20 +00:00
Catherine
876b4596ba
Reduce amount of manifest queries sent to the backend.
2025-09-17 06:54:12 +00:00
Catherine
6254176a17
Add logging to S3 backend.
2025-09-17 06:20:22 +00:00
Catherine
7fc81d3d97
[breaking-change] Rearchitect for better object store compatibility.
...
Co-authored-by: bin <flumf@users.noreply.github.com >
2025-09-17 05:59:50 +00:00
Catherine
e0f6dabd9f
Set Access-Control-Allow-Origin for HTTP error responses as well.
2025-09-16 17:12:45 +00:00
Catherine
b7e16b5e5f
Redirect from /foo to /foo/ when serving index.html under it.
...
Otherwise links break.
2025-09-16 16:51:13 +00:00
Catherine
8b8431201b
Allow Authorization: Basic as a fallback for GitHub, etc.
2025-09-16 15:57:55 +00:00
Catherine
e86e895913
Add cross-origin isolation headers to GET responses.
2025-09-16 15:21:14 +00:00
Catherine
3d199b660c
Add Access-Control-Allow-Origin: * header to GET responses.
2025-09-16 15:04:34 +00:00
Catherine
02c69f8988
Add Cache-Control and ETag headers to GET responses.
2025-09-16 14:40:51 +00:00
Catherine
cc42c43de2
Add Server: git-pages header to all responses.
2025-09-16 14:40:44 +00:00
Markus Unterwaditzer
bffa79dfba
Add a Dockerfile
2025-09-16 15:12:48 +02:00
Catherine
9c0cdaa2eb
Report ignored refs in webhook response.
2025-09-16 13:05:40 +00:00
Catherine
20b7689d16
Report fetch outcome in webhook response.
2025-09-15 16:46:19 +00:00
Catherine
03d6c55855
Allow supplying Authorization: via query parameter.
...
There is no other way to authorize GitHub and Gogs webhook payloads.
2025-09-15 16:46:19 +00:00