Guida ufficiale all'installazione di Discourse | Installazione della piattaforma cloud di Discourse

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.

:bell: 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

:bell: 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.com o forum.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 A nel 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.

Email

:warning: 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.com per 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 pacchetto yum-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 di fail2ban, 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)
  • Se desideri installare un firewall di default, abilita ufw su Ubuntu segui questa guida oppure, su CentOS/RHEL 7 e versioni successive, utilizza firewalld.

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)
5 Mi Piace

La traduzione è ottima, complimenti! Speriamo che l’ufficiale offra un accesso multilingue.

1 Mi Piace

Grazie.

Anche noi, usando Discourse, abbiamo notato che ci sono pochi contenuti in cinese, ma questa piattaforma è comunque molto valida.

L’installazione presenta una lieve difficoltà e alcuni prerequisiti: non è possibile installarla su una macchina generica.

Tuttavia, è generalmente possibile aggirare questi ostacoli con successo, quindi abbiamo deciso di inviare alcune delle nostre pubblicazioni interne alla versione ufficiale.

Il team ufficiale è molto disponibile e aperto, anche se non è ancora chiaro come organizzare al meglio i contributi, il che rende l’aspetto leggermente disordinato.

Col tempo, invieremo anche gli articoli che abbiamo già pubblicato alla versione ufficiale.

3 Mi Piace

C’era un forum cinese, ma sembra che sia fallito all’inizio dell’anno.

Ricordo di aver visto questo prima, e durante l’installazione ho consultato alcuni dei loro articoli.

Probabilmente il vecchio moderatore non aveva più tempo per mantenere il sito; dopo tutto, gestire un sito web richiede sia tempo che risorse economiche.

Poiché non eravamo molto familiari con Discourse, abbiamo sempre utilizzato Discuz. Tuttavia, da quando Tencent ha acquisito DISCUZ anni fa, non è stato aggiornato, presentando molti problemi e rendendo impossibile l’aggiornamento.

Abbiamo quindi cercato un’alternativa e abbiamo scoperto Discourse; dopo averlo installato e utilizzato, ne siamo rimasti soddisfatti.

Abbiamo deciso di condividere alcune delle nostre esperienze nella nostra sezione dedicata: iSharkFly - 飞鲨

Col tempo, ci siamo resi conto che le risorse in cinese sono davvero scarse, quindi abbiamo pensato di condividere qualcosa anche sul forum ufficiale.

Mantenere attivo un sito web non è affatto facile. :slight_smile:

Speriamo che molti più utenti adottino Discourse; più persone lo utilizzano, più diventa vivace e interessante.

1 Mi Piace

@fantasticfears Sembra proprio che sia il proprietario del sito cinese… però l’ultima visita risale al 2019. Non so se abbia dimenticato di rinnovare il server o per qualche altro motivo, ma il sito cinese è sparito all’improvviso.

Forse non hanno avuto tempo di occuparsene.

Non importa, passa il tempo sul forum ufficiale. Hehe.

Per una comunità cinese in cui gli utenti sono principalmente cinesi, la localizzazione di Discourse è ancora piuttosto carente. Dopo tutto, le abitudini d’uso degli utenti sono diverse.

È la verità, tutti quelli che usano il metodo di traduzione tramite mappatura delle stringhe hanno questo problema.

Le stringhe tradotte e l’ordinamento risultano piuttosto strani.

Tuttavia, ritengo che Discorse sia comunque ottimo, specialmente per il caricamento degli allegati, che è comodissimo.

Il contenuto è in formato Markdown: sebbene per gli utenti comuni presenti una certa curva di apprendimento, è comunque sufficiente.

La cosa più importante è che i dati e l’archiviazione sono separati. Questo merita davvero un plauso: spazio per gli allegati praticamente illimitato, CDN integrata e backup che non devono preoccuparsi degli allegati. Per chi ama fare screenshot, è semplicemente fantastico.

1 Mi Piace

La community OSSEZ ha modificato il nome di dominio e questo articolo è stato pubblicato all’indirizzo: Discourse 云平台安装 - Discourse - iSharkFly.

1 Mi Piace

Ho aggiunto il capitolo Ottimizzazione per l’ambiente di rete cinese.

3 Mi Piace