Installazione di Discourse su un VPS self-hosted: un processo con FAQ

Un processo specifico passo dopo passo per i principianti per installare Discourse. Dalla scelta del server giusto alla sua configurazione, passando per SMTP, DNS e facendo tutto nell’ordine corretto. A causa di un processo manuale così complesso con molti rami e molte opzioni, ho molti dubbi e ho sentito dire che molte configurazioni vanno male se non eseguite con cura. Voglio fare le cose per bene e sarei grato se qualcuno potesse correggermi. Procederò con il maggior numero di passaggi possibile e mi fermerò quando sarò bloccato. Questa può essere una pagina utile con i principali dubbi riassunti in modo esaustivo in un unico punto

Obiettivo: Installare Discourse su un VPS self-hosted per un forum che inizia con 100 utenti/mese

1) Tra le 2 guide ufficiali disponibili, sto scegliendo quella semplice. Quali problemi potrei incontrare? Non è adatta per flessibilità/espansione futura?
Installazione di base semplice in 10 minuti: Guida di installazione Docker per principianti
Installazione potente, flessibile, su server grandi/multipli: Guida di installazione Docker avanzata

2) È questo un buon ordine di configurazione? i) Configurare e noleggiare un VPS > ii) SMTP > iii) Dominio e DNS > iv) Installare Discourse

3.1) Riguardo a Dominio e DNS, ho già un sito web con il mio dominio personalizzato. Non sono sicuro di cosa dovrei fare; sottodominio o nameserver figlio? Ho controllato ma non capisco

3.2) Anche se non ora, se necessario, un forum Discourse può essere collegato a un dominio puro come example.com giusto (se ovviamente non è utilizzato)? Non deve essere necessariamente un sottodominio come forum.example.com giusto? Perché la guida di Discourse dice solo “Crea un record DNS - A che punti il tuo sottodominio (es. forum.example.com) all’indirizzo IP del tuo server”

4.1) Riguardo a SMTP: Sono completamente confuso qui. Riguardo ai login degli utenti, questo è il mio obiettivo Connect User logins from my Wix site for my Discourse forum Per assicurarmi questo, cosa dovrei fare?
4.2) Non ho ancora configurato un’email aziendale, ma posso farlo ora da Hostinger. Questo ha molto a che fare con SMTP? Riguardo a SMTP ho sentito parlare su questo forum di MailGun, MailJet e Brevo. Che cosa significa?

5) Scegliere e configurare il VPS: Contabo e Hetzner erano i più economici sembrando piuttosto affidabili, se scegliessi il più economico Contabo, mi perderebbe qualcosa di utile? sono sicuri giusto? (Volevo confrontare tutta la configurazione con Hetzner ma non sembra nemmeno lasciarti vedere le opzioni di configurazione senza inserire i tuoi dati, carta di debito e revisionare i tuoi AC?? Il massimo che ho sono le screenshot di @Lilly)
5.1) Pannello: Contabo mostra Webmin e Webmin + LAMP inclusi. cPanel è mostrato come un addon costoso. Ho sentito parlare di cPanel, non ne ho bisogno giusto?
5.2) Sistema operativo: Contabo mostra Ubuntu incluso senza dire nulla al riguardo, è sufficiente? (La configurazione di Digital Ocean mostra opzioni accanto al loro Ubuntu es. 24.04 (LTS) x64

5.3) Un mucchio di app sono mostrate come incluse. Se trovi problemi con qualsiasi cosa fammelo sapere

5.4) Le seguenti selezioni predefinite vanno bene? Posso gestire senza addon giusto?

5.5) IPv6 non è mostrato nella configurazione, anche se nella pagina del piano VPS viene pubblicizzato ‘Indirizzi IPv4 e IPv6 dedicati inclusi in ogni piano’. Mi chiedo se lo abbia o meno
5.6) Ho sentito alcune critiche negative riguardo a Contabo, cosa pensano le persone qui che hanno avuto esperienza con Contabo?

5.7) Le seguenti specifiche buone sono il minimo disponibile e a prezzi ottimi! Solo per sapere, (nel caso cambiassi VPS) dato che Discourse consiglia 2GB, non è 4GB superfluo? Cos'è uno snapshot?

Screenshot 2026-07-18 004447

Se sei un principiante, segui la guida per principianti. Non correre più del necessario.

