Supposons que vous utilisiez AWS RDS ou un serveur PostgreSQL existant géré ailleurs. Il est assez simple de configurer Discourse pour utiliser une telle configuration, sans avoir besoin d’accorder des privilèges de superutilisateur à tout ce que Discourse exécute lui-même. Voici comment.
Prérequis
Discourse exige que la version majeure de PostgreSQL corresponde à celle que nous fournissons dans nos images Docker ; si vous essayez d’exécuter sur une version plus récente ou plus ancienne, cela pourrait fonctionner, mais nous ne le garantissons pas, et si quelque chose casse à l’avenir, vous devrez gérer les deux parties. Nous exigeons également certaines extensions qui sont distribuées dans le paquet postgresql-contrib (ou son équivalent).
Générez aléatoirement un mot de passe pour la connexion (20 caractères ou plus). Dans ce guide, nous utiliserons s3kr1t comme espace réservé.
Configuration de la base de données
En tant que superutilisateur de la base de données, exécutez ce qui suit :
CREATE USER discourse PASSWORD 's3kr1t';
CREATE DATABASE discourse OWNER discourse;
\c discourse
CREATE EXTENSION hstore;
CREATE EXTENSION pg_trgm;
C’est tout ce qui doit être fait pour préparer la base de données à être utilisée par Discourse.
Configuration de Discourse
Configurez Discourse de la manière habituelle, puis modifiez containers/app.yml comme suit :
- Supprimez la ligne
- "templates/postgres.template.yml"sous la clé de niveau supérieurtemplates(vers le haut du fichier) ; - Sous la clé de niveau supérieur
env, définissez ce qui suit :
DISCOURSE_DB_USERNAME: discourse
DISCOURSE_DB_PASSWORD: s3kr1t
DISCOURSE_DB_HOST: <IP ou nom d'hôte>
DISCOURSE_DB_NAME: discourse
- Vous devez également définir ce qui suit si votre base de données n’utilise pas le port par défaut (5432) :
DISCOURSE_DB_PORT: <port>
DISCOURSE_DB_BACKUP_PORT: <port>
- Reconstruisez avec
./launcher rebuild app, et vous devriez être prêt à partir.