Questa guida presuppone che tu abbia un’installazione standard self-hosted. Qui supportiamo solo il metodo di installazione standard, quindi queste istruzioni presuppongono che tu abbia un’installazione standard.
Questa guida si applica solo alle istanze Discourse self-hosted. Se utilizzi 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.
In questo tutorial, installeremo il plugin Discourse Solved.
Questo tutorial richiede la comprensione di come utilizzare le repository 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 mentre copi e incolli e modifichi il *.yml necessario per la tua istanza Discourse. Usa sempre gli spazi per indentare nei file .yml, non i tab.
-
Copia l’URL di
git clonedella repository 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 repository del plugin al file
app.ymldel tuo container: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.gitAggiungi l’URL di
git clonedel plugin appena sotto la riga contenentegit clone https://github.com/discourse/docker_manager.git)Segui il formato esistente della riga
docker_manager.git; se non contienesudo -E -u discourseallora inserisci- git clone https://github.com/discourse/discourse-solved.git. -
Ricostruisci il container:
cd /var/discourse ./launcher rebuild appEcco fatto, hai installato con successo il plugin Discourse Solved 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 nello stesso modo di una repository pubblica e non hai bisogno di creare una chiave SSH.
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- sudo -E -u discourse git clone https://<token>@github.com/owner/repo.git
Ti 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 repository git privata sia ospitata su GitHub, devi aggiungere la chiave SSH pubblica dell’utente del tuo server alle Chiavi di distribuzione della repository GitHub (https://github.com/SecretOrg/secret-plugin/settings/keys).
-
Modifica il file
app.ymlcome mostrato nell’esempio seguente:
run:
- exec: echo "Inizio 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 ....
-----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 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, rimuovi semplicemente la riga - git clone https://github.com/... dal tuo file app.yml e ricostruisci il tuo sito tramite
cd /var/discourse
./launcher rebuild app