Personalmente, mi assicuro che il mio SMTP funzioni correttamente (ho le chiavi API e quant’altro) con i DNS puntati al mio IP, e poi procedo a completare la configurazione di Discourse, perché la procedura guidata di configurazione si lamenterebbe se i DNS non fossero al 100% corretti e ti troveresti in una situazione difficile.

Non sono sicuro di cosa intenda il tuo provider qui. Forse intendono “sottodominio”? In tal caso, aggiungi l’IPv4 del tuo VPS.

Sì, un indirizzo è un indirizzo. Può essere x.example.com, example.com, x.y.example.com, o anche example.com/x/ (con alcune configurazioni avanzate).

Avrai bisogno di SMTP per i riepiloghi, gli avvisi per gli amministratori, ecc., indipendentemente da DiscourseConnect.

Sembra a posto per me.

Se stai usando Cloudflare, IPv6 è probabilmente irrilevante. Se non stai usando alcun tipo di proxy e qualcuno ha una rete solo IPv6, non potrà visitare il tuo sito, ma questo è relativamente raro al giorno d’oggi (molti ISP forniscono un IPv6 “dedicato” e un IPv4 condiviso attraverso il quale possono comunque instradare il traffico).

200Mbps non è velocissimo, ma il resto è perfetto per un forum di piccole-medie dimensioni. La raccomandazione di 2GB è relativamente bassa per qualche motivo, quindi 8GB ti serviranno bene. Gestisco il mio piccolo sito su un LXC (overhead inferiore) con 8GB/6vCPU e il mio utilizzo delle risorse è basso, con picchi CPU intorno al 50-60% durante le ricostruzioni.

Gli snapshot sono fondamentalmente punti di ripristino per la tua VM, quindi se qualcosa va storto puoi tornare indietro. Non sono troppo utili quando hai backup frequenti di Discourse fuori sede (su R2 o simili), ma sono comunque un “nice to have” per qualsiasi evenienza.

ti prego, non usare le menzioni @ per le persone. davvero non ho bisogno del rumore aggiuntivo nelle mie notifiche e, in generale, è maleducazione nei forum. se vuoi usare i nomi utente senza menzionarli attivamente, metti le virgolette basse intorno a loro in modo che non inviino una notifica. lascia che le persone rispondano se leggono i tuoi post e vogliono rispondere. grazie.

in bocca al lupo per la tua nuova impresa.

Non avvicinarti nemmeno a questo per ora. Attieniti alle basi.

  1. acquista un nome di dominio con un nameserver come Namecheap. O, dato che hai già un nome di dominio che vuoi usare:

usa un sottodominio: questo è il metodo standard per installare Discourse, in modo che l’indirizzo sia qualcosa come forum.tuosito.com

  1. se non vuoi usare DiscourseID, allora acquista un servizio di email transazionale con SMTP (come Mailgun o Resend). Resend è gratuito e io lo uso.

  1. configura un droplet VPS con accesso SSH tramite il fornitore VPS che preferisci.
  2. installa Discourse seguendo lo script nella guida.

come già detto altrove, probabilmente non puoi farlo perché non hai un account Wix Enterprise. Ti preghiamo di fare le tue ricerche e informarti prima. Leggere è un requisito per essere un buon amministratore Discourse.

Il Single Sign On (SSO) non è qualcosa di cui dovresti nemmeno pensare in questo momento, dato che stai ancora imparando a configurare l’installazione self-hosted più basilare.

per modificare il file app.yml dopo l’esecuzione della configurazione iniziale, al prompt quando effettui l’accesso SSH al server digita:

cd /var/discourse
nano containers/app.yml

qui c’è un file di esempio app.yml:

Direi di non scendere proprio al limite minimo di 2 GB, a meno che tu non stia gestendo un piccolo forum con pochi utenti.

No, cPanel non è necessario.

Il servizio email aziendale offre anche un servizio di posta transazionale? So che alcuni non lo fanno. È più sicuro utilizzare servizi come Mailgun, Brevo, Amazon SES, ecc.

Altri hanno già approfondito l’argomento, ma ti linko la documentazione relativa: Configure your hosted Discourse site to run at the root or apex domain (e.g. example.com)

Detto questo, ti consiglio di optare per la soluzione normale e predefinta, ovvero utilizzare un sottodominio. Inoltre, se hai già il tuo sito principale sul dominio di primo livello, risulta chiaro che il forum appartiene a quella organizzazione e non è un sito qualsiasi in rete.

