Questo documento è una traduzione del contenuto disponibile su discourse/docs/INSTALL-cloud.md at main · discourse/discourse · GitHub.
La versione originale della traduzione è pubblicata su: Discourse 云平台安装 - Discourse - iSharkFly. Si invita a partecipare alla discussione.
Installazione su Piattaforma Cloud
L’installazione di Discourse su una piattaforma cloud in genere non supera i 30 minuti, anche se non possiedi alcuna conoscenza di Rails o della shell Linux. Di seguito descriviamo l’installazione tramite il provider di servizi DigitalOcean, ma tutte le procedure possono essere eseguite su qualsiasi piattaforma cloud compatibile con Docker, oppure su un server locale.
Non hai nemmeno 30 minuti a disposizione? Puoi contattare la comunità Discourse per farti aiutare nell’installazione. La comunità Discourse applica una tariffa una tantum di 150 $ (dollari americani). Clicca qui per acquistare il servizio.
Preparazione prima dell’installazione
Nome di dominio
Discourse non può funzionare con un indirizzo IP; devi possedere un nome di dominio o un sottodominio per procedere con l’installazione, ad esempio
example.com.
- Se possiedi già un nome di dominio, puoi scegliere qualsiasi sottodominio per l’installazione, ad esempio
discourse.example.com,talk.example.comoforum.example.com, per installare la tua istanza di Discourse. - Se non hai ancora un dominio, puoi visitare il sito NameCheap per cercare il dominio che preferisci, oppure effettuare una ricerca su Google per i migliori registrar di nomi di dominio e scegliere quello che ti piace.
- Dovresti avere accesso al tuo pannello di controllo DNS. Dopo aver acquistato il dominio, dovrai accedere alla configurazione DNS per impostarlo. Per il sito Discourse che stai installando, devi creare un record
Anel tuo DNS. Questo record A deve puntare il dominio che intendi utilizzare a un indirizzo IP specifico. Tale indirizzo IP è solitamente quello del server acquistato nel primo passaggio.
Il sistema di posta elettronica è fondamentale nel processo di creazione degli utenti su Discourse. Se non hai configurato un server SMTP per la posta elettronica prima di installare Discourse, la tua installazione di Discourse non sarà accessibile e non potrai accedere (AVRAI UN SITO ROTTO)!
- Se disponi già del tuo server SMTP, puoi utilizzare direttamente le informazioni di configurazione del tuo server di posta esistente.
- Non hai ancora un server di posta? Visita la pagina Server di posta consigliati da Discourse.
- Per garantire che le tue email vengano recapitate correttamente, devi aggiungere nel tuo DNS dei record SPF e DKIM validi. Consulta la documentazione del tuo provider di servizi email per sapere come configurare queste informazioni.
In base alla nostra esperienza pratica, l’installazione di Discourse richiede obbligatoriamente un dominio funzionante e un server di posta. Per quanto riguarda la Cina continentale, puoi utilizzare i servizi di posta elettronica aziendale offerti da Alibaba Cloud o Tencent Cloud. Solitamente ti consigliamo di utilizzare server di posta esteri, come AWS SES o MailGun, che sono ottimi servizi; potresti aver bisogno di una carta di credito internazionale per la verifica. Tuttavia, questo passaggio è obbligatorio, altrimenti la tua installazione di Discourse non potrà essere completata.
Installazione
Creazione di un nuovo server cloud
Crea il tuo nuovo server cloud, ad esempio su DigitalOcean; puoi naturalmente utilizzare anche server forniti da altre piattaforme.
Se scegli un server situato all’interno della Cina continentale, è probabile che tu incontri problemi di rete. Questa traduzione include un capitolo aggiuntivo per risolvere tali problemi di rete.
- La configurazione predefinita con il sistema operativo Ubuntu LTS della versione corrente funziona bene. Come minimo, è necessario un sistema operativo Linux a 64 bit e il kernel del sistema operativo deve essere aggiornato all’ultima versione disponibile.
- La configurazione predefinita con 1 GB di RAM è solitamente sufficiente per piccole comunità Discourse. Tuttavia, raccomandiamo l’uso di 2 GB di RAM per comunità di grandi dimensioni.
- La configurazione predefinita con il data center di New York è una buona scelta geografica per il Nord America e l’Europa. Se i tuoi utenti Discourse provengono principalmente da altre località geografiche, puoi scegliere un data center più vicino a te.
- Inserisci il nome di dominio
discourse.example.comper creare un Droplet su DigitalOcean (Droplet è il nome con cui DigitalOcean definisce i suoi server). Puoi anche acquistare e utilizzare il tuo dominio; solitamente l’installazione di Discourse richiede un dominio reale e non può essere eseguita tramite indirizzo IP. Ti consigliamo quindi di acquistare prima un dominio o utilizzare un sottodominio del tuo dominio esistente.
La creazione del tuo nuovo Droplet equivale alla creazione di un server su DigitalOcean, o alla creazione di un VPS o server su altre piattaforme. Al termine della creazione, riceverai un’email contenente la password dell’utente Root. Tuttavia, ti consigliamo di configurare l’uso delle chiavi SSH per migliorare la sicurezza dell’accesso al tuo server.
Accesso al tuo server cloud
Connettiti e accedi al server che hai creato utilizzando l’indirizzo IP e SSH, oppure, se utilizzi Windows, installa Putty ed esegui il seguente comando per connetterti:
ssh root@192.168.1.1
Se non hai configurato una chiave SSH, puoi accedere utilizzando la password inclusa nell’email inviata da DigitalOcean, oppure connetterti utilizzando la tua chiave SSH locale.
Installazione di Docker / Git (opzionale)
sudo apt install docker.io
sudo apt install git
Se desideri utilizzare la tua versione di Docker, puoi installarla ora sul tuo nuovo server. Se Docker non è installato di default sul tuo server, discourse-setup scaricherà e installerà automaticamente Docker da get.docker.com.
Installazione di Discourse
Clona il codice dal repository ufficiale Installazione Docker di Discourse nella directory /var/discourse del tuo computer locale.
sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
È sufficiente eseguire i comandi sopra riportati; durante l’installazione di Discourse sono necessari i privilegi di root.
Aggiunta di mirror Docker (solo per server in Cina continentale)
Se il tuo server si trova in Cina continentale, è molto probabile che tu ti blocchi durante la fase Docker nei passaggi seguenti. Prova ad aggiungere i mirror Docker.
Prendendo come esempio Tencent Cloud, modifica il file /etc/docker/daemon.json di Linux utilizzando il tuo editor preferito e aggiungi il seguente contenuto. Puoi provare a sostituire https://mirror.ccs.tencentyun.com con l’URL del mirror Docker fornito dal tuo provider di server cloud:
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com"
]
}
Dopo aver aggiunto il mirror Docker, riavvia l’applicazione Docker per applicare le modifiche utilizzando il comando sudo systemctl restart docker.
Modifica della configurazione di Discourse
Esegui lo strumento di configurazione con il seguente comando:
./discourse-setup
Devi configurare tutti i parametri seguendo le indicazioni:
Hostname for your Discourse? [discourse.example.com]:
Email address for admin account(s)? [me@example.com,you@example.com]:
SMTP server address? [smtp.example.com]:
SMTP port? [587]:
SMTP user name? [user@example.com]:
SMTP password? [pa$word]:
Let's Encrypt account email? (ENTER to skip) [me@example.com]:
I dati inseriti sopra creeranno un file app.yml per la tua istanza di Discourse; questo file configurerà la tua istanza di Discourse dopo il completamento dell’installazione. L’intero processo di avvio dell’installazione potrebbe richiedere 2-8 minuti per configurare Discourse. Se si verifica un errore durante l’installazione, o se dopo il completamento dell’installazione devi ancora modificare la tua configurazione, puoi eseguire nuovamente il comando ./discourse-setup (questo comando ricaricherà il file app.yml esistente). In alternativa, puoi modificare manualmente il contenuto del file /containers/app.yml e quindi eseguire nuovamente ./launcher rebuild app; altrimenti, le tue modifiche non avranno effetto.
Ottimizzazione per l’ambiente di rete cinese
Se il tuo server cloud si trova in Cina continentale, è probabile che tu incontri problemi di rete durante l’esecuzione di ./discourse-setup o ./launcher rebuild app. Discourse ha già configurato servizi di mirror per tutte le immagini tranne Docker; devi solo aggiungere una riga nel file containers/app.yml qui:
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.china.template.yml" # Aggiungi questa riga per configurare i mirror per i gestori di pacchetti come npm e rubygems
Questo risolverà il problema.
Avvio di Discourse
Una volta completata la configurazione iniziale, la tua istanza di Discourse dovrebbe essere accessibile tramite il browser all’indirizzo del dominio configurato discourse.example.com.
Per i server situati in Cina continentale, potresti dover prima completare la procedura di registrazione (ICP filing) secondo le istruzioni del provider di server cloud prima di procedere.
Registrazione di un nuovo account amministratore
Utilizza l’indirizzo email inserito durante la configurazione di avvio per registrare un account amministratore.
(Se non riesci a registrare il tuo account amministratore (Admin), controlla i log nel percorso /var/discourse/shared/standalone/log/rails/production.log oppure consulta l’elenco di controllo per la risoluzione dei problemi di posta elettronica.)
Dopo aver completato la registrazione dell’account amministratore, verrà avviata una procedura guidata che ti guiderà nella configurazione della tua istanza di Discourse.
Al termine di tutte le procedure guidate, vedrai gli argomenti dello staff (Staff topics) e READ ME FIRST: Admin Quick Start Guide. Questa procedura guidata di configurazione includerà alcuni consigli per le configurazioni successive e su come personalizzare la tua istanza di installazione di Discourse.
Manutenzione post-installazione
- Ti consigliamo vivamente di abilitare gli aggiornamenti automatici di sicurezza per il tuo sistema operativo. Su Ubuntu, utilizza il comando
dpkg-reconfigure -plow unattended-upgrades. Su CentOS/RHEL, utilizza il pacchettoyum-cron. - Se accedi al tuo sistema operativo utilizzando una password invece di una chiave SSH, assicurati di utilizzare una password forte. Su Ubuntu, installa il pacchetto
apt-get install libpam-cracklib. Consigliamo l’uso difail2ban, che bloccherà gli indirizzi IP che hanno fallito il login per 3 volte per 10 minuti.- Ubuntu:
apt-get install fail2ban - CentOS/RHEL:
sudo yum install fail2ban(richiede EPEL)
- Ubuntu:
- Se desideri installare un firewall di default, abilita
ufwsu Ubuntu segui questa guida oppure, su CentOS/RHEL 7 e versioni successive, utilizzafirewalld.
Quando Discourse rilascerà una nuova versione, riceverai un promemoria via email. Tieni sempre aggiornata la tua istanza di Discourse all’ultima versione per garantire che tutte le vulnerabilità di sicurezza vengano risolte. Riceverai promemoria via email quando verranno rilasciate nuove versioni di Discourse. Mantieniti aggiornato per ottenere le ultime funzionalità e le correzioni di sicurezza. Per aggiornare Discourse all’ultima versione, accedi tramite il browser a /admin/upgrade e fai clic sul pulsante di aggiornamento.
Il comando launcher nella directory /var/discourse viene utilizzato per eseguire alcune operazioni di manutenzione a livello di sistema:
Usage: launcher COMMAND CONFIG [--skip-prereqs] [--docker-args STRING]
Commands:
start: Start/initialize a container (Avvia/inizializza un container)
stop: Stop a running container (Arresta un container in esecuzione)
restart: Restart a container (Riavvia un container)
destroy: Stop and remove a container (Arresta e rimuovi un container)
enter: Use nsenter to get a shell into a container (Utilizza nsenter per accedere a una shell all'interno di un container)
logs: View the Docker logs for a container (Visualizza i log Docker di un container)
bootstrap: Bootstrap a container for the config based on a template (Avvia la configurazione e l'inizializzazione di un container basandosi su un template)
rebuild: Rebuild a container (destroy old, bootstrap, start new) (Ricostruisci un container, rimuoverà il vecchio, avvierà l'inizializzazione e avvierà il nuovo container)
cleanup: Remove all containers that have stopped for > 24 hours (Rimuovi tutti i container fermi da oltre 24 ore)
Options:
--skip-prereqs Don't check launcher prerequisites (Non verificare i prerequisiti del launcher)
--docker-args Extra arguments to pass when running docker (Argomenti extra da passare durante l'esecuzione di docker)





