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.
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
# 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).
|
||||
Reference in New Issue
Block a user