Cannot access Discourse after new install


(Joe) #1

Heads up, I don’t know the right terms for most of these things. If I sound confusing, please ask for clarification

I just attempted to install Discourse on (via?) Docker.

My issue is that I cannot access Discourse afterwards even though everything seems to be running during the installation.

This site can’t be reached

xx.xxx.xxx.xx refused to connect.

The steps to reprduce my issue are:
1- Install ubuntu with this image:
https://console.cloud.google.com/launcher/details/ubuntu-os-cloud/ubuntu-xenial

2- I follow the steps in this tutorial to the T

3- Cannot access discourse.


A bit of background info:

I would like to connect via the server ip address. as opposed to using a domain name

There is also the contents of app.yml and ourput for ./launcher logs app which you can find in the summary cards below:

app.yml
## this is the all-in-one, standalone Discourse Docker container template
##
## After making changes to this file, you MUST rebuild
## /var/discourse/launcher rebuild app
##
## BE *VERY* CAREFUL WHEN EDITING!
## YAML FILES ARE SUPER SUPER SENSITIVE TO MISTAKES IN WHITESPACE OR ALIGNMENT!
## visit http://www.yamllint.com/ to validate this file as needed

templates:
  - "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 https://meta.discourse.org/t/17247 for details
expose:
  - "80:80"   # http
  - "443: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: "768MB"

  ## 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:
  LANG: en_US.UTF-8
  # DISCOURSE_DEFAULT_LOCALE: en

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

  ## TODO: The domain name this Discourse instance will respond to
  DISCOURSE_HOSTNAME: sub.domain.com

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

  ## TODO: List of comma delimited emails that will be made admin and developer
  ## on initial signup example 'user1@example.com,user2@example.com'
  DISCOURSE_DEVELOPER_EMAILS: 'foobar@gmail.com'

  ## TODO: The SMTP mail server used to validate new accounts and send notifications
  DISCOURSE_SMTP_ADDRESS: mail.foo.xyz
  DISCOURSE_SMTP_PORT: 578
  DISCOURSE_SMTP_USER_NAME: stmp@foo.xyz
  DISCOURSE_SMTP_PASSWORD: "#########"
  #DISCOURSE_SMTP_ENABLE_START_TLS: true           # (optional, default true)

  ## If you added the Lets Encrypt template, uncomment below to get a free SSL certificate
  #LETSENCRYPT_ACCOUNT_EMAIL: me@example.com

  ## The CDN address for this Discourse instance (configured to pull)
  ## see https://meta.discourse.org/t/14857 for details
  #DISCOURSE_CDN_URL: //discourse-cdn.example.com

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

## Plugins go here
## see https://meta.discourse.org/t/19157 for details
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git

./launcher logs app
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/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/enable-brotli
Started runsvdir, PID is 35
sh: echo: I/O error
ok: run: redis: (pid 44) 0s
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.0.6 (00000000/0) 64 bit
  .-`` .-```.  ```\/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 44
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

