Recupera su un singolo sito da multisito

Ciao, ho seguito questa guida Multisite configuration with Docker per configurare un sito multiplo, ma ora voglio tornare a un singolo sito. Cosa dovrei fare oltre a ripristinare il file app.yml?

Non capisco davvero cosa stia cercando di ottenere, ma se vuoi spostare un sito dall’installazione multisito, puoi farlo scaricando un backup dall’ambiente multisito e ripristinandolo sul sito autonomo. Potrebbe essere necessario eseguire alcune operazioni di rimappatura in base alla configurazione del sito autonomo.

Voglio solo mantenere il primo sito ed eliminare il secondo.

Sì, l’approccio più semplice è eseguire un backup del primo sito, arrestare i due container (web_only e data) che potresti aver utilizzato durante la configurazione del multisito, configurare un nuovo sito tramite ./discourse-setup e quindi ripristinare il backup. Una soluzione più avanzata potrebbe includere la rimozione della configurazione del secondo sito dai file yml, l’accesso al container dei dati per eliminare il secondo database e la rimozione delle risorse del secondo sito dalla cartella condivisa, ecc.

Grazie! Proverò il primo metodo.

Ciao, ho seguito il tuo secondo metodo. Ho rimosso il database del secondo sito e ripristinato il file di configurazione app.yml. Ma non so come rimuovere le risorse del secondo sito dalla cartella condivisa, potresti aiutarmi?

Quando aggiorno Discourse, ottengo una pagina vuota nella pagina dei plugin e un errore nella console:

Uncaught TypeError: Cannot read property 'extend' of undefined
    at _discourse-rss-poster-422da9e50d576ad45cb7287315e7a35550af3708eb68422bee05813edc01521d.js:188
    at t.module.exports.u.<computed> (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74640)
    at t.module.exports.u.<computed> (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74470)
    at require (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:74637)
    at t.customResolve (_application-572c27eef10b724b244ce26553c6fe92b75f44172387b25ef144f338da4faa1e.js:1015)
    at t.resolveRoute (_application-572c27eef10b724b244ce26553c6fe92b75f44172387b25ef144f338da4faa1e.js:1051)
    at t.e [as resolveRoute] (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:43433)
    at t.n.resolve (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:46378)
    at _ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:12420
    at e.t.resolve (_ember_jquery-1ed3f3559e6f967733b4088aa729ff7039dff2c09c5a5f787a214b016f58aabc.js:11959)

Penso che sia dovuto al secondo sito, ma non so come risolvere il problema. Grazie!

Puoi aiutarmi per favore? @sam

Dovrai condividere il tuo file app.yml oscurando le password. Credo che la causa sia un’omissione o un errore nel tuo file app.yml che sta provocando questo problema.

## Questo è il template del container Docker Discourse tutto-in-uno e autonomo
##
## Dopo aver apportato modifiche a questo file, DEVI ricostruire
## /var/discourse/launcher rebuild app
##
## FAI *MOLTA* ATTENZIONE DURANTE LA MODIFICA!
## I FILE YAML SONO SUPER SUPER SENSIBILI A ERRORI NEGLI SPAZI BIANCHI O NELL'ALLINEAMENTO!
## visita http://www.yamllint.com/ per convalidare questo file se necessario

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Rimuovi il commento da queste due righe se desideri aggiungere Lets Encrypt (https)
#  - "templates/web.ssl.template.yml"
#  - "templates/web.letsencrypt.ssl.template.yml"
  - "templates/web.socketed.template.yml"

## Quali porte TCP/IP deve esporre questo container?
## Se desideri che Discourse condivida una porta con un altro server web come Apache o nginx,
## consulta https://meta.discourse.org/t/17247 per i dettagli
expose:
        #  - "80:80"   # http
        #  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Imposta db_shared_buffers al massimo al 25% della memoria totale.
  ## verrĂ  impostato automaticamente dal bootstrap in base alla RAM rilevata, oppure puoi sovrascrivere
  db_shared_buffers: "128MB"

  ## può migliorare le prestazioni di ordinamento, ma aumenta l'utilizzo della memoria per connessione
  #db_work_mem: "40MB"

  ## Quale revisione Git deve utilizzare questo container? (predefinito: tests-passed)
  #version: tests-passed

env:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

  ## Quante richieste web simultanee sono supportate? Dipende dalla memoria e dai core della CPU.
  ## verrĂ  impostato automaticamente dal bootstrap in base alle CPU rilevate, oppure puoi sovrascrivere
  UNICORN_WORKERS: 2

  ## TODO: Il nome di dominio a cui risponderĂ  questa istanza di Discourse
  ## Obbligatorio. Discourse non funzionerĂ  con un semplice numero IP.
  DISCOURSE_HOSTNAME: at4am.io

  ## Rimuovi il commento se desideri che il container venga avviato con lo stesso
  ## hostname (opzione -h) specificato sopra (predefinito "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO: Elenco di email separate da virgola che verranno rese amministratori e sviluppatori
  ## all'iscrizione iniziale, ad esempio 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'a@gmail.com'

  ## TODO: Il server di posta SMTP utilizzato per validare nuovi account e inviare notifiche
  ## INDIRIZZO SMTP, nome utente e password sono obbligatori
  ## ATTENZIONE: il carattere '#' nella password SMTP può causare problemi!
  DISCOURSE_SMTP_ADDRESS: smtp.office365.com
  DISCOURSE_SMTP_PORT: 587
  DISCOURSE_SMTP_USER_NAME: a@outlook.com
  DISCOURSE_SMTP_PASSWORD: "a"
  DISCOURSE_SMTP_AUTHENTICATION: login
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (opzionale, predefinito true)

  ## Se hai aggiunto il template Lets Encrypt, rimuovi il commento qui sotto per ottenere un certificato SSL gratuito
  LETSENCRYPT_ACCOUNT_EMAIL: a@gmail.com

  ## L'indirizzo CDN per questa istanza di Discourse (configurato per il recupero)
  ## consulta https://meta.discourse.org/t/14857 per i dettagli
  #DISCOURSE_CDN_URL: //discourse-cdn.example.com

## Il container Docker è senza stato; tutti i dati sono archiviati in /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## I plugin vanno qui
## consulta https://meta.discourse.org/t/19157 per i dettagli
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/livc/discourse-rss-poster
            #- git clone https://github.com/paviliondev/discourse-ratings
          - git clone https://github.com/discourse/discourse-data-explorer
          - git clone https://github.com/discourse/discourse-solved

## Qualsiasi comando personalizzato da eseguire dopo la costruzione
run:
  - exec: echo "Inizio dei comandi personalizzati"
  ## Se desideri impostare l'indirizzo email 'From' per la tua prima registrazione, rimuovi il commento e modifica:
  ## Dopo aver ricevuto la prima email di iscrizione, rimetti il commento alla riga. Deve essere eseguito solo una volta.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Fine dei comandi personalizzati"

Questo è il mio file app.yml, grazie per il tuo aiuto.

Guardando il tuo errore precedente e l’app.yml, molto probabilmente è il fork del plugin rss che stai utilizzando. Potrebbe esserci qualcosa di rotto al suo interno che sta probabilmente causando il problema. Puoi provare a ricostruire dopo aver disabilitato il plugin?

@itsbhanusharma

Se commento questo plugin, la pagina del plugin funziona. Ma prima di aggiornare Discourse all’ultima versione, il plugin funzionava senza problemi.

Quindi non sono sicuro se sia dovuto all’aggiornamento di Discourse o al multisito.

In particolare, ho notato che
https://meta.discourse.org/t/discourse-subscriptions/140818/77?u=livc
riporta lo stesso errore sul multisito.

Questo plugin è molto importante per il mio sito e ora non ho idea di cosa fare. :pensive:

Se hai creato tu quel plugin, prova a risolverlo. Se qualcuno lo ha realizzato per te, prova a contattarlo per farlo riparare.