Unable to install Discourse following the official instructions


#1

Hi,

I’m trying to install Discourse into a VPS following the provided instructions but after doing everything they say, step by step when I try to visit the site, the server doesn’t respond.

I spent the last to day trying to find out what is the problem and until now the only piece of information that I found and I think it’s useful is the next error message form the nginx log(shared/standalone/log/var-log/nginx/error.log):

[emerg] 2928#2928: BIO_new_file("/shared/ssl/startups.startuc3m.com.cer") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen(’/shared/ssl/startups.startuc3m.com.cer’,‘r’) error:2006D080:BIO routines:BIO_new_file:no such file)

Any idea what could be happening?

The OS I’m using is Ubuntu 16.04


(Jay Pfaffman) #2

Are you trying to use let’s Encrypt?

What does your app.yml look like?


#3

I’m not sure, but it may be trying to use it by default as I was asked for a email for Let’s Encrypt through the installation.

My app.yml looks like:

 ## 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: "128MB"
 
   ## 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: startups.startuc3m.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: 'p.lorenzo@startuc3m.com'
 
   ## TODO: The SMTP mail server used to validate new accounts and send notifications
   DISCOURSE_SMTP_ADDRESS: smtp.mailgun.org
   DISCOURSE_SMTP_PORT: 587
   DISCOURSE_SMTP_USER_NAME: postmaster@startups.startuc3m.com
   DISCOURSE_SMTP_PASSWORD: " *email 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: palelorenzo_7@hotmail.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
 
 ## Any custom commands to run after building
 run:
   - 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='info@unconfigured.discourse.org'"
   - exec: echo "End of custom commands"

(Jay Pfaffman) #4

Does the domain name that you used resolve to your droplet? If not lets encrypt cannot work.

You might disable (comment out with a # at the start of the line) the two lines that have to do with letsemcrypt, or start again and don’t define the let’s encrypt email address.


#5

Ok! I found the problem, I had changed the A record so the subdomain was pointing to my server, what I forgot is that I had another server monitoring that subdomain ip and changing it to point to it.

I just stoped the monitoring process, changed the A record again, ./launcher rebuild app and now it’s working lika a charm.

Thank yo very much.