Impossible de dépasser l'initialisation

Je viens d’installer Discourse sur deux VMs différentes.
J’utilise les instructions d’installation officielles.
L’une fonctionne sous Debian 12 dans une instance VMWare Fusion sur un Mac Pro, l’autre est sous Ubuntu 24 dans une VM fonctionnant sous TrueNAS.
Les deux sont sur des serveurs dédiés sur mon réseau local avec des réseaux en pont et ont des adresses IP accessibles et uniques.
Le serveur TN héberge plusieurs autres applications en conteneur Docker, toutes fonctionnent et sont accessibles via le LAN et Internet, le Mac Pro héberge nativement un wiki.
Sur les deux, la fonction de bootstrap se termine, mais je n’obtiens pas un site fonctionnel. J’ai simplement ‘serveur non répondant’ dans un navigateur.
Selon docker ps le conteneur “app” est en marche, écoutant sur les ports 80 et 443, ufw indique qu’il autorise ces ports.
Pendant un temps, le site Debian montrait une page d’accueil nginx par défaut, mais cela ne répond plus non plus.
Je ne suis pas un développeur ou un wizard du web, donc je ne sais pas comment diagnostiquer le problème, j’ai demandé l’aide de Grok mais jusqu’à présent rien n’a fonctionné.

Je vous remercie d’avance pour toute aide apportée.

S’ils ne sont pas sur l’internet public avec un nom de domaine qui y pointe, vous ne pouvez pas effectuer une installation standard.

Vous pouvez consulter Install Discourse on a residential internet with Cloudflare Tunnel

1 « J'aime »

J’ai une adresse IP statique accessible publiquement et un nom de domaine pointant vers cette adresse.
Je utilise généralement un enregistrement A générique pour faire pointer n’importe quel hôte vers cette IP, mais lors de mes dépannages, je suis tombé sur un message disant que Discourse pourrait ne pas fonctionner correctement avec des adresses proxy dans la DNS de Cloudflare, alors j’ai créé un enregistrement A dédié et désactivé le proxy pour celui-ci.

Avez-vous exécuté discourse-setup ? A-t-il réussi le test de connexion ?

Est-ce que j’utilise le terme ‘fonction bootstrap’ correctement ?
Je veux juste m’assurer que nous parlons de la même chose.
./discourse-setup est bien le bootstrap, n’est-ce pas ?
Donc, si je dis qu’il bootstrap et que le conteneur tourne, alors le test de connexion, qui se produit au tout début de la configuration, a réussi.

Tout cela a-t-il du sens ?

Eh bien, en quelque sorte. Il crée un app.yml puis exécute ./launcher bootstrap app.

Si vous l’avez exécuté plusieurs fois sans que le DNS ne fonctionne correctement, vous avez atteint les limites de débit avec Let’s Encrypt. Les solutions faciles sont d’attendre une semaine ou d’utiliser un nom de domaine différent.

Et rien d’autre ne tourne sur cette machine ?

Et lorsque vous avez exécuté discourse-setup, il ne s’est pas plaint de ne pas pouvoir se connecter à lui-même ?

Je ne l’ai exécuté qu’une seule fois sur chaque VM, et j’ai utilisé un nom d’hôte différent pour chacune.

VM toutes neuves sans rien d’autre qui tourne dessus. Sur le matériel réel, il y a d’autres choses qui tournent. Mais elles ont des adresses IP internes distinctes de leurs hôtes.

Correct.

Voici les erreurs que j’ai trouvées dans la sortie de l’installation, aucune ne semble bloquante :

690:M 30 Apr 2025 22:05:22.859 # Avertissement : Impossible de créer la socket d'écoute TCP du serveur *:6379 : erreur de liaison : Adresse déjà utilisée
690:M 30 Apr 2025 22:05:22.859 # Échec de l'écoute sur le port 6379 (TCP), abandon.
109:M 30 Apr 2025 21:59:42.411 # AVERTISSEMENT La surcharge de mémoire doit être activée ! Sans cela, une sauvegarde en arrière-plan ou une réplication peut échouer en cas de faible mémoire...
2025-04-30 21:59:41.125 UTC [60] postgres@postgres ERREUR :  la base de données "discourse" existe déjà
2025-04-30 21:59:41.274 UTC [63] postgres@discourse ERREUR :  le rôle "discourse" existe déjà
AVERTISSEMENT : Spécifications non résolues ou ambiguës lors de Gem::Specification.reset :
      stringio ()
      Versions disponibles/installées de cette gem :
      - 3.1.7
      - 3.1.5
      - 3.1.1
AVERTISSEMENT : Vider les spécifications non résolues. Essayez 'gem cleanup <gem>'
Veuillez signaler un bug si cela cause des problèmes.
Le paramètre 'staticAddonTrees' sera par défaut à vrai dans la prochaine version d'Embroider et ne pourra plus être désactivé. Pour vous préparer, vous devriez définir 'staticAddonTrees: true' dans votre configuration Embroider.
Le paramètre 'staticAddonTestSupportTrees' sera par défaut à vrai dans la prochaine version d'Embroider et ne pourra plus être désactivé. Pour vous préparer, vous devriez définir 'staticAddonTestSupportTrees: true' dans votre configuration Embroider.
La limite de mémoire heap de Node.js est inférieure à 2048MB. Définissez --max-old-space-size=2048 et CHEAP_SOURCE_MAPS=1
-e DISCOURSE_SMTP_DOMAIN=discourse.example.com
[BABEL] Note : Le générateur de code a désoptimisé le style de /var/www/discourse/app/assets/javascripts/discourse/ember/ember-template-compiler.js car il dépasse 500Ko.
[BABEL] Note : Le générateur de code a désoptimisé le style de /var/www/discourse/app/assets/javascripts/discourse/ember/ember.js car il dépasse 500Ko.

Quelles sont les spécifications de vos VM ? C’est-à-dire, combien de vCPU/ RAM leur sont alloués ?

Les deux ont 2/2

1 « J'aime »

Est-ce que l’augmenter à 4 Go de RAM aide ? Je pense que les exigences en mémoire ont peut-être augmenté.

1 « J'aime »

Je ne pensais pas au fait que comme le port 80 est déjà utilisé et que je n’ai qu’une seule IP externe, même si la vérification du domaine passait lors du processus de configuration, j’ai dû modifier les ports côté hôte pour faire fonctionner les choses.

J’utilise NPM en interne.

Étapes pour faire fonctionner les choses :

  1. Modifier le port côté hôte en 7080 pour HTTP
  2. Comme je vais faire passer le trafic par mon gestionnaire de proxy, j’ai simplifié ma vie en désactivant les scripts LE
  3. Mettre à jour l’application
  4. Passé ‘ext IP:80’ à ‘int IP:7080’ dans le proxy inverse, puis le conteneur a inversé les ports… puis ils ont fait le Hokey Pokey et se sont retournés.

Maintenant, tout semble fonctionner jusqu’à présent.

2 « J'aime »