Cool good to know, thanks for your feedback
The first post says this
Is this the only way to do it? We don’t have nginx running outside docker
Cool good to know, thanks for your feedback
The first post says this
Is this the only way to do it? We don’t have nginx running outside docker
Yes, that’s the only way. The idea is to install a webserver (nginx recommended) to serve the request, if Discourse is up it routes it there. If not it does something else. All the installation process is explained step by step.
Bonjour,
Merci pour cette solution, @fefrei ! Nous l’avons mise en œuvre sur https://community.hiveeyes.org/ et elle fonctionne à merveille.
Cependant, nous aimerions faire référence à la question connexe posée par @mlinksva sur Site maintenance mode during rebuilds?, car cela nous concerne également et n’est pas résolu par la solution /errorpages pour l’instant. Il s’agit d’améliorer le texte générique : « Désolé, nous n’avons pas pu charger ce sujet, peut-être en raison d’un problème de connexion. ». Nous essaierons de détailler cela davantage.
discourse_offline.htmlC’est parfait lorsque des utilisateurs découvrent le site pour la première fois.
Cependant, lors de la navigation au sein de Discourse, cela vous lance à la figure :
sans révéler la moindre raison.
Comme nous vous connaissons déjà, il y aura probablement une fonctionnalité de personnalisation permettant de modifier ce texte, n’est-ce pas ? Nous avons peut-être simplement manqué cette option. Nous n’avons pas non plus examiné si la fonctionnalité Administration » Sauvegarde » Activer le mode lecture seule résoudrait déjà ce problème, comme décrit sur Maintenance Mode?.
Néanmoins, il nous a semblé pertinent de soulever à nouveau ce sujet ici et nous espérons que vous ne nous en voudrez pas si cela s’est avéré inutile.
Cordialement,
Andreas.
P.S. : @staff : Comme cette discussion a quelque peu échappé à tout contrôle concernant les détails appropriés de configuration d’Nginx ou du serveur Web, je suggère une refonte approfondie en divisant ces messages dans un sujet correctement intitulé, tel que « Configuration du serveur Web pour la page hors ligne ». Je suis sûr que vous trouverez un bon titre. Merci d’avance si vous appréciez cette suggestion et la jugez digne d’être suivie.
En fait, nous nous sentons vraiment bêtes maintenant d’avoir trouvé immédiatement ce bloc de texte personnalisable du site :
Nous avons modifié le texte par défaut js.topic.server_error.description pour qu’il s’affiche ainsi :
Merci de nous avoir écoutés ;].
Hm. Nous ne sommes pas sûrs que la modification de ce texte fonctionne réellement pour nous. Devons-nous prendre en compte quelque chose de spécial ici lors de la modification de cet élément ?
Par ailleurs, nous aimerions signaler que pendant une période spécifique où le site était hors ligne, il affichait un message différent comme suit :
Avez-vous une idée de la manière dont nous pourrions également modifier cela ?
Je l’utilise, mais je souhaite une page web hors ligne personnalisée et je n’y arrive pas.
Guide merveilleux.
Mais si seulement vous aviez fourni quelques commandes pour renouveler automatiquement ce certificat également. Cela en ferait un guide complet.
Car j’ai bien vu le lien mentionné ici. Mais ce lien indique uniquement comment installer le certificat fraîchement ou le renouveler.
Je n’ai cependant pas trouvé de conseils pour le « renouvellement automatique » du même.
Merci.
Bonne remarque ! J’ai mis à jour cette section plus haut dans le message d’origine ![]()
Est-ce que quelqu’un d’autre a remarqué qu’ils voient une erreur 500 plus générique lors de la mise à niveau ? Peut-être que je suis tombé au mauvais moment ?
Lorsque le conteneur est arrêté pendant une reconstruction, aucun processus n’est en cours d’exécution pour renvoyer une erreur 500.
Quelqu’un a-t-il essayé d’utiliser un autre conteneur Docker pour cela afin d’éviter toutes ces étapes manuelles, comme suggéré au début ?
Oui, beaucoup l’ont fait. Consultez Move from standalone container to separate web and data containers. Notez que l’utilisation de conteneurs séparés est une installation plus complexe, et que de nombreux guides sur Meta supposent une installation en conteneur unique (autonome). Avant de passer à des conteneurs séparés, assurez-vous de comprendre ce que font les deux conteneurs et comment vous interagirez avec eux à l’avenir. Le point le plus important à noter : app ne sera plus une cible valide pour la commande ./launcher.
Hmm, ce sujet mentionne encore « nginx en amont » pour une raison quelconque dans deux messages…
D’ailleurs, ce que je veux vraiment, c’est :
Donc, si je comprends bien, je dois juste trouver comment faire cela uniquement dans le conteneur web ![]()
Maintenant, je suis confus.
Aucun de ces objectifs ne nécessite une configuration de conteneur séparée. Cherchez-vous à configurer les deux étapes ci-dessus et, indépendamment, à rechercher des conteneurs séparés ? Ou envisagiez-vous des conteneurs séparés en pensant qu’ils étaient nécessaires pour accomplir ce qui précède ?
Comme je le comprends, la gestion de la page hors ligne (reconstruction) ne peut pas se trouver dans le même conteneur, car elle ne sera pas en cours d’exécution. Ainsi, la solution proposée dans le sujet actuel consiste à ajouter nginx devant. Mais comme discuté dans ce sujet, cela nécessite de nombreuses étapes manuelles et dépendantes du système d’exploitation. J’ai donc pensé qu’utiliser un autre conteneur Docker pour ce nginx frontal serait plus fiable et plus facile à maintenir.
Ah, je vois maintenant. Dans ce cas, ignorez le sujet que j’ai lié précédemment. Il s’agissait de séparer le serveur web Discourse de la base de données, ce qui n’est pas nécessaire ici.
Installer Nginx dans un conteneur Docker, plutôt que directement sur le système d’exploitation, est tout à fait possible, mais je ne connais pas de guides spécifiques à Discourse pour le faire. Si vous choisissez cette voie, assurez-vous de bien comprendre l’OP de ce sujet (les modifications nécessaires pour créer la page hors ligne et installer un proxy nginx devant), et que vous maîtrisez le fonctionnement de Docker, en particulier la configuration du réseau entre deux conteneurs Docker. Notez également que nous serons probablement limités dans l’aide que nous pouvons apporter, car ce n’est pas quelque chose que nous avons l’habitude de faire.
J’ai également réalisé que cela ne fonctionne plus.
J’avais mis en œuvre l’approche de @fefrei début novembre et cela fonctionnait certainement à l’époque. Peut-être est-ce parce que j’arrêtais le conteneur manuellement et que je faisais un git pull au lieu d’utiliser /admin/upgrade.
4 messages ont été déplacés vers un nouveau sujet : Ajout de la prise en charge d’une page hors ligne native lors de la reconstruction
Nous avons fait exactement la même chose récemment et la page hors ligne s’est activée avec succès.
À l’heure actuelle, nous venons de procéder à la mise à jour en ligne via /admin/upgrade et nous avons constaté que Discourse n’est pas passé hors ligne du tout ! Que cela ait été amélioré récemment ou non, ou que nous ayons simplement eu de la chance cette fois, il est formidable de voir une mise à jour en ligne se dérouler sans aucun temps d’arrêt significatif.
Discourse ne devrait jamais être mis hors ligne lors de la réalisation de mises à jour via Docker Manager (/admin/upgrade). Est-ce que cela se produit habituellement pour vous ? Si oui, nous devrions lancer un sujet de Support à ce sujet.