Sto valutando Discourse come candidato per un forum nel mio progetto.
Sono un po’ sorpreso da quanto sia complicato far funzionare effettivamente lo stack.
Su GitHub c’è questa guida: richiede un server SMTP e un dominio.
Ho anche visto un’altra guida che illustra l’installazione dello stack direttamente sull’host. Preferirei affidarmi a Docker per configurare tutte queste dipendenze
Ciò che mi ha confuso è che la prima guida insiste molto sul fatto che servono un server SMTP e DNS, mentre questa non ne fa menzione.
Mi sembrava che, dato che tutto è dockerizzato, potessi semplicemente eseguire un Docker Compose per far partire i container di Discourse e del database (vedo che è PostgreSQL) (+ eventualmente altri container, come quelli per la cache, se Discourse li richiede). Poi, in produzione, probabilmente lo ospiterei su Kubernetes (sembra non essere così semplice, a quanto ho letto in qualche thread).
Vuoi un’installazione per sviluppo o per produzione? Se scegli la seconda opzione, consulta Installazione standard ufficiale di Discourse. L’esecuzione su k8s è possibile, ma non è semplice, poiché è necessario utilizzare ./launcher per costruire il contenitore. Inoltre, eseguire un aggiornamento completo senza interruzioni richiede alcuni passaggi non immediatamente evidenti. Se desideri una soluzione semplice, basta avviare una VM (è un po’ più facile se esegue Ubuntu o Debian).
Sì, per la produzione è necessario poter inviare email. Per lo sviluppo, ovviamente, non è necessario.
@merefield Grazie per il link a Docker. Funziona ed è simile a come immaginavo che sarebbe stato il processo. Anche se, è un po’ strano che tutto sia impacchettato in un unico container. E sì, è lento.
Ciò che mi ha sorpreso è che quando eseguo git clone su discourse e poi cd discourse, la mia shell diventa davvero lenta - è la prima volta che mi capita . Questo repository deve contenere molti file, o qualcosa del genere, anche se non sono sicuro del perché ciò dovrebbe influenzare la mia shell.
@pfaffman Vorrei anche provare l’installazione più vicina a quella di produzione, per avere un’idea di come appare il processo. Sono d’accordo con l’installazione su una VM. Tuttavia, che dire del server SMTP e del dominio? La guida è molto rigida su questi punti e dice che DEVO averli.
E anche questo andrebbe bene, ma è solo che non comprendo appieno alcune cose:
perché è effettivamente necessario il dominio? Perché localhost non è sufficiente?
il server di posta deve puntare allo stesso dominio che uso per Discourse?
la guida parla anche di sottodomini - perché un sottodominio? Cioè, sto configurando una VM su Azure e la VM ha un DNS assegnato (come myvm.westeurope.cloudapp.azure.com) - non è sufficiente quel dominio?
È per la produzione e richiede HTTPS, quindi hai bisogno di un nome di dominio. Quello di Azure funzionerà.
Non è necessario utilizzare lo stesso nome di dominio per il server di posta e per l’hostname. Qualche tempo fa ho modificato discourse-setup in modo che richieda l’indirizzo email per le notifiche.
Per sottodominio si intende semplicemente non usare x.com, ma y.x.com. Questa è una pratica ormai consolidata.
Condivido con te la stessa preoccupazione riguardo ai nomi di dominio per Discourse. PERCHÉ LOCALHOST NON È SUFFICIENTE?
Ho installato Discourse solo per far giocare il mio team, ma non riesco a farlo senza DNS. Abbiamo provato ad aggiungere una risorsa DNS con localhost al file hosts sul nostro server per risolvere il problema, ma senza successo.
Qualcuno ha mai provato a eseguire Discourse senza un dominio pubblico?
No. Se vuoi eseguire un’installazione di sviluppo non hai bisogno di un nome host, ma funziona solo per localhost. Se vuoi che il tuo team lo utilizzi, hai bisogno di un nome host. Se hai un team, di sicuro hai un nome di dominio? Crea semplicemente un sottodominio di quello che usa la tua azienda, paga 12 $ per un nome host o prova la versione di prova gratuita.
Beh, per noi non vogliamo che il dibattito sia pubblico. Vogliamo una bacheca di discussione interna. Sono d’accordo con gli altri: localhost non funziona, l’installazione fallisce quando si cerca solo di fare una prova. È davvero scoraggiante e gli script assurdi invece del ben noto e standard ‘docker-compose up -d --build’ sono quanto meno allarmanti. Non so se voglio usare questo prodotto perché si prende troppo sul serio… o almeno chi ha scritto il launcher.
O forse è stato scritto prima che docker-compose diventasse uno strumento affidabile e funziona ancora su migliaia di siti, e un cambiamento rischierebbe di romperli tutti per un caso limite.
Se il server ha accesso al mondo esterno, non è difficile disabilitare le funzionalità HTTPS, anche se non lo faccio da un po’ di tempo.
Hai bisogno di un nome di dominio, ma non deve essere su un IP pubblico. Se il tuo server può accedere a Internet (per scaricare Discourse e i suoi componenti), puoi disattivare la parte di Let’s Encrypt e dovrebbe funzionare. Penso che tu debba semplicemente eliminare i template SSL e Let’s Encrypt nel file YAML, ma non potrai più utilizzare discourse-setup. Copia il campione standalone e modificalo manualmente.
È necessario per diversi motivi. Sebbene sia possibile ottenere un dominio gratuitamente su FreeNom, tuttavia ci sono state molte controversie su come FreeNom gestisce i dati e le informazioni degli utenti, quindi fai attenzione se scegli di percorrere quella strada.