Questa guida presuppone che tu abbia un’installazione standard self-hosted. Supportiamo solo il metodo di installazione standard qui, quindi queste istruzioni presuppongono che tu abbia un’installazione standard.
Questa guida si applica solo alle istanze Discourse self-hosted. Se stai utilizzando un servizio di hosting gestito, i plugin disponibili sono controllati dal tuo provider di hosting. Ad esempio, sul nostro hosting questi plugin specifici sono disponibili in base al livello di hosting.
Dalla metà del 2025, molti plugin ufficiali popolari sono stati raggruppati nel core di Discourse. Questi plugin (inclusi Solved, Data Explorer, AI, Assign, Reactions e molti altri) non devono più essere installati separatamente: vengono forniti con Discourse e possono essere abilitati tramite le impostazioni del sito. Se tenti di ricostruire con un plugin raggruppato ancora nel tuo
app.yml, vedrai un messaggioHINTche ti dirà di rimuoverlo. Questa guida è per i plugin che non sono raggruppati con il core.
In questo tutorial, installeremo il plugin Discourse Shared Edits.
Questo tutorial richiede la comprensione di come utilizzare le repo di GitHub, in particolare, come ottenere o copiare l’URL di clonazione git e come modificare i file YAML (*.yml) tramite il terminale usando nano, in particolare come salvare e uscire da nano. I file YAML seguono rigorosamente le indentazioni, quindi assicurati di rispettarle quando copi e incolli e modifichi il *.yml necessario per la tua istanza Discourse. Usa sempre gli spazi per indentare nei file .yml, non le tabulazioni.
-
Copia l’URL
git clonedella repo del plugin da GitHub. -
Accedi al file
app.ymldel tuo container (presente in/var/discourse/containers/)cd /var/discourse nano containers/app.yml -
Aggiungi l’URL della repo del plugin al file
app.ymldel tuo container: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.gitAggiungi l’URL
git clonedel plugin subito sotto la riga contenentegit clone https://github.com/discourse/docker_manager.git)Segui il formato esistente della riga
docker_manager.git; se contienesudo -E -u discourseincludi anche quel prefisso nella tua nuova riga. -
Ricostruisci il container:
cd /var/discourse ./launcher rebuild appEcco fatto, hai installato con successo il plugin Discourse Shared Edits sulla tua istanza Discourse!
Se il tuo plugin è ospitato in una repository privata
Devi usare un token OAuth:
Con il token OAuth, puoi installare il tuo plugin allo stesso modo di una repo pubblica e non hai bisogno di creare una chiave SSH.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://<token>@github.com/owner/repo.git
Consigliamo vivamente di utilizzare i token OAuth per i plugin nelle repository private. Tuttavia, se non puoi, vedi sotto.
Passaggi di installazione privata con chiave SSH
-
Supponendo che la tua repo git privata sia ospitata su GitHub, devi aggiungere la chiave SSH pubblica dell’utente del tuo server alle Chiavi di distribuzione della repo GitHub (https://github.com/SecretOrg/secret-plugin/settings/keys).
-
Modifica il file
app.ymlcome mostrato nell’esempio seguente:
run:
- exec: echo "Inizio dei comandi personalizzati"
- 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
.... ecc ....\n -----END RSA PRIVATE KEY-----
- file:
path: /user/.ssh/id_rsa.pub
chmod: 600
contents: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tj .... ecc .... 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 "Fine dei comandi personalizzati"
- Ricostruisci il container:
cd /var/discourse
./launcher rebuild app
Il tuo plugin privato dovrebbe essere installato sulla tua istanza Discourse.
Come disinstallare un plugin
Per rimuovere un plugin, è sufficiente rimuovere la riga - git clone https://github.com/... dal file app.yml e ricostruire il sito tramite
cd /var/discourse
./launcher rebuild app