VPS Installation on Hostinger with LEMP Stack Ubuntu 24.04 LTS and CloudPanel

I have 3 sites in Drupal 7 that use PHP Generic and Varnish. The LEMP stack uses NGINX.
I want to install Discourse as a forum for one of my sites.
I have installed docker, discourse, configured the subdomain and the /etc/nginx/sites-enabled/forum.linguagemclipper.com.br.conf
I have created the certificates.
After installation I get: The provided host name is not valid for this server.
I got several errors regarding the use of the same port.
I believe I need to fix my .conf and my app.yml, I have already done several tests with the help of ChatGPT, I have already run ./discourse-doctor
I don’t know what else to do…
My .conf:

server {
    listen 80;
    listen [::]:80;
    server_name forum.linguagemclipper.com.br;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    listen [::]:443 ssl;
    http2 on;
    http3 off;
    server_name forum.linguagemclipper.com.br;

    ssl_certificate     /etc/letsencrypt/live/forum.linguagemclipper.com.br/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/forum.linguagemclipper.com.br/privkey.pem;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }
}

And my app.yml:

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  ## Uncomment the next line to enable the IPv6 listener
  #- "templates/web.ipv6.template.yml"
  - "templates/web.ratelimited.template.yml"
  ## Uncomment these two lines if you wish to add Lets Encrypt (https)
#  - "templates/web.ssl.template.yml"
#  - "templates/web.letsencrypt.ssl.template.yml"

## which TCP/IP ports should this container expose?
## If you want Discourse to share a port with another webserver like Apache or nginx,
## see https://meta.discourse.org/t/17247 for details
expose:
- "8080:80"   # internal Discourse http mapped to port 8080
#  - "3000:80"   # http
#  - "4433:443"  # https

params:
  db_default_text_search_config: "pg_catalog.english"

  ## Set db_shared_buffers to a max of 25% of the total memory.
  ## will be set automatically by bootstrap based on detected RAM, or you can override
  db_shared_buffers: "2048MB"

  ## can improve sorting performance, but adds memory usage per-connection
  db_work_mem: "40MB"

  ## Which Git revision should this container use? (default: tests-passed)
  #version: tests-passed

env:
  LC_ALL: en_US.UTF-8
  LANG: en_US.UTF-8
  LANGUAGE: en_US.UTF-8
  DISCOURSE_DEFAULT_LOCALE: pt_BR

  # HTTPS is forced, even without using internal SSL
  DISCOURSE_FORCE_HTTPS: true

  ## How many concurrent web requests are supported? Depends on memory and CPU cores.
  ## will be set automatically by bootstrap based on detected CPUs, or you can override
  UNICORN_WORKERS: 4

Some errors:

+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=4 -e UNICORN_SIDEKIQS=1 -e RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e RUBY_GC_HEAP_INIT_SLOTS=400000 -e RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e DISCOURSE_DB_SOCKET=/var/run/postgresql -e DISCOURSE_DB_HOST= -e DISCOURSE_DB_PORT= -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -e DISCOURSE_DEFAULT_LOCALE=pt_BR -e DISCOURSE_FORCE_HTTPS=true -e DISCOURSE_HOSTNAME=forum.linguagemclipper.com.br -e DISCOURSE_DEVELOPER_EMAILS=anderson@linguagemclipper.com.br -e DISCOURSE_SMTP_ADDRESS=smtppro.zoho.com -e DISCOURSE_SMTP_PORT=587 -e DISCOURSE_SMTP_USER_NAME=anderson@linguagemclipper.com.br -e 'DISCOURSE_SMTP_PASSWORD=Clavis75!' -e DISCOURSE_SMTP_ENABLE_START_TLS=true -e LETSENCRYPT_ACCOUNT_EMAIL=anderson@linguagemclipper.com.br -h srv801054-app -e DOCKER_HOST_IP=172.17.0.1 --name app -t -p 8080:80 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:cd:20:6d:ed:a7 local_discourse/app /sbin/boot
f221ba6dc911301795806390816be38e78c26b71d94773c814f057817b88a776
docker: Error response from daemon: driver failed programming external connectivity on endpoint app (a5dc4c7ba846ccf556189495ce62e040cea87a62cf47e44fef76b4364fcb9e4a): Error starting userland proxy: listen tcp4 0.0.0.0:8080: bind: address already in use.
root@srv801054:/var/discourse# docker ps -a
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS                    PORTS     NAMES
18cc215795b4   local_discourse/app                "/sbin/boot"             22 minutes ago   Created                             app
7cc7772ec84d   discourse/base:2.0.20250226-0128   "/bin/bash -c '/usr/…"   22 hours ago     Exited (0) 22 hours ago             frosty_mendeleev
fb3ce2afb5a7   discourse/base:2.0.20250226-0128   "/bin/bash -c '/usr/…"   22 hours ago     Exited (0) 22 hours ago             determined_greider
root@srv801054:/var/discourse# sudo ss -ltnp | grep :8080
LISTEN 0      511          0.0.0.0:8080       0.0.0.0:*    users:(("nginx",pid=885962,fd=26),("nginx",pid=885961,fd=26),("nginx",pid=674485,fd=26))
LISTEN 0      511             [::]:8080          [::]:*    users:(("nginx",pid=885962,fd=27),("nginx",pid=885961,fd=27),("nginx",pid=674485,fd=27))
root@srv801054:/var/discourse# sudo lsof -i :8080
COMMAND      PID   USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
cache-mai 400747 vcache   26u  IPv4 4374453      0t0  TCP localhost:45054->localhost:http-alt (ESTABLISHED)
nginx     674485   root   26u  IPv4 3106797      0t0  TCP *:http-alt (LISTEN)
nginx     674485   root   27u  IPv6 3106798      0t0  TCP *:http-alt (LISTEN)
nginx     885961   root   26u  IPv4 3106797      0t0  TCP *:http-alt (LISTEN)
nginx     885961   root   27u  IPv6 3106798      0t0  TCP *:http-alt (LISTEN)
nginx     885961   root   44u  IPv4 4374454      0t0  TCP localhost:http-alt->localhost:45054 (ESTABLISHED)
nginx     885962   root   26u  IPv4 3106797      0t0  TCP *:http-alt (LISTEN)
nginx     885962   root   27u  IPv6 3106798      0t0  TCP *:http-alt (LISTEN)
root@srv801054:/var/discourse#

Looks like something else is using that port. Try another port? After you change the port in the app.yml, you can

./launcher destroy app;./launcher start app

instead of doing a whole rebuild.

DISCOURSE INSTALLED, BUT NOT SENDING EMAILS

I changed the discourse port in app.yml to 8888 and also in the Cloudpanel vhost, then stopped NGINX to recompile discourse and it worked.
I reactivated NGINX and both the websites and discourse remained online.
The problem is that discourse is not sending emails at all; we need the account activation email.
I already changed the ports and it didn’t help.
On the same server, I installed Mailcow inside a Docker container and it is working normally, both sending and receiving emails.

Looks like you’re doing some creative, cool stuff on your server! Note that we only are able to provide support here if you use the official install instructions. Please take a look and try again following the instructions, which also provides troubleshooting steps.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.