Este guia pressupõe que você tenha uma instalação padrão auto-hospedada. Nós somente damos suporte ao método de instalação padrão aqui, então estas instruções pressupõem que você tenha uma instalação padrão.
Este guia aplica-se apenas a instâncias Discourse auto-hospedadas. Se você estiver usando um serviço de hospedagem gerenciado, os plugins disponíveis são controlados pelo seu provedor de hospedagem. Por exemplo, em nossa hospedagem estes plugins específicos estão disponíveis por nível de hospedagem.
A partir de meados de 2025, muitos plugins oficiais populares foram agrupados ao núcleo do Discourse. Estes plugins (incluindo Solved, Data Explorer, AI, Assign, Reactions e muitos outros) não precisam mais ser instalados separadamente — eles vêm com o Discourse e podem ser ativados através das configurações do site. Se você tentar reconstruir com um plugin agrupado ainda em seu
app.yml, você verá uma mensagemHINTinstruindo você a removê-lo. Este guia é para plugins que não estão agrupados com o núcleo.
Neste tutorial, instalaremos o plugin Discourse Shared Edits.
Este tutorial requer conhecimento sobre como usar repositórios GitHub, especificamente, como obter ou copiar a URL de clone git e como editar arquivos YAML (*.yml) através do terminal usando nano, especificamente como salvar e sair no nano. Arquivos YAML seguem rigorosamente as indentação, então certifique-se de respeitá-las ao copiar e colar e editar o *.yml necessário para sua instância Discourse. Sempre use espaços para indentar em arquivos .yml, não tabs.
-
Copie a URL de
git clonedo GitHub do plugin. -
Acesse o arquivo
app.ymldo seu contêiner (presente em/var/discourse/containers/)cd /var/discourse nano containers/app.yml -
Adicione a URL do repositório do plugin ao arquivo
app.ymldo seu contêiner:hooks: after_code: - exec: cd: $home/plugins cmd: - git clone https://github.com/discourse/docker_manager.git - git clone https://github.com/discourse/discourse-shared-edits.gitAdicione a URL de
git clonedo plugin logo abaixo da linha contendogit clone https://github.com/discourse/docker_manager.git)Siga o formato existente da linha
docker_manager.git; se ela contiversudo -E -u discourse, inclua esse prefixo em sua nova linha também. -
Reconstrua o contêiner:
cd /var/discourse ./launcher rebuild appÉ isso, você instalou com sucesso o plugin Discourse Shared Edits na sua instância Discourse!
Se seu plugin estiver hospedado em um repositório privado
Você deve usar um token OAuth:
Com o token OAuth, você pode instalar seu plugin da mesma forma que um repositório público, e não precisa criar uma chave SSH.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://<token>@github.com/owner/repo.git
Nós fortemente aconselhamos o uso de tokens OAuth para plugins em repositórios privados. No entanto, se você não puder, veja abaixo.
Etapas de Instalação Privada com Chave SSH
-
Assumindo que seu repositório git privado esteja hospedado no GitHub, você precisa adicionar a chave SSH pública do usuário do seu servidor às Chaves de Implantação do repositório GitHub (https://github.com/SecretOrg/secret-plugin/settings/keys).
-
Modifique o arquivo
app.ymlcomo mostrado no exemplo abaixo:
run:
- exec: echo "Beginning of custom commands"
- exec: cd /var/www/discourse && sudo -u discourse bundle install --deployment --without test --without development
- exec: echo "Host github.com\n\tStrictHostKeyChecking no\n" >> /user/.ssh/config
- file:
path: /user/.ssh/id_rsa
chmod: 600
contents: |
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEArCQG213utzqE5YVjTVF5exGRCkE9OuM7LCp/FOuPdoHrFUXk
.... etc ....
-----END RSA PRIVATE KEY-----
- file:
path: /user/.ssh/id_rsa.pub
chmod: 600
contents: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tj .... etc .... user@discourse
- exec: cd $home/plugins && git clone git@github.com:SecretOrg/secret-plugin.git
- exec: cd $home && sudo -E -u discourse bundle exec rake db:migrate
- exec: cd $home && rm -fr tmp/cache
- exec: cd $home && sudo -E -u discourse bundle exec rake assets:precompile
- exec: rm /user/.ssh/id_rsa
- exec: rm /user/.ssh/id_rsa.pub
- exec: echo "End of custom commands"
- Reconstrua o contêiner:
cd /var/discourse
./launcher rebuild app
Seu plugin privado deve estar instalado na sua instância Discourse.
Como desinstalar um plugin
Para remover um plugin, simplesmente remova a linha - git clone https://github.com/... do seu arquivo app.yml e reconstrua seu site através
cd /var/discourse
./launcher rebuild app