Files
homepage-nuova/STATO_SESSIONE_2026-09-01.md
T
zomas f5c763be7b Gitea theme: capital theta (circle+H) logo + homepage senza badge
- 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.
2026-09-01 16:54:15 +02:00

92 lines
4.0 KiB
Markdown

# 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 di `RequestHeader set Host %{HTTP_HOST}e` in Apache
(Host vuoto). Rimosso, basta `ProxyPreserveHost 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)
1. **`(null)` nel warning** → `RequestHeader set Host %{HTTP_HOST}e` sovrascrive Host
con vuoto (variabile senza valore). Fix: riga rimossa.
2. **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`** (NON `git`,
NON zomas): remote = `[email protected]:zomas/tacticus.git`.
3. **`git@` "Permission denied"** → normale: il client SSH deve usare `gitea@`.
Config in `~/.ssh/config`: `Host git.zomas.net → HostName 145.239.94.49,
Port 2222, User gitea`.
4. **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`.
5. **SSH rifiuto public key "invalid \r"** → il `.pub` finiva con CRLF; STRIPPARE `\r`
prima di POST all'API `POST /api/v1/user/keys`.
6. **Backup "permission denied"**`gitea dump` gira come utente `gitea`, che non
può scrivere in `/var/backups/gitea` (root). Fix: dump in `/tmp`, poi `mv` da root.
7. **Sole IPv6 da questo PC**`git.zomas.net` risolve 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_TOKEN`
- `bot/.env` — chiavi API Tacticus + token bot Telegram (niente nel repo)
- Il repo `tacticus.git` NON contiene segreti (verificato: `.env`, `vps_ssh.env`,
`risultati.txt`, script setup esclusi da `.gitignore`).
---
## 5. Comandi utili
```bash
# 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 `tacticus` da privato a pubblico + aprire contributi.
- (Opzionale) `daily.py --fresh` (proposta rimasta aperta dal 31 ago, mai richiesta).