Esta guía asume que tienes una instalación estándar autohospedada. 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 autohospedadas. Si utilizas un servicio de alojamiento gestionado, los complementos disponibles son controlados por tu proveedor de alojamiento. Por ejemplo, en nuestro alojamiento, estos complementos específicos están disponibles según el nivel de alojamiento.
A partir de mediados de 2025, muchos complementos oficiales populares se han incluido en el núcleo de Discourse. Estos complementos (incluyendo Solved, Data Explorer, AI, Assign, Reactions y muchos más) ya no necesitan instalarse por separado; se incluyen con Discourse y se pueden habilitar a través de la configuración del sitio. Si intentas reconstruir con un complemento incluido todavía en tu
app.yml, verás un mensajeHINTque te indicará que lo elimines. Esta guía es para complementos que no están incluidos con el núcleo.
En este tutorial, instalaremos el complemento Discourse Shared Edits.
Este tutorial requiere comprender cómo usar 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, pegar y editar el *.yml necesario para tu instancia de Discourse. Usa siempre espacios para sangrar en archivos .yml, no tabulaciones.
-
Copia la URL de
git clonede GitHub del complemento. -
Accede al archivo
app.ymlde tu contenedor (presente en/var/discourse/containers/)cd /var/discourse nano containers/app.yml -
Agrega la URL del repositorio del complemento a tu archivo
app.ymldel contenedor: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.gitAgrega la URL de
git clonedel complemento 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 contienesudo -E -u discourse, incluye también ese prefijo en tu nueva línea. -
Reconstruye el contenedor:
cd /var/discourse ./launcher rebuild app¡Eso es todo, has instalado con éxito el complemento Discourse Shared Edits en tu instancia de Discourse!
Si tu complemento está alojado en un repositorio privado
Debes usar un token OAuth:
Con el token OAuth, puedes instalar tu complemento de la misma manera que un repositorio público y no necesitas crear una clave SSH.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://<token>@github.com/owner/repo.git
Recomendamos encarecidamente utilizar tokens OAuth para complementos 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 agregar la clave SSH pública del usuario de tu servidor a las claves de implementación 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 complemento privado debería estar instalado en tu instancia de Discourse.
Cómo desinstalar un complemento
Para eliminar un complemento, 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