Digamos que você esteja usando o AWS RDS ou um servidor PostgreSQL existente gerenciado em outro lugar. É bem simples fazer com que o Discourse use essa configuração, sem a necessidade de conceder privilégios de superusuário a qualquer coisa que o próprio Discourse execute. Veja como.
Pré-requisitos
O Discourse exige que a versão principal do PostgreSQL corresponda à que fornecemos 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 será sua. Também exigimos algumas extensões que são distribuídas no pacote postgresql-contrib (ou seu equivalente).
Gere aleatoriamente uma senha para a conexão (mais de 20 caracteres). Neste guia, usaremos s3kr1t como um espaço reservado.
Configurar o 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;
Isso é tudo o 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 de 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.