The connection has timed out


After installation of discouse, I’m getting “The connection has timed out” message in the browser.


I’m on Digital Ocean one click apps.

Note: Before the discourse installation, I was able to see the default page of digital ocean.

Any idea why is this?


Have You followed all the steps as suggested by DO in this Guide?

1 Like


Dear @itsbhanusharma

Thank you for the response.

Yes. I have aleady installed discourse successfully many times before! I don’t know what happened this time.

This is my app.yml

  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.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 for details
  - "80:80"   # http
  - "443:443" # https

  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: "256MB"

  ## 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

  LANG: en_US.UTF-8

  ## 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

  ## TODO: The domain name this Discourse instance will respond to

  ## Uncomment if you want the container to be started with the same
  ## hostname (-h option) as specified above (default "$hostname-$config")

 ## Uncomment if you want the container to be started with the same
  ## hostname (-h option) as specified above (default "$hostname-$config")

  ## TODO: List of comma delimited emails that will be made admin and developer
  ## on initial signup example ','
  DISCOURSE_DEVELOPER_EMAILS: 'myemail@hotmail,'

  ## TODO: The SMTP mail server used to validate new accounts and send notifications
  DISCOURSE_SMTP_ADDRESS:         # required
  DISCOURSE_SMTP_PORT: 587                        # (optional, default 587)
  DISCOURSE_SMTP_USER_NAME: SMTP_Injection      # required
  DISCOURSE_SMTP_PASSWORD: HIDEEEEEEEEEEEEEE              # required, WARNING the char '#' in pw $
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, default true)

  ## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate

  ## The CDN address for this Discourse instance (configured to pull)
  ## see for details

## The Docker container is stateless; all data is stored in /shared
  - volume:
      host: /var/discourse/shared/standalone
      guest: /shared
  - volume:
      host: /var/discourse/shared/standalone/log/var-log
      guest: /var/log

## Plugins go here
## see for details
    - exec:
        cd: $home/plugins
          - git clone

## Any custom commands to run after building
  - exec: echo "Beginning of custom commands"
  ## If you want to set the 'From' email address for your first registration, uncomment and change:
  ## After getting the first signup email, re-comment the line. It only needs to run once.
  #- exec: rails r "SiteSetting.notification_email=''"
  - exec: echo "End of custom commands"


This is well beyond my territory some other people are also reporting installation failures here on meta so maybe there is some issue with the code. It’s better to wait for someone from team to provide better details.

1 Like


This is the response from Digitalocean:

Hey there,

Thanks for reaching out!

Sorry to hear that you are experiencing issues with this. From our end we can confirm that your Droplet is online, however it does not appear to be listening for web/http connections properly. This is typically a sign that either your web server service is not running properly, is not configured properly or there are firewall rules preventing connectivity issues.

To investigate this issue we would recommend that you first ensure that your web server service (Commonly used services are Apache or Nginx) is running. If the service is not running you will simply want to start it. If you encounter any issues starting the service you will want to use the logs provided during the startup process to investigate why there are issues. If the service is already running then we would recommend ensuring that it is configured to listen over port 80 on a publicly accessible interface. This can be checked by running the following command:

netstat -plnt

If this also is in order then the next thing you will want to check is your firewall to see if there are any rules preventing connectivity.

If you have any further questions or concerns, just let us know.

I executed the code:

root@discourse-s-1vcpu-3gb-sgp1-kcc:/var/discourse# netstat -plnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0    *               LISTEN      13063/sshd      
tcp6       0      0 :::80                   :::*                    LISTEN      28089/docker-proxy
tcp6       0      0 :::22                   :::*                    LISTEN      13063/sshd      
tcp6       0      0 :::443                  :::*                    LISTEN      28078/docker-proxy

I’m not very much into the programing side.

Please suggest me a solution.


Maybe Instead of Digitalocean’s Pre-built image, Try Installing manually as per:



Existing droplet deleted.

Now trying manual installation.

1 Like

Hey @itsbhanusharma,

Thanks for the suggestion!

You saved me monthly $10 (Since $10 plan is enough to start instead of $20), and I installed successfully, and the website is accessible now!



I Hope it helped You learn something new as well!

Good luck and Have a Great time exploring :wink:


Yes! I owe you a big thank you! :sunglasses:

Have a wonderful day!


For future reference, DO was spot on.

The netstat command verified it was listening, so almost definitely there were firewall rules in the way. “Connection timed out” is an indication something is dropping the connection attempt whereas “Connection refused” usually indicates the attempt makes it through but nothing is listening.

That said, we’re happy you’re able to get a supported install up and running :+1:!


Just one thing!

Their image (Discourse One Click install) may be having a bad day because that is what caused the issues!
Installation from scratch seemed to work! … So I Guess This is to be raised with them?

1 Like