Installare una nuova istanza di Chi Fa Cosa senza toccare Docker
Come creare un nuovo sito Chi Fa Cosa configurando database e account amministratore direttamente dal browser, invece di compilare variabili d'ambiente prima ancora di partire — con un solo comando da terminale: la creazione dell'utente del database.
Progetto: Chi Fa Cosa — piattaforma "link in bio" white-label
Serve: un server con Docker + Portainer, un database MySQL/MariaDB raggiungibile
Non serve: un dominio — funziona anche solo con IP:porta
Cos'è Chi Fa Cosa
Una piattaforma "link in bio" white-label: ogni installazione è un sito indipendente con il proprio nome, i propri profili, la propria identità — pensata sia per artisti/band sia per attività come ristoranti (menù, eventi, prenotazioni). "Chi Fa Cosa" è il nome del software, non di un dominio specifico: la stessa base di codice gira dietro a domini completamente diversi, ognuno configurato la prima volta che si apre il sito.
Perché questo metodo
Finora ogni nuova installazione richiedeva di compilare le variabili d'ambiente del container Docker (host/nome/utente/password del database) prima di poter aprire il sito — un ostacolo per chi vuole solo provare rapidamente una nuova istanza. Ispirandosi al modo in cui WordPress lascia configurare tutto dalla pagina di installazione nel browser, ora è possibile fare lo stesso qui: si avvia il container senza nessuna variabile del database, e la pagina di installazione (install.php) chiede tutto lei — inclusa la creazione automatica di database e tabelle.
Nota: le installazioni esistenti che già usano le variabili d'ambiente continuano a funzionare esattamente come prima — questo è un metodo alternativo, non una sostituzione.
Passo 1 — Il file da incollare
Su Portainer: Stacks → Add Stack, scegli Web editor (non "Git repository" — quel metodo usa il file condiviso del repository, che ha ancora dei valori di default per compatibilità con le installazioni più vecchie) e incolla:
Personalizza container_name, i nomi dei volumi e la porta (8899:80) prima di fare deploy — usa una porta libera sul tuo server.
Passo 2 — Creare l'utente del database
L'unico comando da terminale rimasto. Il wizard può creare da solo database e tabelle, ma non un utente del server MySQL — è un'operazione amministrativa volutamente esclusa dal wizard, altrimenti chiunque raggiungesse la pagina di installazione potrebbe creare utenti sul database a piacere.
Da restringere per un uso reale: questo comando dà all'utente accesso a tutti i database sul server (comodo per il test, perché lascia creare database nuovi al wizard), non solo a quello nuovo. Su un server condiviso da più siti, per un'installazione reale è meglio creare tu stesso il database vuoto e limitare i permessi a quello soltanto:
Passo 3 — Il wizard, passo passo
Apri http://IP-DEL-SERVER:8899/install.php — nessun dominio necessario, funziona anche solo con l'indirizzo IP del server e la porta scelta.
Configurazione Database — host myband_db (o il nome del tuo container database), nome database a scelta, utente e password appena creati. Se il database non esiste ancora, viene creato lì per lì.
Le tabelle si creano da sole — il wizard scarica la struttura ufficiale del database e la applica: nessun file SQL da importare a mano.
Configurazione Iniziale — nome del sito, email e password dell'account amministratore: l'ultimo passo, identico a prima.
Fatto — redirect automatico al login. Il sito è pronto; un dominio vero, se e quando vorrai, si collega in un secondo momento tramite il proxy inverso.
Attenzione se la condividi
Non incollare mai credenziali o IP reali nei tuoi appunti pubblici — usa segnaposto come quelli di questa guida.
Il comando "largo" del Passo 2 (GRANT ALL ... ON *.*) va bene per un test rapido, non da consigliare senza avvertenze a chi gestisce un server condiviso da più siti — vedi sopra la versione ristretta.
Chiunque raggiunga install.php prima di te può completare l'installazione (creare l'account admin) — su un'istanza di test pubblicamente raggiungibile, completa il wizard subito dopo il deploy, non lasciarlo aperto.
Limiti da conoscere
La creazione automatica delle tabelle scarica la struttura da GitHub al momento dell'installazione: serve una connessione internet in uscita dal server. Se manca, un messaggio lo segnala e resta possibile importare database/schema.sql a mano, come in passato.
Questo metodo funziona solo quando il container parte senza nessuna variabile d'ambiente del database — se anche una sola è impostata, il wizard salta questo passaggio e si comporta come le installazioni "classiche".
Il file di configurazione scritto dal wizard vive su un volume Docker dedicato, non dentro al checkout del repository — sopravvive ai redeploy, a differenza di una cartella interna allo stack.