Angenommen, Sie verwenden AWS RDS oder einen bestehenden PostgreSQL-Server, der woanders verwaltet wird. Es ist recht einfach, Discourse dazu zu bringen, eine solche Einrichtung zu verwenden, ohne dass dem, was Discourse selbst ausführt, Superuser-Rechte erteilt werden müssen. So geht’s.
Voraussetzungen
Discourse erfordert, dass die Hauptversion von PostgreSQL mit dem übereinstimmt, was wir in unseren Docker-Images ausliefern; wenn Sie versuchen, mit einer neueren oder älteren Version zu arbeiten, könnte es funktionieren, aber wir garantieren es nicht, und wenn in Zukunft etwas kaputt geht, behalten Sie beide Teile. Wir benötigen auch einige Erweiterungen, die im Paket postgresql-contrib (oder seinem Äquivalent) enthalten sind. Sie benötigen auch die Erweiterung pgvector (Paket postgresql-<version>-pgvector), die für das Discourse AI-Plugin erforderlich ist, das mit dem Discourse-Kern ausgeliefert wird.
Generieren Sie zufällig ein Passwort für die Verbindung (20+ Zeichen). In dieser Anleitung verwenden wir s3kr1t als Platzhalter.
DB einrichten
Führen Sie als Datenbank-Superuser Folgendes aus:
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;
Das ist alles, was getan werden muss, um die DB für die Verwendung durch Discourse vorzubereiten.
Discourse konfigurieren
Richten Sie Discourse auf die übliche Weise ein und bearbeiten Sie dann containers/app.yml wie folgt:
-
Entfernen Sie die Zeile
- "templates/postgres.template.yml"unter dem Top-Level-Schlüsseltemplates(etwa am Anfang der Datei); -
Setzen Sie unter dem Top-Level-Schlüssel
envFolgendes:DISCOURSE_DB_USERNAME: discourse DISCOURSE_DB_PASSWORD: s3kr1t DISCOURSE_DB_HOST: <IP oder Hostname> DISCOURSE_DB_NAME: discourse -
Sie müssen auch Folgendes festlegen, wenn Ihre Datenbank nicht den Standardport (5432) verwendet:
DISCOURSE_DB_PORT: <Port> DISCOURSE_DB_BACKUP_PORT: <Port> -
Bauen Sie mit
./launcher rebuild appneu und Sie sollten startklar sein.