Récupérer sur un site à partir d'un multisite

Bonjour, je suis ce guide Multisite configuration with Docker pour configurer plusieurs sites. Maintenant, je souhaite revenir à un seul site. Que dois-je faire, en dehors de restaurer le fichier app.yml ?

Je ne comprends vraiment pas ce que vous essayez d’accomplir ici, mais si vous souhaitez déplacer un site hors de la configuration multisite, vous pouvez le faire en téléchargeant une sauvegarde depuis le multisite et en la restaurant sur le site autonome. Il se peut que vous deviez effectuer une certaine réaffectation en fonction de la configuration de ce site autonome.

Je veux simplement garder le premier site et supprimer le deuxième.

Oui, l’approche la plus simple consiste à effectuer une sauvegarde du premier site, à arrêter les deux conteneurs (web_only et data) que vous avez peut-être utilisés lors de la configuration du multisite, à configurer un nouveau site via ./discourse-setup, puis à restaurer votre sauvegarde. Une solution plus avancée pourrait inclure la suppression de la configuration du deuxième site dans les fichiers yml, l’accès au conteneur de données pour supprimer la deuxième base de données, la suppression des actifs du deuxième site du dossier partagé, etc.

Merci ! Je vais essayer la première méthode.

Bonjour, j’ai suivi votre deuxième méthode. J’ai supprimé la base de données du deuxième site et restauré le fichier de configuration app.yml. Cependant, je ne sais pas comment supprimer les ressources du deuxième site du dossier partagé. Pourriez-vous m’aider ?

Lors de la mise à niveau de Discourse, j’ai obtenu une page vide sur la page des plugins et une erreur dans la 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)

Je pense que cela est dû au deuxième site, mais je ne sais pas comment le résoudre. Merci !

Pourriez-vous s’il vous plaît m’aider ? @sam

Vous devrez partager votre fichier app.yml en masquant les mots de passe. Je mettrais cela sur le compte d’une omission ou d’une erreur dans votre fichier app.yml qui provoque ce problème.

## Ceci est le modèle de conteneur Docker Discourse tout-en-un et autonome
##
## Après avoir apporté des modifications à ce fichier, vous DEVEZ reconstruire
## /var/discourse/launcher rebuild app
##
## SOYEZ *TRÈS* PRUDENT EN ÉDITANT !
## LES FICHIERS YAML SONT EXTRÊMEMENT SENSIBLES AUX ERREURS D'ESPACEMENT OU D'ALIGNEMENT !
## visitez http://www.yamllint.com/ pour valider ce fichier si nécessaire

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
## Décommentez ces deux lignes si vous souhaitez ajouter Lets Encrypt (https)
#  - "templates/web.ssl.template.yml"
#  - "templates/web.letsencrypt.ssl.template.yml"
  - "templates/web.socketed.template.yml"

## Quels ports TCP/IP ce conteneur doit-il exposer ?
## Si vous souhaitez que Discourse partage un port avec un autre serveur web comme Apache ou nginx,
## consultez https://meta.discourse.org/t/17247 pour plus de détails
expose:
        #  - "80:80"   # http
        #  - "443:443" # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Définissez db_shared_buffers à un maximum de 25 % de la mémoire totale.
  ## Sera défini automatiquement par bootstrap en fonction de la RAM détectée, ou vous pouvez le remplacer
  db_shared_buffers: "128MB"

  ## Peut améliorer les performances de tri, mais ajoute l'utilisation de la mémoire par connexion
  #db_work_mem: "40MB"

  ## Quelle révision Git ce conteneur doit-il utiliser ? (par défaut : tests-passed)
  #version: tests-passed

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

  ## Combien de requêtes web simultanées sont prises en charge ? Dépend de la mémoire et des cœurs CPU.
  ## Sera défini automatiquement par bootstrap en fonction des CPU détectés, ou vous pouvez le remplacer
  UNICORN_WORKERS: 2

  ## TODO : Le nom de domaine auquel cette instance Discourse répondra
  ## Requis. Discourse ne fonctionnera pas avec une adresse IP brute.
  DISCOURSE_HOSTNAME: at4am.io

  ## Décommentez si vous souhaitez que le conteneur soit démarré avec le même
  ## nom d'hôte (option -h) que spécifié ci-dessus (par défaut "$hostname-$config")
  #DOCKER_USE_HOSTNAME: true

  ## TODO : Liste d'e-mails séparés par des virgules qui seront administrateurs et développeurs
  ## lors de l'inscription initiale, par exemple 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'a@gmail.com'

  ## TODO : Le serveur de messagerie SMTP utilisé pour valider les nouveaux comptes et envoyer des notifications
  # L'adresse SMTP, le nom d'utilisateur et le mot de passe sont requis
  # ATTENTION, le caractère '#' dans le mot de passe SMTP peut causer des problèmes !
  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           # (optionnel, par défaut true)

  ## Si vous avez ajouté le modèle Lets Encrypt, décommentez ci-dessous pour obtenir un certificat SSL gratuit
  LETSENCRYPT_ACCOUNT_EMAIL: a@gmail.com

  ## L'adresse CDN pour cette instance Discourse (configurée pour récupérer)
  ## consultez https://meta.discourse.org/t/14857 pour plus de détails
  #DISCOURSE_CDN_URL: //discourse-cdn.example.com

## Le conteneur Docker est sans état ; toutes les données sont stockées dans /shared
volumes:
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Les plugins vont ici
## consultez https://meta.discourse.org/t/19157 pour plus de détails
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

## Toutes les commandes personnalisées à exécuter après la construction
run:
  - exec: echo "Début des commandes personnalisées"
  ## Si vous souhaitez définir l'adresse e-mail 'From' pour votre première inscription, décommentez et modifiez :
  ## Après avoir reçu le premier e-mail d'inscription, recliquez sur la ligne. Elle ne doit être exécutée qu'une seule fois.
  #- exec: rails r "SiteSetting.notification_email='info@unconfigured.discourse.org'"
  - exec: echo "Fin des commandes personnalisées"

C’est mon app.yml, merci pour votre aide.

En examinant votre erreur précédente et le fichier app.yml, il s’agit très probablement du fork du plugin RSS que vous utilisez. Quelque chose pourrait y être défectueux, ce qui provoque probablement le problème. Pouvez-vous essayer de reconstruire après avoir désactivé le plugin ?

@itsbhanusharma

Si je commente ce plugin, la page du plugin fonctionne. Mais avant que je n’aie mis à jour Discourse vers la dernière version, le plugin fonctionnait sans aucun problème.

Je ne suis donc pas certain que cela soit dû à la mise à jour de Discourse ou au multisite.

Surtout, j’ai constaté que
https://meta.discourse.org/t/discourse-subscriptions/140818/77?u=livc
renvoie la même erreur en mode multisite.

Ce plugin est très important pour mon site et je n’ai aucune idée maintenant. :pensive:

Si vous avez créé ce plugin, essayez de le corriger. Si quelqu’un l’a construit pour vous, essayez de le contacter pour qu’il le répare.