Uno snapshot è essenzialmente un backup completo dell’intero VPS. Puoi comunque effettuare regolarmente backup di Discourse nel caso qualcosa andasse storto, se l’unico servizio ospitato sul VPS è Discourse.

Oh… questo era molto importante per me ed era una delle ragioni per cui ho scelto l’auto-hosting. Se può essere risolto in seguito senza troppa difficoltà, va bene, ma mi chiedo se questa configurazione standard sarà un ostacolo in futuro? Dovrei fare qualcosa di diverso ora per permettere questa funzionalità, anche se non la implemento subito?
Il forum è solo un’estensione del mio sito principale, e devono essere unificati. Se fossero separati, creerebbe molti problemi nel mio caso.
Non so se l’SSO sia l’unica soluzione, ma voglio avere la minima separazione possibile tra il mio sito Wix e il forum Discourse.

come ho detto sopra:

e qui hai pubblicato:

che cosa sai su MiniOrange? il piano gratuito sembra essere limitato a pochi utenti, e quindi potrebbe diventare costoso per te a 49$/mese per il piano base:

la ricerca e la lettura attenta sono essenziali quando si pianifica ciò che si vuole raggiungere.

sai scrivere uno script Velo per Wix?

forse una soluzione javascript

penso che dovrai impostare un endpoint API personalizzato direttamente sul tuo sito Wix per ricevere le richieste di login da Discourse. sembra che richiederà codice javascript in un modulo Velo con un file chiamato http-functions.js.

questo intercetterà l’utente da Discourse, reindirizzerà e verificherà la loro sessione Wix collegata, genererà un payload firmato e poi sperabilmente li passerà in sicurezza nel forum.

qualcosa del genere forse:

import { ok, redirect, badRequest } from 'wix-http-functions';
import { currentMember } from 'wix-members-backend';
import crypto from 'crypto';

// scegli una stringa casuale sicura per il segreto 

const DISCOURSE_SECRET = "LA_TUA_STRINGA_SUPER_SEGRETA_QUI"; 

export async function get_discourseSso(request) {
    const query = request.query;
    const payload = query.sso;
    const sig = query.sig;

    if (!payload || !sig) {
        return badRequest({ body: "Parametri SSO mancanti" });
    }

    // valida la firma in arrivo da Discourse

    const computedSig = crypto.createHmac('sha256', DISCOURSE_SECRET).update(payload).digest('hex');
    if (computedSig !== sig) {
        return badRequest({ body: "Firma crittografica non valida" });
    }

    // controlla se l'utente è collegato a Wix

    const member = await currentMember.getMember({ fieldsets: ['FULL'] });
    
    // analizza il payload in arrivo per recuperare il nonce di tracciamento univoco

    const decodedPayload = Buffer.from(payload, 'base64').toString('ascii');
    const params = new URLSearchParams(decodedPayload);
    const nonce = params.get('nonce');

    if (!member) {
        // Se non è collegato, forzalo a collegarsi a Wix prima, poi torna qui
        const loginUrl = `https://iltuositowix.com{encodeURIComponent(request.url)}`;
        return redirect(loginUrl);
    }

    // costruisci il payload utente per Discourse

    const userPayload = `nonce=${nonce}&email=${encodeURIComponent(member.loginEmail)}&external_id=${member._id}&username=${encodeURIComponent(member.profile.nickname || member._id)}&name=${encodeURIComponent(member.contactDetails.firstName + ' ' + member.contactDetails.lastName)}`;

    // crittografa e firma il payload utente
    const base64Payload = Buffer.from(userPayload).toString('base64');
    const returnSig = crypto.createHmac('sha256', DISCOURSE_SECRET).update(base64Payload).digest('hex');

    // reindirizzali a Discourse come utente collegato
    const discourseReturnUrl = `https://iltuoforum.com{encodeURIComponent(base64Payload)}&sig=${returnSig}`;
    return redirect(discourseReturnUrl);
}

dovrai anche sostituire l’URL del tuo forum lì

ci sarà anche una configurazione DiscourseConnect ma non fare nessuna di queste cose finché non hai un forum auto-hosted effettivamente attivo e funzionante senza errori.

non sono un esperto di nessuna di queste cose e conosco a malapena Wix, quindi nessuna garanzia che questa sia la soluzione funzionante. sto solo fornendoti un esempio di un metodo proposto per dimostrare la complessità.

