edits to digital ocean guide for clarity

This commit is contained in:
Jeff Atwood 2014-02-22 23:40:04 -08:00
parent 75fed4e170
commit 83a121176b

View File

@ -1,6 +1,6 @@
The deployment of Discourse is simple thanks to the [Docker Image][1], all you need is SSH access to a virtual cloud server. In this guide I'll assume that you are using [Digital Ocean][do], although these steps will work on other cloud servers as well.
The below guide assumes that you have no knowledge of Ruby/Rails or Linux shell, so it will be detailed. Feel free to skip steps which you think you are comfortable with.
The below guide assumes that you have no knowledge of Ruby/Rails or Linux shell, so it will be detailed. Feel free to skip steps which you are comfortable with.
# Create new Digital Ocean Droplet
@ -12,11 +12,11 @@ We will install Discourse on Ubuntu 12.04.3 x64 LTS as this is [recommended][2]
<img src="https://meta-discourse.r.worldssl.net/uploads/default/2998/0084fb4e84c1d812.png" width="690" height="404">
Once you complete the above steps you will receive a mail from Digital Ocean with the root password to the Droplet. (However, if you entered your SSH keys, you won't need a password to log in).
Once you complete the above steps you will receive a mail from Digital Ocean with the root password to the Droplet. However, note that if you use SSH keys, you may not need a password to log in.
# Access your newly created Droplet
To access the Droplet, type the following command in your terminal:
Type the following command in your terminal:
ssh root@192.168.1.1
@ -24,7 +24,7 @@ Replace `192.168.1.1` with the IP address you got from Digital Ocean.
<img src="https://meta-discourse.r.worldssl.net/uploads/default/2999/0934a0158459ec3f.png" width="571" height="130">
It will ask your permission to connect, type `yes`, then it will ask for the root password. The root password is in the email Digital Ocean sent you when the Droplet was set up. Type in that password to log in to your newly installed Ubuntu Server.
It will ask your permission to connect, type `yes`, then it will ask for the root password, which was in the email Digital Ocean sent you when the Droplet was set up. Type the root password in to log in to your newly installed Ubuntu Server.
<img src="https://meta-discourse.r.worldssl.net/uploads/default/3000/8209c1e40c9d70a8.png" width="570" height="278">
@ -34,20 +34,18 @@ To install Git:
sudo apt-get install git
and you are good to go.
<img src="https://meta-discourse.r.worldssl.net/uploads/default/3002/eafbf14df8eee832.png" width="572" height="263">
# Generate SSH Key
** We highly recommend setting a SSH key, because you may need to access the Rails console for debugging purposes. This is only possible if you have SSH access preconfigured. It cannot be done after bootstrapping the app. **
**We highly recommend setting a SSH key, because you may need to access the Rails console for debugging purposes. This is only possible if you have SSH access preconfigured. This <i>cannot</i> be done after bootstrapping the app.**
Generate the SSH key:
ssh-keygen -t rsa -C "your_email@example.com"
ssh-add id_rsa
(We want the default settings, so when asked to enter a file in which to save the key, just press enter. Taken from [this guide][7])
(We want the default settings, so when asked to enter a file in which to save the key, just press <kbd>enter</kbd>. Via [GitHub's SSH guide][7].)
# Install Docker
@ -68,7 +66,7 @@ This will log you out from your SSH session, so SSH in again:
Replace `192.168.1.1` with the IP address you got from Digital Ocean.
Type in following commands:
Finish installing Docker:
sudo sh -c "wget -qO- https://get.docker.io/gpg | apt-key add -"
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\
@ -80,19 +78,17 @@ Type in following commands:
# Install Discourse
Congratulations! You've done all the hard work, now you have a brand new Ubuntu Server with Docker installed. Now let's install Discourse.
Congratulations! You now have a brand new Ubuntu Server with Docker installed. Now let's install Discourse.
Create a `/var/docker` folder where all the docker related stuff will reside:
Create a `/var/docker` folder where all the Docker related stuff will reside:
mkdir /var/docker
Clone the [Official Discourse Docker Image][4] in `/var/docker` folder:
Clone the [Official Discourse Docker Image][4] into the `/var/docker` folder:
git clone https://github.com/SamSaffron/discourse_docker.git /var/docker
*Make sure to copy and run the above command as is, otherwise you will face [problem][5] which I faced.*
Switch to the Docker directory:
Switch to the directory:
cd /var/docker
@ -106,29 +102,27 @@ Modify the newly copied `app.yml` with our default variables:
nano containers/app.yml
(We recommend Nano because it works like a text editor, just use your arrow keys. Hit `Ctrl-O` to save and `Ctrl-X` to exit. However, you can use whatever text editor you like. In the below screenshot we use Vim.)
You will see something like:
(We recommend Nano because it works like a typical GUI text editor, just use your arrow keys. Hit <kbd>Ctrl</kbd><kbd>O</kbd> to save and <kbd>Ctrl</kbd>-<kbd>X</kbd> to exit. However, you can use whatever text editor you like. In the below screenshot we use Vim.)
<img src="https://meta-discourse.r.worldssl.net/uploads/default/3006/ed9f51b3a44f2b86.png" width="572" height="451">
Modify the file as desired, but for the sake of simplicity I will only modify two variables `DISCOURSE_DEVELOPER_EMAILS` and `DISCOURSE_HOSTNAME`.
Modify the file as desired, but at minimum you should set `DISCOURSE_DEVELOPER_EMAILS` and `DISCOURSE_HOSTNAME`.
<img src="https://meta-discourse.r.worldssl.net/uploads/default/2979/e6fedbde9b471880.png" width="565" height="172">
Notice that I renamed `DISCOURSE_HOSTNAME` to `discourse.techapj.com`, this means that I want to host my instance of Discourse on `http://discourse.techapj.com/`, for this to work properly you will need to modify your DNS records.
Notice that I renamed `DISCOURSE_HOSTNAME` to `discourse.techapj.com`, this means that I want to host my instance of Discourse on `http://discourse.techapj.com/`. You'll need to modify your DNS records appropriately to reflect the IP address of your server.
#Mail Setup
**This step is required to successfully set up mail settings for Discourse.**
**Email is critical to Discourse. We strongly recommend setting mail settings before bootstrapping your app.**
We recommended setting mail settings before bootstrapping your app. If you are an advanced user, put your mail credentials in the `app.yml` file.
- If you already have a mail server, put your existing mail server credentials in the `app.yml` file.
If you are a beginner, create a free account on [**Mandrill**][6], and put your Mandrill credentials (available on the Mandrill Dashboard) in the above file. The settings you want to change are `DISCOURSE_SMTP_ADDRESS`, `DISCOURSE_SMTP_PORT`, `DISCOURSE_SMTP_USER_NAME`, `DISCOURSE_SMTP_PASSWORD`.
- Otherwise, create a free account on [**Mandrill**][6], and put your Mandrill credentials (available via the Mandrill dashboard) in the above file. The settings you want to change are `DISCOURSE_SMTP_ADDRESS`, `DISCOURSE_SMTP_PORT`, `DISCOURSE_SMTP_USER_NAME`, `DISCOURSE_SMTP_PASSWORD`.
#Add SSH Key
If you successfully generated the SSH key as described earlier, get the generated key:
If you successfully generated the SSH key as described earlier, get it:
cat ~/.ssh/id_rsa.pub
@ -136,13 +130,13 @@ Copy the entire output and paste it into the `ssh_key` setting in the `app.yml`
# Bootstrap Discourse
Save the `app.yml` file, and begin bootstrapping Discourse:
Be sure to save the `app.yml` file, and begin bootstrapping Discourse:
sudo ./launcher bootstrap app
<img src="https://meta-discourse.r.worldssl.net/uploads/default/3007/c0596ad3d330ae71.png" width="567" height="138">
This command may take some time, but it's doing all the hard work for you. This command is automagically configuring your Discourse environment.
This command may take some time, so be prepared to wait. It is automagically configuring your Discourse environment.
After that completes, start Discourse:
@ -152,15 +146,15 @@ After that completes, start Discourse:
Congratulations! You have your own live instance of Discourse running on the host you provided in `app.yml` file at the time of setup.
<img src="https://meta-discourse.r.worldssl.net/uploads/default/3009/5c7b0accf602dcca.png" width="689" height="246">
<img src="https://meta-discourse.r.worldssl.net/uploads/default/3397/ea8c3de3a4b7361d.png" width="690" height="207">
*You can also access your instance of Discourse by visiting your `IP_ADDRESS`.*
You can also access your instance of Discourse by visiting the IP address directly, e.g. 192.168.1.1.
# Access Admin
Sign into your Discourse instance. If you configured `DISCOURSE_DEVELOPER_EMAILS` and your email matches, your account will be made Admin by default.
In case your account is not made admin (reported by some users), try SSH'ing into your container (assuming you entered your SSH key in the `app.yml` file):
If your account was not made admin (reported by some users), try SSH'ing into your container (assuming you entered your SSH key in the `app.yml` file):
./launcher ssh my_container
sudo -iu discourse