G2/G4 complete: Gitea live, LFS landing in R2, four traps pinned
VERIFIED END TO END from outside the network:
- create repo via API -> clone -> commit -> push -> read back over HTTPS
- 3 MB LFS object pushed through the tunnel, landed in R2 at lfs/34/2d/...
- NO local lfs/ directory on the host: I-3 confirmed by measurement
- /health/full: db, gitea and r2 all green
Adds strand G4A recording four traps that each cost a crash loop, with tests:
1. [lfs] STORAGE_TYPE creates a separate storage section that does not
inherit [storage] — crash loop, error names the symptom not the cause
2. storage backend != LFS enabled; LFS_START_SERVER is separate, and its
absence reads as a permissions error
3. Gitea env-to-ini SETS but never UNSETS — removing a compose var leaves the
line in the persisted app.ini, so repo config and prod config silently
disagree. Exactly the drift this cell exists to end.
4. R2 rejects the default S3 checksum algorithm
And G4A.5, which is architecture rather than a bug: an 8 MB non-LFS push died
with HTTP 524 at Cloudflare's ~100s limit. This makes the LFS threshold
load-bearing and REQUIRES G10 to serve model weights via presigned R2 URLs
rather than proxying blobs through the tunnel — client straight to R2, which is
what Hugging Face does and which takes Grant's home upstream out of the path.
G2.4: Gitea's MIT text and a NOTICE now travel with the repo.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
24
LICENSES/NOTICE.md
Normal file
24
LICENSES/NOTICE.md
Normal file
@@ -0,0 +1,24 @@
|
||||
# Third-party notices — Windy Git
|
||||
|
||||
Windy Git runs **stock Gitea** as an unforked component (D-2 / I-1). Gitea is
|
||||
distributed under the MIT license, reproduced in `gitea-MIT.txt`.
|
||||
|
||||
MIT's only obligation is that the copyright notice and license text travel with
|
||||
copies of the software that are **distributed**. Running Windy Git as a hosted
|
||||
service is not distribution, so strictly this file is not required today — it is
|
||||
here anyway, because it will be required the moment a self-host bundle ships, and
|
||||
because shipping it costs nothing.
|
||||
|
||||
MIT does **not** require us to advertise the lineage, does not restrict
|
||||
commercial use, and does not require publishing our modifications. That last
|
||||
point is why Gitea (MIT) was chosen over Forgejo (GPLv3 from v9): GPLv3 does not
|
||||
trigger on running a service — that is AGPL, and it is widely gotten wrong — but
|
||||
it **does** trigger on distributing a binary, which the self-host line would do.
|
||||
|
||||
**Gitea's trademarks are not used.** The product is branded Windy Git throughout.
|
||||
|
||||
| Component | Version | License |
|
||||
|---|---|---|
|
||||
| Gitea | 1.24.6 (pinned) | MIT — `gitea-MIT.txt` |
|
||||
| PostgreSQL | 16 | PostgreSQL License |
|
||||
| cloudflared | 2026.1.2 | Apache-2.0 |
|
||||
20
LICENSES/gitea-MIT.txt
Normal file
20
LICENSES/gitea-MIT.txt
Normal file
@@ -0,0 +1,20 @@
|
||||
Copyright (c) 2016 The Gitea Authors
|
||||
Copyright (c) 2015 The Gogs Authors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
Reference in New Issue
Block a user