Pushing straight to GitHub from KZ is a lottery — TCP to github.com times out often enough that git push becomes a flake. Fix: Forgejo runs on the stage server (sqlite, single container), all pushes go there first (local network, always reliable), a systemd timer mirrors the whole repo into GitHub every 10 minutes so GitHub stays up-to-date as a backup + CI source. What's committed here is the infra-as-code side: - deploy/forgejo/docker-compose.yml — Forgejo 7 on :3000 (HTTP) and :2222 (SSH) - deploy/forgejo/food-market-forgejo.service — systemd unit that drives compose - deploy/forgejo/mirror-to-github.sh + mirror timer/service — push to GH every 10 min - deploy/forgejo/nginx.conf — vhost for git.zat.kz (certbot to be run once DNS is set) - docs/forgejo.md — how to clone/push, operations, what's left for the user (DNS + certbot) GitHub Actions CI is untouched: commits land on GitHub via the mirror and the self-hosted runner picks them up as before. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
23 lines
760 B
Nginx Configuration File
23 lines
760 B
Nginx Configuration File
server {
|
|
listen 80;
|
|
server_name git.zat.kz;
|
|
location /.well-known/acme-challenge/ { root /var/www/html; }
|
|
|
|
# Forgejo can serve large pushes; allow big request bodies.
|
|
client_max_body_size 512M;
|
|
|
|
location / {
|
|
proxy_pass http://127.0.0.1:3000;
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Host $host;
|
|
proxy_set_header X-Real-IP $remote_addr;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header X-Forwarded-Proto $scheme;
|
|
proxy_buffering off;
|
|
proxy_request_buffering off;
|
|
proxy_read_timeout 300s;
|
|
}
|
|
}
|
|
# Note: run certbot --nginx -d git.zat.kz to issue a TLS cert — certbot will
|
|
# add a TLS server block and rewrite this one to 301->https.
|