Qualunque IA abbia scritto questo, chiaramente non comprende che OpenID/SAML e Discourse Connect sono cose del tutto diverse, quindi non mi fiderei nemmeno delle altre affermazioni che fa.

Grazie a tutti per tutte le risposte finora :folded_hands:

Con più di 2 rappresentanti, ho verificato e confermato. La loro email aziendale copre le esigenze SMTP di Discourse, senza bisogno di un provider come MailGun. Hanno anche aggiunto una precisazione; specificando che non è destinata al marketing o all’invio massivo di email.
I limiti principali del loro piano Business Starter (contratto 1 anno a 0,79€/m):

  • Limite di invio giornaliero: 500 email al giorno.
  • Massimo destinatari per email: 200 destinatari.
  • Limite di invio mensile: Nessuno, solo il limite giornaliero.
    Le loro specifiche complete, inclusi i limiti IMAP/SMTP: Parametri e limiti di Hostinger Email
Un riassunto della chat al riguardo👆 con i dettagli se qualcuno vuole verificare ulteriormente

Vedo che stai considerando il piano Business Email di Hostinger per le tue esigenze SMTP di Discourse e vuoi assicurarti che copra tutto senza bisogno di Mailgun. Sono felice di indagare…
Puoi utilizzare l’SMTP di Hostinger Business Email per la tua configurazione Discourse e, per la comunicazione aziendale regolare e le notifiche standard del forum, non avrai bisogno di un provider separato come MailGun.
Tuttavia, è importante tenere a mente che il nostro SMTP non è progettato per il marketing o l’invio massivo di email. È principalmente destinato alla comunicazione aziendale. Se hai intenzione di inviare campagne di marketing ad alto volume o grandi quantità di posta transazionale, un servizio dedicato come MailGun sarebbe comunque la scelta migliore per quelle esigenze specifiche.

Se configuro l’email aziendale con Hostinger, ma in futuro avrò bisogno di invio massivo, posso usare ad esempio MailGun senza dover migrare/registrare una nuova email con MailGun?

Dipenderà dalla configurazione necessaria per Mailgun. Lasciate che lo confermi…
Se dovessi inviare email utilizzando solo l’SMTP di Mailgun, dovresti aggiungere record TXT aggiuntivi. I record MX non cambierebbero, quindi puoi continuare a ricevere email sul piano email di Hostinger mentre lo utilizzi.

Non l’ho capito bene, puoi spiegarmelo meglio per favore?

Immagina la tua email come una cassetta delle lettere fisica:
Ricezione (La cassetta stessa): Le tue email arrivano su Hostinger a causa dei tuoi record MX. Manterrai questi esattamente così come sono, quindi continuerai a ricevere tutta la tua posta nella tua casella di posta Hostinger.
Invio (Postino): Puoi avere più di un modo per inviare la posta. Aggiungendo un record TXT (specificamente per SPF e DKIM) al tuo dominio, stai essenzialmente dando a Mailgun il “permesso” di inviare posta per tuo conto.
Significa che non hai bisogno di migrare/registrare un nuovo indirizzo email con Mailgun. Puoi mantenere la tua casella di posta professionale su Hostinger per le chat aziendali quotidiane e usare semplicemente Mailgun come “motore di invio” per le notifiche del forum ad alto volume o le email di marketing quando sarai pronto.


Sì… MiniOrange probabilmente non è quello che cerco, in base al loro sito sembra essere un IdP di terze parti. Sto cercando di usare il mio database Wix esistente come mio IdP.

[quote=“Lilly, post:8, topic:407922”]
sai come scrivere uno script Velo per Wix?
[/quote]\nNon sono esattamente sicuro di cosa intendi per script, ma ho fatto molta codifica Velo frontend e backend su Wix, ho costruito molte funzionalità usando codice Velo da solo e con AI e tutorial, ma sono un principiante. Ho dato un’occhiata al tuo codice, mi piacerebbe provarlo dopo l’installazione. Per quanto riguarda il forum Wix, è buono (anche se non così vivace come qui) e quella domanda non è stata ancora risposta.

Finora ho; :check_mark: configurato l’email con Hostinger per SMTP (aggiornato i record DNS per questo come MX, CNAME e TXT sul mio Wix) :check_mark: ordinato un VPS e sto aspettando che venga provisionato.

Non è come installare qualche app mobile hahaha

