Repository navigation
Noises 2.0.0
Novità
Database PostgreSQL
Utenti, sessioni, inviti e registro di accessi e attività passano da SQLite a PostgreSQL.
- Nuovo servizio
db(postgres:17-alpine) nelcompose.yaml, con un suo volume (noises-pg) e nessuna porta pubblicata: il database è raggiungibile solo da Noises. Noises parte quando il database è pronto. - Migrazione automatica: al primo avvio, se PostgreSQL è vuoto e c'è ancora il vecchio
noises.db, il suo contenuto (utenti, sessioni, token, inviti, registro) viene importato e il file rinominato innoises.db.migrated, che resta come copia di sicurezza. Gli utenti restano collegati. - Più robusto con più utenti insieme: due registrazioni contemporanee non possono diventare entrambe "il primo utente" (amministratore), e un link di conferma o di reset si può usare una volta sola anche con richieste simultanee.
Richieste d'invito
Con la registrazione chiusa, nella pagina di accesso può comparire il link Richiedi un invito (ALLOW_INVITE_REQUESTS=true).
- Chi non ha un account lascia nome, email e un messaggio facoltativo.
- Tutti gli amministratori ricevono un'email con un link che apre Amministrazione → Richieste dopo l'accesso.
- Approva crea l'invito (7 giorni) e lo manda a chi l'ha chiesto, nella sua lingua; Rifiuta non manda nulla.
- Il numero di richieste in attesa compare sulla scheda, nel menu dell'account e con un pallino sull'avatar.
- Protezioni contro gli abusi: la risposta non rivela se l'indirizzo è già registrato, una sola richiesta in attesa per indirizzo, al massimo 3 richieste all'ora per IP (20 in totale), richieste ignorate per 30 giorni dopo un rifiuto.
Interfaccia
- Favicon con il logo di Noises (anche icona per la schermata Home di iPhone e nelle pagine dei link pubblici).
- Lingua: si usa la prima tra italiano e inglese nell'elenco delle lingue preferite del browser, non solo la lingua dell'interfaccia del browser.
- Amministrazione più leggibile: caratteri più grandi, sulla stessa scala delle schermate di accesso e registrazione (che diventano un po' più compatte). Su telefoni e tablet i campi restano a 16 px per evitare lo zoom automatico di iOS.
- Versione in fondo al menu dell'account (visibile solo dopo l'accesso).
Correzioni
- Email: nomi e messaggi inseriti dagli utenti vengono inseriti nell'HTML delle email come testo, senza essere interpretati.
Aggiornamento ⚠️
Questa versione richiede il nuovo servizio db: aggiorna anche il compose.yaml (è nel repository) e aggiungi la password del database al .env.
git pull
echo "POSTGRES_PASSWORD=$(openssl rand -hex 24)" >> .env # solo lettere e cifre
make up # compilazione locale
# oppure, con l'immagine della CI:
make pullAl primo avvio i dati di noises.db vengono importati da soli: nel log compare importato noises.db in PostgreSQL: …. Brani, progetti, scalette e link pubblici restano dove sono (volume noises-data).
Nuove variabili nel .env:
POSTGRES_PASSWORD(obbligatoria): password del database.ALLOW_INVITE_REQUESTS(facoltativa, predefinitafalse): link Richiedi un invito nella pagina di accesso.
Se usi un docker-compose tuo invece di quello del repository, aggiungi un PostgreSQL e passa a Noises DATABASE_URL=postgres://utente:password@host:5432/database.
Per i backup ora serve anche il dump del database, ad esempio docker exec noises-db pg_dump -U noises noises > noises.sql.
What's new (English)
- PostgreSQL replaces SQLite for accounts, sessions, invites and the activity log. New
dbservice incompose.yaml(no published port). On first start an existingnoises.dbis imported automatically and renamed tonoises.db.migrated. - Invite requests (
ALLOW_INVITE_REQUESTS=true): with sign-up closed, a Request an invite link on the sign-in page; admins get an email and approve or reject in Administration → Requests; approving sends the invite. Rate-limited, no account enumeration, 30-day cooldown after a rejection. - Favicon from the Noises logo; language picked from the browser's preferred languages; larger text in the administration panel (same scale as the sign-in screens); version shown at the bottom of the account menu.
- Fix: user-provided names and messages are HTML-escaped in emails.
Upgrading compose.yaml (git pull), add POSTGRES_PASSWORD=$(openssl rand -hex 24) to .env, then make up or make pull. Data is migrated on first start. Back up the database too (pg_dump).
🤖 Generated with Claude Code