J’ai récemment installé Discourse sur un VPS Ubuntu Focal Fossa et cela fonctionne très bien, mais je rencontre des difficultés pour résoudre certaines particularités d’URL.
Voici le comportement que j’observe (dans Safari). J’ai créé des enregistrements A nommés @, WWW et * chez mon registraire.
example.com [affiche la page « Bienvenue sur nginx ! »] ÉCHEC
www.example.com [redirige vers https://example.com] SUCCÈS
http://example.com [affiche la page « Bienvenue sur nginx ! »] ÉCHEC
http://www.example.com [redirige vers https://example.com et fonctionne correctement] SUCCÈS
https://example.com [fonctionne comme prévu, sans redirection] SUCCÈS
https://www.example.com [affiche l'erreur « Cette connexion n'est pas privée » du navigateur] ÉCHEC
Je souhaite que mon installation soit située à la racine/apex, j’ai donc saisi example.com lors de la configuration.
Bonjour @Falco, merci pour votre réponse. À ma connaissance, non, l’image du fournisseur VPS est simplement nommée « Focal Fossa Clean OS », ce qui signifie probablement qu’elle ne contient aucun outil tiers.
Il s’agit d’une installation standard, directement sortie de la boîte, en suivant la procédure d’installation de « 30 minutes » publiée.
sudo su
wget -qO- https://get.docker.com/ | sh
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
./discourse-setup
Oh, c’est alors un comportement vraiment étrange !
Peux-tu partager ton app.yml ici (en supprimant les données sensibles comme les mots de passe) ? Le fichier se trouve dans /var/discourse/containers/app.yml.
Bien sûr, merci. Est-ce que le fait que mon domaine ait une extension de domaine (TLD) inhabituelle pourrait causer des problèmes ? (c’est une .community).
## Ceci est le modèle de conteneur Docker Discourse autonome tout-en-un
##
## 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"
## 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: "768MB"
## Peut améliorer les performances de tri, mais augmente 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: 8
## TODO : Le nom de domaine auquel cette instance Discourse répondra
## Requis. Discourse ne fonctionnera pas avec une adresse IP brute.
DISCOURSE_HOSTNAME: example.com
## 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 définis comme administrateurs et développeurs
## lors de l'inscription initiale, par exemple 'user1@example.com,user2@example.com'
DISCOURSE_DEVELOPER_EMAILS: 'email@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.postmarkapp.com
DISCOURSE_SMTP_PORT: 587
DISCOURSE_SMTP_USER_NAME: username
DISCOURSE_SMTP_PASSWORD: "password"
#DISCOURSE_SMTP_ENABLE_START_TLS: true # (optionnel, par défaut true)
#DISCOURSE_SMTP_DOMAIN: discourse.example.com # (requis par certains fournisseurs)
## Si vous avez ajouté le modèle Lets Encrypt, décommentez ci-dessous pour obtenir un certificat SSL gratuit
LETSENCRYPT_ACCOUNT_EMAIL: email@gmail.com
## L'adresse CDN http ou https 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: https://discourse-cdn.example.com
## La clé d'adresse IP de géolocalisation Maxmind pour la recherche d'adresses IP
## consultez https://meta.discourse.org/t/-/137387/23 pour plus de détails
#DISCOURSE_MAXMIND_LICENSE_KEY: 1234567890123456
## 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
## 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, re-commentez 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"
et
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
465fbf1c3fb8 local_discourse/app "/sbin/boot" 47 minutes ago Up 46 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp app
Bon, je suis clairement un idiot. J’ai essayé sur mon téléphone en 4G (pour vérifier le DNS local), tous ces URL ont fonctionné sans problème. Une fois reconnecté au WiFi, tout fonctionne bien. J’ai donc vidé le cache de Safari sur le bureau et paf — tout fonctionne aussi là-bas.
Cela doit provenir de quand je testais initialement l’hébergeur et que le cache n’a pas été vidé depuis. Merci beaucoup pour votre aide dans le dépannage et désolé d’avoir pris de votre temps.
Pour information, j’ai rencontré le même problème aujourd’hui avec Ubuntu 22.04. Vider le cache de Safari et rafraîchir a également résolu le problème.