Digamos que você esteja usando o AWS RDS, ou um servidor PostgreSQL existente gerenciado em outro lugar. É bem simples fazer o Discourse usar essa configuração, sem a necessidade de conceder privilégios de superusuário a nada que o próprio Discourse execute. Veja como:
Pré-requisitos
O Discourse exige que a versão principal do PostgreSQL corresponda à que enviamos em nossas imagens docker; se você tentar executar em uma versão mais nova ou mais antiga, pode funcionar, mas não garantimos, e se algo quebrar no futuro, a responsabilidade é sua. Também exigimos algumas extensões que são distribuídas no pacote postgresql-contrib (ou seu equivalente). Você também precisará da extensão pgvector (pacote postgresql-<versão>-pgvector), que é exigida pelo plugin Discourse AI que acompanha o núcleo do Discourse.
Gere aleatoriamente uma senha para a conexão (mais de 20 caracteres). Neste guia, usaremos s3kr1t como um espaço reservado.
Configuração do DB
Como superusuário do banco de dados, execute o seguinte:
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;
Isso é tudo que precisa ser feito para preparar o DB para uso pelo Discourse.
Configurar o Discourse
Configure o Discourse da maneira usual e, em seguida, edite containers/app.yml da seguinte forma:
-
Remova a linha
- "templates/postgres.template.yml"sob a chave de nível superiortemplates(perto do topo do arquivo); -
Sob a chave de nível superior
env, defina o seguinte:DISCOURSE_DB_USERNAME: discourse DISCOURSE_DB_PASSWORD: s3kr1t DISCOURSE_DB_HOST: <IP ou nome do host> DISCOURSE_DB_NAME: discourse -
Você também precisa definir o seguinte se o seu banco de dados não usar a porta padrão (5432):
DISCOURSE_DB_PORT: <porta> DISCOURSE_DB_BACKUP_PORT: <porta> -
Reconstrua com
./launcher rebuild app, e você estará pronto para começar.