Ariel Rin 95f72c854d Minor Documentation Update (#1019)
Gunicorn needs to be run whilist in the folder for context, folder path is not enough
Correct static path, note to check nginx user
Capitalization of services and small typos
Service examples updated to their latest versions and download links
Expanded /var/www chowns for Nginx and Apache examples
Add in a troubleshooting note for no images being displayed (permissions issue) and gunicorn not execting (file path context)
Correct formatting. Reword a few parts. Remove "new in 1.15".
2018-04-17 18:55:18 -04:00

3.5 KiB

Discourse

Prepare Your Settings

In your auth project's settings file, do the following:

  • Add 'allianceauth.services.modules.discourse', to your INSTALLED_APPS list

  • Append the following to your local.py settings file:

    Discourse Configuration

    DISCOURSE_URL = '' DISCOURSE_API_USERNAME = '' DISCOURSE_API_KEY = '' DISCOURSE_SSO_SECRET = ''

Install Docker

wget -qO- https://get.docker.io/ | sh

Install Discourse

Download Discourse

mkdir /var/discourse
git clone https://github.com/discourse/discourse_docker.git /var/discourse

Configure

cd /var/discourse
cp samples/standalone.yml containers/app.yml
nano containers/app.yml

Change the following:

To install behind Apache/Nginx, look for this section:

...
## which TCP/IP ports should this container expose?
expose:
  - "80:80"   # fwd host port 80   to container port 80 (http)
...

Change it to this:

...
## which TCP/IP ports should this container expose?
expose:
  - "7890:80"   # fwd host port 7890   to container port 80 (http)
...

Or any other port will do, if taken. Remember this number.

Build and launch

nano /etc/default/docker

Uncomment this line:

DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"

Restart Docker:

service docker restart

Now build:

./launcher bootstrap app
./launcher start app

Web Server Configuration

You will need to configure your web server to proxy requests to Discourse.

A minimal Apache config might look like:

<VirtualHost *:80>
    ServerName discourse.example.com
    ProxyPass / http://0.0.0.0:7890/
    ProxyPassReverse / http://0.0.0.0:7890/
</VirtualHost>

A minimal Nginx config might look like:

server {
    listen 80;
    server_name discourse.example.com;
    location / {
        include proxy_params;
        proxy_pass http://127.0.0.1:7890;
    }
}

Configure API

Generate admin account

From the /var/discourse directory,

./launcher enter app
rake admin:create

Follow prompts, being sure to answer y when asked to allow admin privileges.

Create API key

Navigate to discourse.example.com and log on. Top right press the 3 lines and select Admin. Go to API tab and press Generate Master API Key.

Add the following values to your auth project's settings file:

  • DISCOURSE_URL: https://discourse.example.com (do not add a trailing slash!)
  • DISCOURSE_API_USERNAME: the username of the admin account you generated the API key with
  • DISCOURSE_API_KEY: the key you just generated

Configure SSO

Navigate to discourse.example.com and log in. Back to the admin site, scroll down to find SSO settings and set the following:

  • enable_sso: True
  • sso_url: http://example.com/discourse/sso
  • sso_secret: some secure key

Save, now set DISCOURSE_SSO_SECRET in your auth project's settings file to the secure key you just put in Discourse.

Finally run migrations and restart Gunicorn and Celery.