Hello,
I have the same problem with nginx and discourse. Always getting the “welcome to nginx"-Page instead of discourse.
DNS and Mail server are setup and I’m hosting on-prem and not in the cloud.
I used this guide: https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md
Fresh installation from Ubuntu:
Distributor ID: Ubuntu
Description: Ubuntu 19.10
Release: 19.10
Codename: eoan
lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 23296 root 4u IPv6 62651 0t0 TCP *:http (LISTEN)
netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 819/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 906/sshd
tcp6 0 0 :::80 :::* LISTEN 23296/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 906/sshd
tcp6 0 0 :::443 :::* LISTEN 23283/docker-proxy
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
01b8b484088b local_discourse/app "/sbin/boot" 12 hours ago Up 12 hours 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp app
I also tried Debian 9 and 10.
I will also try Ubuntu 18.04LTS and write down the result
The server has access to the Internet, but is not accessible from the Internet and the DNS ends with .lan
Soo… does letsencrypt play a role at all, because authority can’t check it from the Internet?
I installed Ubuntu 18.04LTS and I have the same problem.
lsb_release -a:
Distributor ID: Ubuntu
Description: Ubuntu 18.04.4 LTS
Release: 18.04
Codename: bionic
lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
docker-pr 1598 root 4u IPv6 21087 0t0 TCP *:http (LISTEN)
netstat -tulpn:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.53:53 0.0.0.0:* LISTEN 854/systemd-resolve
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1233/sshd
tcp6 0 0 :::80 :::* LISTEN 1598/docker-proxy
tcp6 0 0 :::22 :::* LISTEN 1233/sshd
tcp6 0 0 :::443 :::* LISTEN 1583/docker-proxy
udp 0 0 127.0.0.53:53 0.0.0.0:* 854/systemd-resolve
docker ps:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
798e15496293 local_discourse/app "/sbin/boot" 2 hours ago Up 3 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp app
Discourse will not work from an IP address, you must own a domain name such as example.com to proceed.
If you’re not using a publicly valid FQDN then the normal install route won’t work for you. Local DNS entries and domain names aren’t interchangeable here. Let’s Encrypt will fail because the DNS entry isn’t valid.
You’re going to need to modify the app.yml by hand to eliminate HTTPS and Let’s Encrypt. Comment out the unnecessary templates and the entry which exposes port 443.
Unless you plan on issuing a self-signed certificate you will be serving everything over HTTP.
I have the same problem with Fun Tec. I have my own domain and I don’t think it is the problem of letsencrypt. Here is my logs after command sudo ./launcher restart app. Can you find some useful information?
Shutting Down
run-parts: executing /etc/runit/3.d/01-nginx
ok: down: nginx: 0s, normally up, want up
run-parts: executing /etc/runit/3.d/02-unicorn
(2165) exiting
ok: down: unicorn: 1s, normally up
run-parts: executing /etc/runit/3.d/10-redis
ok: down: redis: 0s, normally up
run-parts: executing /etc/runit/3.d/99-postgres
ok: down: postgres: 0s, normally up
ok: down: nginx: 2s, normally up
ok: down: postgres: 0s, normally up
ok: down: redis: 1s, normally up
ok: down: unicorn: 2s, normally up
ok: down: cron: 0s, normally up
ok: down: rsyslog: 0s, normally up
run-parts: executing /etc/runit/1.d/00-ensure-links
run-parts: executing /etc/runit/1.d/00-fix-var-logs
run-parts: executing /etc/runit/1.d/01-cleanup-web-pids
run-parts: executing /etc/runit/1.d/anacron
run-parts: executing /etc/runit/1.d/cleanup-pids
Cleaning stale PID files
run-parts: executing /etc/runit/1.d/copy-env
run-parts: executing /etc/runit/1.d/letsencrypt
[Wed 16 Dec 2020 01:26:10 PM UTC] Using CA: https://acme-v02.api.letsencrypt.org/directory
[Wed 16 Dec 2020 01:26:10 PM UTC] Single domain='a.mapengfei.xyz'
[Wed 16 Dec 2020 01:26:10 PM UTC] Getting domain auth token for each domain
I’m dealing with the same issue here.
Fresh install of ubuntu 24 lts
Bootstrap completes, then nginx default page.
When I ./discourse-doctor I get:
DISCOURSE DOCTOR Fri Apr 25 06:19:55 PM UTC 2025
OS: Linux talk 6.8.0-58-generic #60-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 14 18:29:48 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Found containers/app.yml
==================== YML SETTINGS ====================
DISCOURSE_HOSTNAME=talk.technospider.com
SMTP_ADDRESS=smtppro.zoho.com
DEVELOPER_EMAILS=REDACTED
SMTP_PASSWORD=REDACTED
SMTP_PORT=587
SMTP_USER_NAME=david@technospider.com
LETSENCRYPT_ACCOUNT_EMAIL=REDACTED
==================== DOCKER INFO ====================
DOCKER VERSION: Docker version 26.1.3, build 26.1.3-0ubuntu1~24.04.1
DOCKER PROCESSES (docker ps -a)
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS
NAMES
394018ecf271 local_discourse/app "/sbin/boot" 21 minutes ago Up 21 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->
443/tcp, :::443->443/tcp app
Discourse container app is running
==================== PLUGINS ====================
- git clone https://github.com/discourse/docker_manager.git
No non-official plugins detected.
See https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb for the official list.
========================================
Discourse version at talk.technospider.com: NOT FOUND
Discourse version at localhost: NOT FOUND
==================== MEMORY INFORMATION ====================
OS: Linux
RAM (MB): 4055
total used free shared buff/cache available
Mem: 3867 1695 174 56 2345 2172
Swap: 3866 98 3768
==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 19G 12G 6.0G 66% /
==================== DISK INFORMATION ====================
Disk /dev/loop0: 44.45 MiB, 46604288 bytes, 91024 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop1: 73.89 MiB, 77475840 bytes, 151320 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/loop2: 144.46 MiB, 151478272 bytes, 295856 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 57115BC0-AFA9-4902-9910-BB09315092BA
Device Start End Sectors Size Type
/dev/sda1 2048 2203647 2201600 1G EFI System
/dev/sda2 2203648 6397951 4194304 2G Linux filesystem
/dev/sda3 6397952 83884031 77486080 36.9G Linux filesystem
Disk /dev/mapper/ubuntu--vg-ubuntu--lv: 18.47 GiB, 19834863616 bytes, 38739968 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
==================== END DISK INFORMATION ====================
==================== MAIL TEST ====================
For a robust test, get an address from http://www.mail-tester.com/
Sending mail to REDACTED . .
Testing sending to technospider@icloud.com using smtppro.zoho.com:587, username:david@technospider.com with plain auth.
SMTP server connection successful.
Sending to technospider@icloud.com. . .
Mail accepted by SMTP server.
Message-ID: 9e763c7d-b64d-4119-8f74-edd47154a799@talk.technospider.com
If you do not receive the message, check your SPAM folder
or test again using a service like http://www.mail-tester.com/.
If the message is not delivered it is not a problem with Discourse.
Check the SMTP server logs for the above Message ID to see why it
failed to deliver the message.
==================== DONE! ====================
And the test email arrives as expected.
I feel like I’m really close.
docker ps:
394018ecf271 local_discourse/app "/sbin/boot" 47 minutes ago Up 47 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp app
There is no nginx or apache2 for that matter installed on the server.
Just to clarify, it seems that nginx page is only available when surfing to the host name from the host computer, any other computers on the network just get a failed to connect error.
Yes ./discourse-setup is the bootstrapping sequence right? The container wouldn’t be running if I didn’t I don’t believe. I followed the instructions here, and about 7 minutes later I got the Welcome to NGINX page.
Is there a specific connection test you’d like me to run? There was so much output from the setup I couldn’t capture it all.