1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 | {
// dgit: a cgit-style git host that runs entirely on Cloudflare.
// Each repository lives in its own SQLite-backed Durable Object ("cell").
// NOTE: the script name stays "git-cells" — Durable Object data is bound
// to it, and renaming would orphan every hosted repository.
"name": "git-cells",
"main": "src/index.ts",
"compatibility_date": "2026-08-01",
"routes": [
{ "pattern": "git.eers.dev", "custom_domain": true }
],
"limits": {
// pack indexing of a large push is CPU-bound; 5 minutes is the paid-plan max
"cpu_ms": 300000
},
"durable_objects": {
"bindings": [
{ "name": "REPO", "class_name": "RepoCell" },
{ "name": "REGISTRY", "class_name": "Registry" }
]
},
"migrations": [
{ "tag": "v1", "new_sqlite_classes": ["RepoCell", "Registry"] }
],
// Optional: with PACK_CACHE bound, pushed pack bytes are stored in R2 (off the
// DO's SQLite) and full clones are served straight from R2 by the Worker.
// Remove this binding to fall back to the SQLite-only path (as on celld).
"r2_buckets": [
{ "binding": "PACK_CACHE", "bucket_name": "dgit-pack-cache" }
],
"vars": {
"SITE_NAME": "git.eers.dev",
"SITE_DESC": "a fast webinterface for the git dscm, on Cloudflare",
"SITE_OWNER": "divy"
}
// Push auth: run `wrangler secret put GIT_TOKEN` (use .dev.vars locally).
}
|