7.8 KiB
The Discourse Docker Image makes it easy to set up Discourse on a cloud server. We will use Digital Ocean, although these steps may work on other cloud providers.
This guide assumes that you have no knowledge of Ruby/Rails or Linux shell.
Create New Digital Ocean Droplet
Sign up for Digital Ocean, update billing info, then begin creating your new cloud server (Droplet).
Discourse requires a minimum of 1 GB RAM, however 2 GB RAM is strongly recommended. We'll use "discourse" as the Hostname.
Install Discourse on Ubuntu 12.04.3 LTS x64. We always recommend using the current LTS distribution.
You will receive a mail from Digital Ocean with the root password to your Droplet. (However, if you know how to use SSH keys, you may not need a password to log in.)
Access Your Droplet
Connect to your Droplet via SSH:
ssh root@192.168.1.1
(Alternately, use Putty on Windows)
Replace 192.168.1.1
with the IP address of your Droplet.
You will be asked for permission to connect, type yes
, then the root password, which is in the email Digital Ocean sent you when the Droplet was set up. Enter it.
Update the kernel
apt-get update
apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring
Reboot the server:
reboot
This will log you out from your SSH session, so reconnect:
ssh root@192.168.1.1
Install Git
apt-get install git
Install Docker
wget -qO- https://get.docker.io/ | sh
Install Discourse
Create a /var/docker
folder where all the Docker related stuff will reside:
mkdir /var/docker
Clone the Official Discourse Docker Image into this /var/docker
folder:
git clone https://github.com/discourse/discourse_docker.git /var/docker
Switch to your Docker folder:
cd /var/docker
Copy the samples/standalone.yml
file into the containers
folder as app.yml
, so the path becomes containers/app.yml
:
cp samples/standalone.yml containers/app.yml
Edit app.yml
:
nano containers/app.yml
(We recommend Nano because it works like a typical GUI text editor, just use your arrow keys. Hit CtrlO then Enter to save and CtrlX to exit. However, feel free to choose whatever text editor you like. In the below screenshot we use Vim.)
Edit as desired, but at minimum set DISCOURSE_DEVELOPER_EMAILS
and DISCOURSE_HOSTNAME
.
If you set DISCOURSE_HOSTNAME
to discourse.example.com
, this means you want to host our instance of Discourse on http://discourse.example.com/
. You'll need to change your DNS records to reflect the IP address and preferred URL address of your server.
Mail Setup
Email is critical to notifications in Discourse. If you do not configure email before bootstrapping you will have a broken site.
-
If you already have a mail server, put your existing mail server credentials in the
app.yml
file. -
Otherwise, create a free account on Mandrill (or Mailgun, or Mailjet), and put your mail credentials (available via the Mandrill dashboard) in the
app.yml
file. The settings you want to change areDISCOURSE_SMTP_ADDRESS
,DISCOURSE_SMTP_PORT
,DISCOURSE_SMTP_USER_NAME
,DISCOURSE_SMTP_PASSWORD
. -
Be sure you remove the comment character and space
#
from the beginning of these mail configuration lines! -
Don't forget to set the SPF and DKIM records up for your domain name. In Mandrill, that's under Sending Domains, View DKIM/SPF setup instructions.
-
The name of your droplet is your reverse PTR record; rename your droplet to
discourse.example.com
so the PTR record correctly reflects your domain name.
Bootstrap Discourse
Be sure to save the app.yml
file, and begin bootstrapping Discourse:
./launcher bootstrap app
This command can take up to 8 minutes. It is automagically configuring your Discourse environment.
After that completes, start Discourse:
./launcher start app
Congratulations! You now have your own instance of Discourse, accessible via the domain name you entered in app.yml
earlier.
You can also access it by visiting the server IP address directly, e.g. http://192.168.1.1
.
Log In and Become Admin
Sign into your Discourse instance. There should be a reminder visible on the site about which email was used for the DISCOURSE_DEVELOPER_EMAILS
address. Be sure you log in with that email, and your account will be made Admin by default.
Post-Install Maintenance
We believe most small and medium size Discourse installs will be fine with the recommended 2 GB of RAM. However, if you are using the absolute minimum 1 GB of RAM, or your forum is growing you may want to set up a swap file just in case.
To upgrade Discourse to the latest version, visit /admin/docker
, refresh the page a few times (yes, seriously) and then press the Upgrade button at the top. View the live output at the bottom of your browser to see when things are complete. You should see:
Killed sidekiq
Restarting unicorn pid: 37
Then you know it's complete. (Yes, we will be improving this process soon!)
Other Optional Stuff
Do you want...
-
Users to log in via Facebook? Configure Facebook logins.
-
Users to log in via Twitter? Configure Twitter logins.
-
Users to post reples via email? Configure reply via email.
-
Automatic daily backups? Configure backups
If anything needs to be improved in this guide, feel free to ask on meta.discourse.org, or even better, submit a pull request.