E dovresti davvero, davvero fare i tuoi backup. E conservarli in un luogo remoto. Questo fa parte del ruolo di sysadmin. Se lasci tutto al provider di hosting, rischi di perdere tutto, e il valore della tua attività per il provider è minimo. Il valore dei tuoi dati per te e per la tua comunità è sostanziale, se stai costruendo una vera comunità in cui le persone tengono ai loro messaggi e alle loro relazioni.

Avviare una comunità significa assumere una responsabilità: se non hai le competenze per gestirla, dovresti esternalizzarle. Ciò significherebbe pagare a un’azienda affidabile per occuparsi delle cose al tuo posto: sicurezza, manutenzione, continuità, riparazione e recupero.

Con quale frequenza pensi che dovrebbero essere effettuati gli snapshot? Una volta al mese, con backup settimanali/due volte a settimana? O è eccessivo?

Personalmente, non ho mai usato gli snapshot. (Penso che siano un servizio a pagamento aggiuntivo, e non sono certo della loro utilità quando è in esecuzione un database attivo.)

Il modo in cui penso alla frequenza dei backup è: come mi sentirei nel momento in cui avrò bisogno di ripristinarlo? Se avessi perso un mese di conversazioni e contributi dei membri? Mi sentirei piuttosto male. Avevo una responsabilità verso la comunità, e ho permesso che il loro lavoro andasse perduto.

D’altra parte, se opero in una situazione di spazio su disco limitato, voglio bilanciare l’utilizzo del disco. Ciò che ho fatto nella pratica, e dovrei probabilmente rivedere, è eseguire il backup ogni due giorni e conservare quattro backup. Uno dei membri del mio team di moderatori scarica automaticamente una copia della directory di backup ogni notte, così abbiamo una copia offsite. In caso di disastro, rischiamo di perdere mezza settimana di contributi.

Dopo una esperienza negativa con il servizio di Contabo, sto valutando un’alternativa VPS con OVHcloud. Ma se non fosse adatto, dovrei accontentarmi di Contabo

1) Se scelgo una distro con app, mostra solo questa opzione limitata. Docker senza Ubuntu come opzione. Quindi dovrei evitarlo e optare per la Distro mostrando solo Ubuntu? Questo significa che posso installare Docker in seguito o è troppo complesso per me? (se questo è un punto decisivo, ignora le domande successive)

2) Per quanto riguarda i backup, è molto attraente: Backup giornalieri gestiti gratuiti? fantastico, vero?

  1. Preoccupazioni riguardo alle specifiche di OVHcloud rispetto a Contabo:
    3.1) Sono sufficienti 2 vCore?
    3.2) Dovrei chiedere informazioni sulla porta? (Contabo mostrava 200 Mbit/s)
3.3) La larghezza di banda è sufficiente? A riguardo, ecco il confronto tra Contabo e OVH:

Utilizzo OVHcloud con quelle specifiche esatte per far girare il mio piccolo forum, uso Debian e funziona alla grande.

Wow! Che bello sentirlo:) Finora ho visto così tanto Ubuntu che sembrava un requisito. Anche la guida ufficiale lo consiglia, quindi mi chiedo se Debian potrebbe creare più difficoltà a un principiante come me (in configurazioni/modifiche/ultimi aggiornamenti/resa compatibile)? O è un problema inesistente?

Semplifica la tua vita. Usa Ubuntu.

L’installazione standard richiede 30 minuti :slight_smile:

(post eliminato dall’autore)

(post eliminato dall’autore)

Non scegliere una versione con Docker preinstallato. Usate semplicemente Ubuntu o Debian standard, lo script si occuperà del resto.

Detesto Ubuntu e, a dire il vero, non sono sicuro di qual sia la differenza con Debian (a parte il fatto che è molto più gonfio) e del perché venga raccomandato così fortemente per Discourse rispetto a Debian normale. Visto che sembra che tu non abbia molta esperienza, segui semplicemente la guida di installazione standard di Ubuntu.

Grazie per aver chiarito, andrò bene se

[quote=“Gid, post:15, topic:407922”]
opto per la distribuzione mostrando solo Ubuntu? Questo significa che in seguito potrò installare Docker o è troppo complicato per me?
[/quote]\nSolo perché non era preinstallato, non mi causerà costi aggiuntivi o problemi nella gestione in futuro, giusto?

Quasi dimenticavo un’altra cosa: a differenza di altri VPS, questo non ha un pannello. Si può risolvere in modo gratuito e semplice?