Sto cercando di installare Discourse, ho configurato il mio database, Redis e SMTP. Per il database PostgreSQL non ci sono stati problemi con il socket Unix, ma per Redis sembra esserci un errore.
Impostazioni di Redis:
sudo sed -i 's/^# unixsocket /unixsocket /' /etc/redis/redis.conf
sudo sed -i 's/^# unixsocketp.*/unixsocketperm 770/' /etc/redis/redis.conf
sudo sed -i 's/^# maxmemory <bytes>/maxmemory 1024mb/' /etc/redis/redis.conf
sudo sed -i 's/^# maxmemory-policy noeviction/maxmemory-policy allkeys-lru/' /etc/redis/redis.conf
sudo cat /etc/redis/redis.conf | grep "^maxmemory\|^unixsocket"
Configurazione del socket Redis: nano /var/www/discourse/config/discourse.conf redis_host = "/var/run/redis/redis-server.sock"
Se desideri installare Discourse per la produzione, dovresti utilizzare l’Installazione Standard Ufficiale di Discourse. Se desideri installare un ambiente di sviluppo, ci sono argomenti specifici per ogni sistema operativo.
Solo per chiarire: il sistema è completamente operativo e tutto funziona, ma ho dovuto impostare l’host di Redis su “localhost” perché la connessione tramite socket Unix non funzionava.
Ho seguito questa guida: Install Discourse Forum on Ubuntu 18.04 Without Docker
Poiché la guida è un po’ datata, ho dovuto apportare alcune modifiche qui e là, ma dato che ho molta familiarità con Linux, sono riuscito a risolvere tutto senza problemi.
La mia installazione è su un container LXC Proxmox con Ubuntu 20.04.
Penso che sarà piuttosto difficile installare o mantenere un’istanza di produzione che non utilizza Docker. Ci sono diversi aspetti delicati nell’interazione tra nginx e Discourse che risulteranno complicati da gestire senza il contenitore Docker fornito da loro, ma suppongo che tutto sia possibile.
È improbabile che questo cambi. Se il modello attuale non supporta l’uso di un socket, significa che CDCK non utilizza un socket Redis nella loro configurazione di hosting o nell’installazione Docker supportata.
Non sono sicuro di quale problema stia cercando di risolvere non utilizzando la configurazione supportata ./launcher e docker, ma è probabile che troverà anche molti altri problemi.
Non sono sicuro che tu abbia mai usato Proxmox, ma secondo me è fantastico! Posso accedere all’interfaccia web e con un solo clic creare un backup; posso quindi apportare modifiche e, se qualcosa va storto, scelgo semplicemente il backup e clicco su ripristina.
Inoltre, ottieni prestazioni molto migliori da un contenitore LXC rispetto a un’immagine Docker: non c’è paragone.
Non dico che Docker sia negativo, perché, come hai giustamente sottolineato, rende MOLTO semplice la configurazione.
Immagino che per gli usi che ne hai fatto sia stato ottimo!
Sono abbastanza sicuro che qualcuno abbia fatto questo confronto e che ci siano da 100 a 1000 volte più immagini in esecuzione su Docker rispetto a LXC (che ho usato, una volta).
Non sto dicendo che Proxmox sia cattivo, ma se vuoi che Discourse sia facile da configurare e mantenere, userai Docker. Per fare un confronto, se chiedessi aiuto su Marketplace con un budget inferiore a 1.000 dollari, non risponderei.
Il punto del thread era chiedere lo stato attuale del socket Unix di Redis. Non si trattava di discutere se LXC o Docker siano più adatti per Discourse. Ho solo menzionato perché non stavo usando Docker perché sembrava che potessi essere curioso a riguardo. Per la persona media, Docker vince ogni volta perché è semplice. È anche per questo motivo che per molto tempo molte applicazioni hanno usato MySQL invece di PostgreSQL. Ma io amo assolutamente PostgreSQL.
Finché non incontrerò problemi devastanti, continuerò sicuramente a usare LXC, semplicemente funziona benissimo! Sono anche completamente d’accordo sul fatto che se pensi di aver bisogno di supporto esterno, dovresti probabilmente attenerti a quanto consigliato dalle impostazioni predefinite. Io stesso ho 20 servizi diversi, ognuno nel proprio contenitore LXC, in esecuzione su un singolo nodo Proxmox, e funzionano tutti egregiamente, e questo è solo un singolo nodo in un cluster Proxmox. Backup automatizzati, monitoraggio, migrazione tra i nodi del cluster: sono tutte cose fantastiche
Ho già detto che la mia installazione è andata liscia? Finora amo Discourse; a parte dover usare localhost per Redis invece del socket Unix, non ho avuto alcun problema. Cercherò di ricordare di tornare a scrivere tra qualche mese per farvi sapere se la situazione è ancora la stessa
Suppongo che sia usermod -aG redis discourse o in alternativa unixsocketperm 777 in modo che unicorn abbia i permessi per accedere al socket. Assicurati anche che la directory in cui deve essere creato il socket esista e abbia l’utente redis come proprietario. Tuttavia, il comune pacchetto redis-server basato su systemd-service su Ubuntu lo garantisce.