Este guia pressupõe que você tenha uma instalação padrão auto-hospedada. Nós somente suportamos o método de instalação padrão aqui, então estas instruções pressupõem que você tem 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.
Neste tutorial, instalaremos o plugin Discourse Solved.
Este tutorial requer um entendimento de como usar repositórios do GitHub, especificamente, como obter ou copiar a URL de clonagem do git e como editar arquivos YAML (*.yml) via terminal usando nano, especificamente como salvar e sair no nano. Arquivos YAML seguem fortemente 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 tabulações.
-
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: - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git - sudo -E -u discourse git clone https://github.com/discourse/discourse-solved.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 não contiversudo -E -u discourseentão insira- git clone https://github.com/discourse/discourse-solved.git. -
Reconstrua o contêiner:
cd /var/discourse ./launcher rebuild appÉ isso, você instalou com sucesso o plugin Discourse Solved em sua instância Discourse!
Se o 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 você não precisa criar uma chave SSH.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- sudo -E -u discourse git clone https://<token>@github.com/owner/repo.git
Nós fortemente aconselhamos que você use 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 está hospedado no GitHub, você precisa adicionar a chave SSH pública do usuário do seu servidor às Chaves de Implantação (Deploy keys) do repositório do GitHub (https://github.com/SecretOrg/secret-plugin/settings/keys).
-
Modifique o arquivo
app.ymlconforme mostrado no exemplo abaixo:
run:
- exec: echo "Início dos comandos personalizados"
- 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 "Fim dos comandos personalizados"
- Reconstrua o contêiner:
cd /var/discourse
./launcher rebuild app
Seu plugin privado deve estar instalado em 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