44:M 16 Nov 04:51:49.722 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
44:M 16 Nov 04:51:49.722 # Server started, Redis version 3.0.6
44:M 16 Nov 04:51:49.723 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
44:M 16 Nov 04:51:49.723 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
ok: run: postgres: (pid 43) 0s
44:M 16 Nov 04:51:49.734 * DB loaded from disk: 0.011 seconds
44:M 16 Nov 04:51:49.734 * The server is now ready to accept connections on port 6379
rsyslogd: command 'KLogPermitNonKernelFacility' is currently not permitted - did you already set it via a RainerScript command (v6+ config)? [v8.16.0 try http://www.rsyslog.com/e/2222 ]
rsyslogd: imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
rsyslogd: activation of module imklog failed [v8.16.0 try http://www.rsyslog.com/e/2145 ]
rsyslogd: Could not open output pipe '/dev/xconsole':: No such file or directory [v8.16.0 try http://www.rsyslog.com/e/2039 ]
2017-11-16 04:51:49.828 UTC [61] LOG:  database system was shut down at 2017-11-16 04:51:01 UTC
2017-11-16 04:51:49.833 UTC [61] LOG:  MultiXact member wraparound protections are now enabled
2017-11-16 04:51:49.835 UTC [43] LOG:  database system is ready to accept connections
2017-11-16 04:51:49.836 UTC [65] LOG:  autovacuum launcher started
supervisor pid: 42 unicorn pid: 67
44:M 16 Nov 04:56:50.077 * 10 changes in 300 seconds. Saving...
44:M 16 Nov 04:56:50.078 * Background saving started by pid 2010
2010:C 16 Nov 04:56:50.083 * DB saved on disk
2010:C 16 Nov 04:56:50.084 * RDB: 2 MB of memory used by copy-on-write
44:M 16 Nov 04:56:50.178 * Background saving terminated with success
44:M 16 Nov 05:01:51.061 * 10 changes in 300 seconds. Saving...
44:M 16 Nov 05:01:51.062 * Background saving started by pid 2333
2333:C 16 Nov 05:01:51.067 * DB saved on disk
2333:C 16 Nov 05:01:51.068 * RDB: 2 MB of memory used by copy-on-write
44:M 16 Nov 05:01:51.163 * Background saving terminated with success
44:M 16 Nov 05:06:52.019 * 10 changes in 300 seconds. Saving...
44:M 16 Nov 05:06:52.020 * Background saving started by pid 2655
2655:C 16 Nov 05:06:52.026 * DB saved on disk
2655:C 16 Nov 05:06:52.026 * RDB: 2 MB of memory used by copy-on-write
44:M 16 Nov 05:06:52.121 * Background saving terminated with success
44:M 16 Nov 05:11:53.095 * 10 changes in 300 seconds. Saving...
44:M 16 Nov 05:11:53.096 * Background saving started by pid 2980
2980:C 16 Nov 05:11:53.101 * DB saved on disk
2980:C 16 Nov 05:11:53.102 * RDB: 2 MB of memory used by copy-on-write
44:M 16 Nov 05:11:53.196 * Background saving terminated with success
44:M 16 Nov 05:16:54.054 * 10 changes in 300 seconds. Saving...
44:M 16 Nov 05:16:54.055 * Background saving started by pid 3301
3301:C 16 Nov 05:16:54.061 * DB saved on disk
3301:C 16 Nov 05:16:54.062 * RDB: 2 MB of memory used by copy-on-write
44:M 16 Nov 05:16:54.156 * Background saving terminated with success
44:M 16 Nov 05:21:55.063 * 10 changes in 300 seconds. Saving...
44:M 16 Nov 05:21:55.064 * Background saving started by pid 3625
3625:C 16 Nov 05:21:55.070 * DB saved on disk
3625:C 16 Nov 05:21:55.071 * RDB: 2 MB of memory used by copy-on-write
44:M 16 Nov 05:21:55.164 * Background saving terminated with success

#2

Perhaps this?


(Joe) #3

You might be on to something @omarfilip

If that turns out to be the case, the installation guide might need to be edited a little bit as it seems to indicate that direct ip access is not an issue

From the official guide:

Start Discourse

Once bootstrapping is complete, your Discourse should be accessible in your web browser via the domain name discourse.example.com you entered earlier, provided you configured DNS. If not, you can visit the server IP directly, e.g. http://192.168.1.1.


(Jeff Atwood) #4

That’s not a reference to “in production”, that is a troubleshooting step. So nothing needs to be changed.


(Jay Pfaffman) #5

The app.yml you linclude has a hostname in it. Did you enter an IP number and not a hostname when you ran ./discourse-setup?

I suppose I could add a check for such in discourse-setup.


(Joe) #6

I entered a host-name in the setup but have not added DNS records.

For what it’s worth. It’s now working by connecting to the ip address. I don’t really know how it happened or what changed.


(Stephen Chung) #7

Beware you’ll not be able to see images and other uploads as they’ll use the hostname. Other than that your site should work fine.


(Joe) #8

Well that explains a bunch of things :grin:

Thank you for for the tip. connecting to the ip is ok for now, just to get my toes wet with discourse. Once I’m a little bit comfortable I’ll do a fresh install and follow official recommendations / best practices