IT/Community/WG/Discourse: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
Line 57: Line 57:
|-
|-
|}
|}
== Discourse set-up ==
=== Install Discourse ===
  # Update Ubuntu
  sudo apt-get update && sudo apt-get upgrade   
 
  # Install Docker and git
  wget -qO- https://get.docker.io/ | sh
 
  # Create the directory for Discourse and clone the repo into it
  mkdir /var/discourse
  git clone https://github.com/discourse/discourse_docker.git /var/discourse
  cd /var/discourse
 
  # Copy the web example config
  cp samples/web_only.yml containers/app.yml
=== Edit app.yml ===
Open containers/app.yml in your favourite text editor and add/edit the following lines. Note that this is not the full file and YML is sensitive to indentation.
  params:
    version: tests-passed
  env:
    DISCOURSE_DEVELOPER_EMAILS: '' # For new instances, add an email address that you will use to sign up to discourse
    DISCOURSE_DB_PASSWORD: PASSWORD # Change this to the password for the database
    DISCOURSE_DB_POOL: 15
    DISCOURSE_DB_HOST: 'pgshared-db.mofoprod.net' # You will most likely be using this server
    DISCOURSE_DB_USERNAME: 'USERNAME' # Change this to the username that can access your database
    DISCOURSE_DB_NAME: 'DBNAME' # Change this to the name of the database for this instance
    DISCOURSE_HOSTNAME: 'HOSTNAME' # Change this to the domain that Discourse will run under
    DISCOURSE_REDIS_HOST: REDIS_HOST # Change this to the URL of the redis server
    # don't forget to set mail
    DISCOURSE_SMTP_ADDRESS: ADDRESS # Change this to the SES
    DISCOURSE_SMTP_PORT: 587
    DISCOURSE_SMTP_USER_NAME: USERNAME # Change this to the Amazon SES username
    DISCOURSE_SMTP_PASSWORD: PASSWORD # Change this to the Amazin SES password
    # New Relic
    NEW_RELIC_LICENSE_KEY: 123456789abcdef # Add a NR key
    NEW_RELIC_APP_NAME: communityit-NAME # Change NAME to something that can identify this Discourse instance
    # disable the annoying mini profiler
    DISCOURSE_ENABLE_MINI_PROFILER: false
In the same file, find the line
            - git clone https://github.com/discourse/docker_manager.git
Add the following two lines right after the line
            - git clone https://github.com/vikhyat/discourse-persona.git
            - git clone https://github.com/davidcelis/new_relic-discourse.git
=== Edit web.template.yml ===
Open templates/web.template.yml in your favourite text editor and add/edit the following lines. Note that this is not the full file and YML is sensitive to indentation.
Find the exec block with the command <pre>echo "done configuring web"</pre>
Before this block, add the following block. Remember to change HOSTNAME to the hostname of the Discourse instance.
    - replace:
        filename: "/etc/nginx/conf.d/discourse.conf"
        from: "server {"
        to: |+
          server {
          #Messy hack to force SSL on only the hostname, not IPs so ELB and Icinga work.
          set $use_https NO;
          if ($host ~* 'HOSTNAME') {
              set $use_https A;
          }
          if ($http_x_forwarded_proto != 'https') {
              set $use_https "${use_https}B";
          }
          if ($use_https = AB) {
              rewrite ^ https://$host$request_uri? permanent;
          }
After the edit it should look similar to this:
    - replace:
        filename: "/etc/nginx/conf.d/discourse.conf"
        from: "server {"
        to: |+
          server {
          #Messy hack to force SSL on only the hostname, not IPs so ELB and Icinga work.
          set $use_https NO;
          if ($host ~* 'discourse.mozilla-community.org') {
              set $use_https A;
          }
          if ($http_x_forwarded_proto != 'https') {
              set $use_https "${use_https}B";
          }
          if ($use_https = AB) {
              rewrite ^ https://$host$request_uri? permanent;
          }
 
 
    - exec:
        cmd: echo "done configuring web"
        hook: web_config
<!--= HP Cloud Reference =
<!--= HP Cloud Reference =
== Flavors ==
== Flavors ==
Confirmed users
90

edits

Navigation menu