- Logo/favicon ridisegnati come theta maiuscola: cerchio (anello) con 'H' centrata, clearance verificata (non tocca l'anello); ring ispessito per la favicon; centratura ottica verificata. - Rimosso il badge 'Self-hosted Git' dal hero della homepage (era esteticamente di troppo) - CSS e markup. - Aggiornati generate_theta.py, README, home.tmpl; caricati sul VPS in staging (md5 locali == remoti); tarball ricostruito. - Salvataggio iniziale dell'intero admin pack in git.
4.0 KiB
4.0 KiB
STATO SESSIONE — Gitea + Cloudflare (1 set 2026)
File di memorizzazione del lavoro fatto, per riprendere dopo un cambio di ambito. Aggiornato: 2026-09-01.
1. Obiettivo della sessione
Deploy di Gitea sul VPS OVH (145.239.94.49, Debian 12) come https://git.zomas.net
per tracciare il progetto Tacticus e aprirlo (in futuro) a contributi esterni.
Backup automatico incluso. Tutto completato e verificato.
2. Stato finale (TUTTO FUNZIONANTE)
| Componente | Stato |
|---|---|
| Gitea 1.27.3 | attivo (systemd, /etc/gitea/app.ini), DB sqlite /var/lib/gitea/data/gitea.db |
| Web | https://git.zomas.net → Apache → 127.0.0.1:3000 (200 esterno) |
| SSH git | server built-in Gitea su 0.0.0.0:2222 (host key ed25519/rsa/ecdsa) |
| SSH cliente | questo PC → [email protected]:2222 (IP origine 145.239.94.49, chiave ~/.ssh/id_ed25519) |
| Repo | zomas/tacticus privato, main, con README + bot/.env.example |
| Mailer | smtp+starttls → smtp.gmail.com:587, App Password, test email ok |
| 2FA | attiva (richiesta globale) + TWO_FACTOR_AUTH=enforced |
| Backup | /var/backups/gitea/gitea-dump-*.zip (gitea dump, cron giornaliero 02:30, retention 14gg) |
| Cloudflare | proxy arancio su git/zomas.net/zomas.org, SSL Full (strict), Universal SSL, CAA a posto |
Warning Gitea: TUTTI RISOLTI
https://(null)/→ colpa diRequestHeader set Host %{HTTP_HOST}ein Apache (Host vuoto). Rimosso, bastaProxyPreserveHost On.- Deprecazioni
[mailer].MAILER_TYPE/HOST/IS_TLS_ENABLED/SKIP_VERIFY→ opzioni moderne (PROTOCOL=smtp+starttls,SMTP_ADDR,SMTP_PORT). Log: "NESSUNA deprecazione residua".
3. Errori incontrati e soluzioni (utile se si ripete)
(null)nel warning →RequestHeader set Host %{HTTP_HOST}esovrascrive Host con vuoto (variabile senza valore). Fix: riga rimossa.- Server SSH non partiva → Gitea default
START_SSH_SERVER=false(usa OpenSSH esterno). Config:START_SSH_SERVER=true+SSH_LISTEN_HOST=0.0.0.0. Con built-in, l'utente SSH è il RUN_USER di Gitea =gitea(NONgit, NON zomas): remote =[email protected]:zomas/tacticus.git. git@"Permission denied" → normale: il client SSH deve usaregitea@. Config in~/.ssh/config:Host git.zomas.net → HostName 145.239.94.49, Port 2222, User gitea.- Cloudflare non passa TCP 2222 → il record proxied serve solo 80/443;
per SSH si punta all'IP origine via
HostName 145.239.94.49. - SSH rifiuto public key "invalid \r" → il
.pubfiniva con CRLF; STRIPPARE\rprima di POST all'APIPOST /api/v1/user/keys. - Backup "permission denied" →
gitea dumpgira come utentegitea, che non può scrivere in/var/backups/gitea(root). Fix: dump in/tmp, poimvda root. - Sole IPv6 da questo PC →
git.zomas.netrisolve solo IPv6 (anycast CF); per curl ok, per ssh serve IP IPv4 esplicito.
4. Credenziali / segreti (NON committare)
/home/zomas/vps-admin/vps_ssh.env—VPS_*,TOKEN_CLOUDFLARE,GITEA_TOKENbot/.env— chiavi API Tacticus + token bot Telegram (niente nel repo)- Il repo
tacticus.gitNON contiene segreti (verificato:.env,vps_ssh.env,risultati.txt, script setup esclusi da.gitignore).
5. Comandi utili
# SSH git (da questo PC)
git -C /home/zomas/tacticus remote -v # [email protected]:zomas/tacticus.git
git -C /home/zomas/tacticus push # aggiorna il remote
# Backup manuale (da root sul VPS)
/usr/local/sbin/backup_gitea.sh
ls -lh /var/backups/gitea/ # retention 14 giorni
# Stato servizi
systemctl status gitea apache2 cron # VPS
ss -tlnp | grep -E ':(2222|3000)\b'
6. PROSSIMI PASSI (cambio di ambito dell'utente)
- (Opzionale) Download automatico dei backup VPS sul PC locale (ora solo sul VPS).
- (Opzionale) Girare il repo
tacticusda privato a pubblico + aprire contributi. - (Opzionale)
daily.py --fresh(proposta rimasta aperta dal 31 ago, mai richiesta).