Avvio rapido
Un server, un comando. L'installer prepara tutto il resto: database, archivio dei file, certificati HTTPS, backup giornalieri e il comando candydati per gestire l'installazione.
Cosa ti serve
- Un server Linux: consigliati Ubuntu 22.04 o successivo, oppure Debian 12 o successivo.
amd64oarm64. Almeno 2 vCPU, 4 GB di RAM e 40 GB di disco: bastano per un piccolo team (pochi recruiter, centinaia di candidature al mese). Per esempio Hetzner Cloud CX23 o CAX11 (Arm), oppure OVHcloud VPS-1, circa 5–7 € al mese a ottobre 2026 (verifica il prezzo attuale; non abbiamo affiliazioni). Lo stack usa circa 850 MB a riposo e 1,3 GB sotto carico: 2 GB bastano a un piccolo team senza import grandi, 4 GB sono consigliati. - Le porte 80 e 443 aperte verso internet. Tieni chiuso tutto il resto tranne SSH.
- Un nome di dominio che punta al server, prima di installare. Crea un record DNS
A(eAAAAse il server ha IPv6) per il nome che vuoi, per esempioats.example.com, con l'indirizzo pubblico del server. Il certificato HTTPS è emesso in automatico da Let's Encrypt tramite Caddy, e funziona solo quando il nome risolve. - Un account email per l'invio: una chiave API di Resend, oppure le credenziali SMTP di qualsiasi fornitore, compresa la casella aziendale (Google Workspace, Microsoft 365, Aruba, Register.it, OVH...). Vedi Email.
- Facoltativo: una chiave API di un fornitore di AI, per l'assistente.
Non servono Cloudflare né altri account.
Installa
Collegati al server via SSH ed esegui:
curl -fsSL https://github.com/fabrilallo/candydati/releases/latest/download/install.sh | sudo bashL'installer:
- installa Docker se manca;
- chiede:
- il dominio (per esempio
ats.example.com); - il nome mostrato nell'interfaccia e nelle email (predefinito
Candydati); - l'email dell'amministratore;
- la lingua predefinita (
itoen); - il fornitore email:
resend(chiave API) osmtp(host, porta, sicurezza, utente, password), e il l'indirizzo mittente (predefinito: l'utente SMTP se è un indirizzo, altrimentinoreply@<dominio>); - l'AI, facoltativa: un modello nella forma
fornitore/modelloe la sua chiave API. Premi Invio per saltare;
- il dominio (per esempio
- controlla che il dominio punti a questo server (solo un avviso: puoi proseguire);
- genera tutti i segreti e li scrive in
/opt/candydati/.env, leggibile solo da root (chmod 600); - scarica le immagini e avvia tutto, con HTTPS automatico e backup giornalieri;
- stampa il link per creare il primo account, con il codice di setup monouso già dentro.
Crea il primo account
- Apri il link stampato dall'installer (
https://<tuo dominio>/signup?setup#code=...): il codice di setup è già compilato. - Inserisci i tuoi dati: entri subito, senza email di conferma.
- Crea la tua organizzazione.
La registrazione è solo su invito: da qui in poi le persone entrano con gli inviti mandati dall'app. Il codice vale solo per il primissimo account: dopo non apre più nulla, e non c'è niente da togliere.
Controlla che funzioni
candydati statusDopo un minuto o due tutti i servizi devono essere avviati e sani. Da qualsiasi computer, https://<tuo dominio>/api/ready risponde con lo stato del database, dell'archivio e della coda. Poi mandati un'email di prova dall'app e leggi Gestione quotidiana per aggiornamenti e backup.
Installare senza domande
Per l'automazione (cloud-init, Ansible, uno script), passa le risposte come variabili d'ambiente e imposta CANDYDATI_YES=1. Usa sudo -E perché le variabili arrivino all'installer:
export CANDYDATI_DOMAIN=ats.example.com
export CANDYDATI_NAME="Lavora con noi"
export CANDYDATI_ADMIN_EMAIL=hr@example.com
export CANDYDATI_LOCALE=it
export CANDYDATI_EMAIL_PROVIDER=resend
export RESEND_API_KEY=re_...
export CANDYDATI_SENDER=jobs@example.com
export CANDYDATI_YES=1
curl -fsSL https://github.com/fabrilallo/candydati/releases/latest/download/install.sh | sudo -E bash| Variabile | Significato |
|---|---|
CANDYDATI_DOMAIN | nome host dell'installazione |
CANDYDATI_NAME | nome mostrato nell'interfaccia e nelle email (predefinito Candydati) |
CANDYDATI_ADMIN_EMAIL | email dell'amministratore |
CANDYDATI_LOCALE | lingua predefinita: it o en |
CANDYDATI_EMAIL_PROVIDER | resend o smtp |
RESEND_API_KEY | con resend |
SMTP_HOST, SMTP_PORT, SMTP_SECURE, SMTP_USER, SMTP_PASSWORD | con smtp |
CANDYDATI_SENDER | indirizzo mittente delle email (scritto come EMAIL_FROM_LOCAL ed EMAIL_DOMAIN) |
AGENT_MODEL, FAST_MODEL e la chiave del fornitore (per esempio OPENAI_API_KEY) | AI facoltativa, vedi Assistente AI |
CANDYDATI_VERSION | versione da installare (predefinita: l'ultima release) |
CANDYDATI_DIR | cartella di installazione (predefinita /opt/candydati) |
CANDYDATI_YES=1 | non chiede mai nulla: si ferma se manca qualcosa di obbligatorio |
Se lo esegui di nuovo
Su un server dove Candydati è già installato, l'installer non cambia nulla e ti dice di usare candydati update. La configurazione e i dati non vengono mai sovrascritti.
Conserva una copia dei segreti
/opt/candydati/.env contiene tutti i segreti dell'installazione: le password del database e dell'archivio, la chiave che firma le sessioni, le credenziali email. Copialo nel tuo gestore di password. Se in seguito imposti una passphrase di cifratura dei backup, conservala lì: senza, i backup cifrati non si possono ripristinare.