Supponiamo che tu stia utilizzando AWS RDS o un server PostgreSQL esistente gestito altrove. È abbastanza semplice far sì che Discourse utilizzi una tale configurazione, senza la necessità di concedere privilegi di superutente a qualsiasi cosa Discourse stesso esegua. Ecco come.
Prerequisiti
Discourse richiede che la versione principale di PostgreSQL corrisponda a quella che forniamo nelle nostre immagini docker; se si tenta di eseguire su una versione più recente o precedente, potrebbe funzionare, ma non lo garantiamo, e se qualcosa si rompe in futuro, terranno entrambi i pezzi. Richiediamo anche alcune estensioni che sono distribuite nel pacchetto postgresql-contrib (o il suo equivalente). Avrai anche bisogno dell’estensione pgvector (pacchetto postgresql-<versione>-pgvector), richiesta dal plugin Discourse AI fornito con il core di Discourse.
Genera casualmente una password per la connessione (20+ caratteri). In questa guida, useremo s3kr1t come segnaposto.
Configurazione del DB
Come superutente del database, esegui quanto segue:
CREATE USER discourse PASSWORD 's3kr1t';
CREATE DATABASE discourse OWNER discourse;
\c discourse
CREATE EXTENSION hstore;
CREATE EXTENSION pg_trgm;
CREATE EXTENSION unaccent;
CREATE EXTENSION vector;
Tutto ciò che deve essere fatto per preparare il DB all’uso da parte di Discourse è questo.
Configurazione di Discourse
Configura Discourse nel modo abituale, quindi modifica containers/app.yml come segue:
-
Rimuovi la riga
- "templates/postgres.template.yml"sotto la chiave di primo livellotemplates(verso l’alto del file); -
Sotto la chiave di primo livello
env, imposta quanto segue:DISCOURSE_DB_USERNAME: discourse DISCOURSE_DB_PASSWORD: s3kr1t DISCOURSE_DB_HOST: <IP o nome host> DISCOURSE_DB_NAME: discourse -
Devi anche impostare quanto segue se il tuo database non utilizza la porta predefinita (5432):
DISCOURSE_DB_PORT: <porta> DISCOURSE_DB_BACKUP_PORT: <porta> -
Ricostruisci con
./launcher rebuild app, e dovresti essere pronto per partire.