Repository navigation
Releases: garzuu/OtterRoute
Releases · garzuu/OtterRoute
Release list
v0.1.2
Aggiunto
- Interfaccia in italiano e inglese: selettore nel menu utente e nella schermata di accesso (lingua del browser al primo accesso, poi la scelta salvata), date e numeri nel formato della lingua, messaggi d'errore comuni e descrizioni dei permessi tradotti, link «?» alla guida nella lingua scelta. I messaggi dinamici del server (con nomi e numeri) restano in italiano.
- Backup e ripristino dal pannello: un file
.otrbakcifrato (AES-256-GCM, Argon2id) con utenti, chiavi, certificati e configurazione; ripristino con controllo preventivo, rifiuto di backup di versioni più recenti, copia dello stato precedente e riavvio del nodo. Scopeusers:manage. - Notifiche (email/Telegram) anche per nuove versioni, rollback di un aggiornamento e certificati in scadenza o scaduti, compresi quelli caricati a mano. Le notifiche di versione seguono l'interruttore del controllo aggiornamenti.
- Indirizzi ammessi per il pannello in HTTPS: elenco di IP e reti CIDR (Impostazioni → Pannello in HTTPS,
PUT /api/admin-allow); gli altri ricevono 404, la porta locale resta sempre aperta e dal pannello HTTPS non ci si può escludere da soli. - Metriche Prometheus per immagini al volo, link firmati, certificati (scadenza e stato di servizio), emissioni ACME, controlli e aggiornamenti, più
otterroute_build_info. Query e allarmi di esempio nella guida.
Modificato
- Rilascio: l'immagine Docker non ricompila più il codice (in emulazione arm64 richiedeva circa un'ora): usa i pacchetti già costruiti e firmati dal job dei binari (
Dockerfile.release). IlDockerfileper costruire dai sorgenti non cambia.
Corretto
- Controllo versioni: tra due pre-release con lo stesso numero (
rc1,rc2) il nodo sceglieva la più vecchia e non vedevarc2come aggiornamento. Ora il confronto segue semver (rc2>rc1,rc10>rc2, la finale batte ogni rc). - Auto-aggiornamento a una pre-release: il binario di una release dichiara ora la versione del tag (es.
0.1.2-rc1), altrimenti il nodo rifiutava l'aggiornamento («non dichiara la versione»). Trovato provando l'aggiornamento dal vivo da 0.1.1 av0.1.2-rc1. - Guida: dietro Cloudflare (nuvola arancione) l'emissione ACME non «fallisce» sempre; riesce se la sfida non viene reindirizzata a HTTPS. Aggiunti i passi per farla passare.
Note
- Da una
0.1.1l'auto-aggiornamento porta alla0.1.2finale. Le pre-release (0.1.2-rc*) non sono raggiungibili con l'auto-aggiornamento dalla0.1.1: il confronto delle versioni è stato corretto in questa release. - L'immagine Docker si costruisce ora dai pacchetti già firmati (build di rilascio da circa un'ora a circa dieci minuti).
v0.1.2-rc3
Vedi il CHANGELOG.
v0.1.2-rc2
Vedi il CHANGELOG.
v0.1.2-rc1
Vedi il CHANGELOG.
v0.1.1
Aggiunto
- Auto-aggiornamento del binario (installazioni
binaryeservice): Aggiorna ora dal pannello ootterroute --self-update. Scarica solo da GitHub, verifica SHA-256 e firma Ed25519 (chiave pubblica nel binario), prova il nuovo eseguibile (--version,--self-check), salva un backup dello stato, sostituisce eseguibile, pannello e guida, si riavvia conexece, se per 3 avvii non arriva la conferma, torna alla versione precedente. Opzionale e spento di default: applicazione automatica delle sole versioni di correzione in una finestra oraria. - Controllo delle nuove versioni: una richiesta al giorno alle release di GitHub (spegnibile con
OTR_UPDATE_CHECK=off), avviso nella campanella, scheda Aggiornamenti in Impostazioni con i passi per Docker, servizio, binario e sorgenti, avviso «aggiornato da A a B» e avviso di rollback. - Pannello in HTTPS: il pannello si può servire anche su un dominio del nodo con il suo certificato (Impostazioni → Pannello in HTTPS), con redirect da HTTP, cookie
Securee la porta locale sempre attiva. scripts/install.sh(verifica checksum e firma, crea utente e servizio systemd),--healthcheckeHEALTHCHECKnell'immagine Docker,SHA256SUMS, firme einstall.shtra gli asset di ogni release.- Guida: pagine Docker e Pannello in HTTPS, sezione Aggiornamenti riscritta per tipo di installazione, diagrammi SVG.
Note
- La
0.1.0non contiene l'auto-aggiornamento: per arrivare alla0.1.1da una0.1.0l'aggiornamento è manuale (o conscripts/install.sh).
v0.1.0
Aggiunto
- Immagini al volo (
?w=&h=&fit=&fmt=&q=): ridimensionamento e conversione in WebP/JPEG/PNG per instradamento, varianti in cache, originale scaricato una sola volta, limiti di dimensione, pixel e tempo, esecuzione a concorrenza limitata. - HTTPS automatico: certificati gratuiti per i domini verificati (ACME, sfida HTTP-01) con rinnovo 30 giorni prima della scadenza, listener TLS con scelta per nome (SNI), redirect HTTP → HTTPS per dominio, caricamento di certificati propri, stato nella tabella Domini e avvisi/notifiche. Nuove opzioni
OTR_HTTPS_LISTEN,OTR_ACME_DIRECTORY,OTR_ACME_CA_ROOT. - Link firmati con scadenza (
?exp=&sig=, HMAC-SHA256 con la chiave del nodo): per instradamento, verificati prima della cache, con creazione dal pannello, rotazione della chiave e passo dedicato nella Diagnosi. - Gateway di sola lettura per bucket S3 privati: instradamento per host e prefisso, firma SigV4, cache su disco con una sola richiesta allo storage per oggetto,
ETag/Range/rivalidazione. - Pannello web: domini verificati davvero (DNS + richiesta al nodo con prova), bucket, instradamenti, configurazione guidata, statistiche e
/metricsPrometheus. - Utenti con ruoli e scope, verifica in due passaggi (TOTP) con codici di recupero, registro delle attività.
- Notifiche email (SMTP) e Telegram sui cambi di stato degli avvisi, con soglia per canale, attesa, promemoria e ripristino.
- Svuotamento (file o instradamento) e precaricamento della cache dal pannello.
- Pagina Diagnosi: segue il percorso di un URL (DNS, nodo, instradamento, cache, storage, risposta) e dice dove si ferma, con report copiabile.
- Guida in italiano e inglese (VitePress) con schede per 6 provider DNS e 7 provider S3, servita anche offline su
/docs/. - Immagine Docker e binari per Linux e macOS.
Limiti noti
- I certificati automatici usano solo la sfida HTTP-01 (niente jolly) e richiedono la porta 80 raggiungibile da Internet.
- Le immagini al volo non supportano AVIF né SVG; le GIF animate diventano un'immagine statica.
- L'emissione dei certificati è provata contro un server ACME di test (Pebble), non su domini reali in produzione; il rinnovo automatico non è stato provato oltre la logica delle scadenze.
- Le schede dei provider si basano sulla documentazione ufficiale e non sono state provate con account reali.
v0.1.0-rc3
Vedi il CHANGELOG.