added
This commit is contained in:
parent
aca27fe4d3
commit
a62d1edc76
|
|
@ -0,0 +1,162 @@
|
||||||
|
Task Summary: Insights Hub Export + Gitea Push Fix
|
||||||
|
|
||||||
|
We created a Python script to support your Insights Hub / Portable Identity Document workflow.
|
||||||
|
|
||||||
|
The script:
|
||||||
|
|
||||||
|
C:\projects\ES\eddie-soehnel-portable-identity-document-OPEN\scripts\insights-hub-posts-last-6-months.py
|
||||||
|
|
||||||
|
pulls matching JSON records from:
|
||||||
|
|
||||||
|
C:\Users\edsoe\My Drive\Personal Organization\JSON_Database\hrecords
|
||||||
|
|
||||||
|
filters for records where:
|
||||||
|
|
||||||
|
"HubTags": ["External Platform Posts"]
|
||||||
|
|
||||||
|
copies matching JSON files into:
|
||||||
|
|
||||||
|
C:\projects\ES\eddie-soehnel-portable-identity-document-OPEN\data\insights-hub\hrecords
|
||||||
|
|
||||||
|
copies referenced media files from:
|
||||||
|
|
||||||
|
C:\Users\edsoe\My Drive\Personal Organization\JSON_Database\files
|
||||||
|
|
||||||
|
into:
|
||||||
|
|
||||||
|
C:\projects\ES\eddie-soehnel-portable-identity-document-OPEN\data\insights-hub\files
|
||||||
|
|
||||||
|
and generates a Markdown digest:
|
||||||
|
|
||||||
|
C:\projects\ES\eddie-soehnel-portable-identity-document-OPEN\data\insights-hub\insights-hub-posts-last-6-months.md
|
||||||
|
|
||||||
|
with the title:
|
||||||
|
|
||||||
|
# Insights Hub Posts - Last 6 Months
|
||||||
|
|
||||||
|
The Markdown output is sorted most recent first, covers roughly the last 6 months, and includes each post’s title, summary, and referenced image/file where available.
|
||||||
|
|
||||||
|
Problem 1: Git push failed with HTTP 413
|
||||||
|
|
||||||
|
When syncing to your Gitea repo:
|
||||||
|
|
||||||
|
https://projects.eddiesoehnel.com/adminprojects/eddie-soehnel-portable-identity-document-OPEN
|
||||||
|
|
||||||
|
Git failed with:
|
||||||
|
|
||||||
|
error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413
|
||||||
|
fatal: the remote end hung up unexpectedly
|
||||||
|
|
||||||
|
The key issue was:
|
||||||
|
|
||||||
|
HTTP 413 = Payload Too Large
|
||||||
|
|
||||||
|
Your push included a large Git pack, around:
|
||||||
|
|
||||||
|
118.25 MiB
|
||||||
|
|
||||||
|
because the new Insights Hub export included many image and PDF files under:
|
||||||
|
|
||||||
|
data/insights-hub/files/
|
||||||
|
Problem 2: Misleading “Everything up-to-date” message
|
||||||
|
|
||||||
|
Git also printed:
|
||||||
|
|
||||||
|
Everything up-to-date
|
||||||
|
|
||||||
|
after the failed push.
|
||||||
|
|
||||||
|
We treated that as unreliable because the same output also included:
|
||||||
|
|
||||||
|
fatal: the remote end hung up unexpectedly
|
||||||
|
|
||||||
|
The local branch remained ahead of origin, confirming the push had not actually completed.
|
||||||
|
|
||||||
|
Workaround Attempt 1: Exclude media from Git
|
||||||
|
|
||||||
|
We temporarily added this to .gitignore:
|
||||||
|
|
||||||
|
data/insights-hub/files/
|
||||||
|
|
||||||
|
Then we reset and recommitted the lightweight files only:
|
||||||
|
|
||||||
|
.gitignore
|
||||||
|
scripts/insights-hub-posts-last-6-months.py
|
||||||
|
data/insights-hub/hrecords/
|
||||||
|
data/insights-hub/insights-hub-posts-last-6-months.md
|
||||||
|
|
||||||
|
That allowed Git to avoid the large media payload.
|
||||||
|
|
||||||
|
However, this created a new issue: the generated six-month Markdown file referenced local media files, but those files were not present on the Gitea/server side because Git was ignoring them.
|
||||||
|
|
||||||
|
Problem 3: Markdown referenced missing media
|
||||||
|
|
||||||
|
Since the Markdown file displays images/files from:
|
||||||
|
|
||||||
|
data/insights-hub/files/
|
||||||
|
|
||||||
|
the media files do need to exist wherever the repo is served or rendered.
|
||||||
|
|
||||||
|
So excluding the media folder solved the Git push problem but broke the completeness of the published Markdown output.
|
||||||
|
|
||||||
|
Final Fix: Increase Caddy request body limit
|
||||||
|
|
||||||
|
We inspected your Caddyfile and found the Gitea reverse proxy block:
|
||||||
|
|
||||||
|
see caddyfile for the new addition
|
||||||
|
|
||||||
|
We added a larger request body limit:
|
||||||
|
|
||||||
|
Then Caddy was validated and reloaded:
|
||||||
|
|
||||||
|
sudo caddy validate --config /etc/caddy/Caddyfile
|
||||||
|
sudo systemctl reload caddy
|
||||||
|
|
||||||
|
After that, the push worked.
|
||||||
|
|
||||||
|
Cloudflare Change
|
||||||
|
|
||||||
|
You also turned off the Cloudflare proxy for:
|
||||||
|
|
||||||
|
projects.eddiesoehnel.com
|
||||||
|
|
||||||
|
and set it to DNS only.
|
||||||
|
|
||||||
|
That was the correct move because Git pushes over HTTPS can hit Cloudflare request-body limits. For a self-hosted Gitea server, the cleaner current setup is:
|
||||||
|
|
||||||
|
Cloudflare DNS only → Caddy HTTPS reverse proxy → Gitea VM
|
||||||
|
|
||||||
|
rather than:
|
||||||
|
|
||||||
|
Cloudflare proxy → Caddy → Gitea
|
||||||
|
Current Recommended State
|
||||||
|
|
||||||
|
Keep:
|
||||||
|
|
||||||
|
projects.eddiesoehnel.com = DNS only
|
||||||
|
|
||||||
|
Keep this in the Caddyfile:
|
||||||
|
|
||||||
|
request_body {
|
||||||
|
max_size 1GB
|
||||||
|
}
|
||||||
|
|
||||||
|
Allow the media files in Git if the Markdown digest depends on them being present in the repo.
|
||||||
|
|
||||||
|
Longer term, the cleaner architecture would be to separate Git-tracked content from large media deployment:
|
||||||
|
|
||||||
|
Git:
|
||||||
|
- JSON
|
||||||
|
- Markdown
|
||||||
|
- scripts
|
||||||
|
|
||||||
|
Separate media deployment:
|
||||||
|
- rsync
|
||||||
|
- SFTP
|
||||||
|
- object storage
|
||||||
|
- static media volume
|
||||||
|
- Git LFS
|
||||||
|
|
||||||
|
But for the current workflow, the practical fix is:
|
||||||
|
|
||||||
|
Track the media in Git + raise Caddy upload limit + keep Cloudflare DNS-only for Gitea.
|
||||||
Loading…
Reference in New Issue
Block a user