Esta guía asume que tienes una instalación estándar autoalojada. Solo admitimos el método de instalación estándar aquí, por lo que estas instrucciones asumen que tienes una instalación estándar.
Esta guía solo se aplica a las instancias de Discourse autoalojadas. Si estás utilizando un servicio de alojamiento gestionado, los plugins disponibles son controlados por tu proveedor de alojamiento. Por ejemplo, en nuestro alojamiento, estos plugins específicos están disponibles según el nivel de alojamiento.
En este tutorial, instalaremos el plugin Discourse Solved.
Este tutorial requiere comprender cómo usar los repositorios de GitHub, específicamente, cómo obtener o copiar la URL de clonación de git y cómo editar archivos YAML (*.yml) a través de la terminal usando nano, específicamente cómo guardar y salir en nano. Los archivos YAML siguen estrictamente las sangrías, así que asegúrate de respetarlas al copiar y pegar y editar el *.yml necesario para tu instancia de Discourse. Usa siempre espacios para sangrar en los archivos .yml, no tabulaciones.
-
Copia la URL de
git clonede GitHub del plugin. -
Accede al archivo
app.ymlde tu contenedor (presente en/var/discourse/containers/)cd /var/discourse nano containers/app.yml -
Añade la URL del repositorio del plugin al archivo
app.ymlde tu contenedor: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.gitAñade la URL de
git clonedel plugin justo debajo de la línea que contienegit clone https://github.com/discourse/docker_manager.git)Sigue el formato existente de la línea
docker_manager.git; si no contienesudo -E -u discourseentonces inserta- git clone https://github.com/discourse/discourse-solved.git. -
Reconstruye el contenedor:
cd /var/discourse ./launcher rebuild app¡Eso es todo, has instalado con éxito el plugin Discourse Solved en tu instancia de Discourse!
Si tu plugin está alojado en un repositorio privado
Debes usar un token OAuth:
Con el token OAuth, puedes instalar tu plugin de la misma manera que un repositorio público, y no necesitas crear una clave SSH.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- sudo -E -u discourse git clone https://<token>@github.com/owner/repo.git
Recomendamos encarecidamente utilizar tokens OAuth para plugins en repositorios privados. Sin embargo, si no puedes, consulta a continuación.
Pasos de instalación privada con clave SSH
-
Suponiendo que tu repositorio git privado está alojado en GitHub, necesitas añadir la clave SSH pública del usuario de tu servidor a las claves de despliegue del repositorio de GitHub (https://github.com/SecretOrg/secret-plugin/settings/keys).
-
Modifica el archivo
app.ymlcomo se muestra en el siguiente ejemplo:
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"
- Reconstruye el contenedor:
cd /var/discourse
./launcher rebuild app
Tu plugin privado debería estar instalado en tu instancia de Discourse.
Cómo desinstalar un plugin
Para eliminar un plugin, simplemente elimina la línea - git clone https://github.com/... de tu archivo app.yml y reconstruye tu sitio a través de
cd /var/discourse
./launcher rebuild app