"Fossies" - the Fresh Open Source Software Archive

Member "discourse-2.8.3/docs/INSTALL-cloud.md" (14 Apr 2022, 11963 Bytes) of package /linux/www/discourse-2.8.3.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format (assuming markdown format). Alternatively you can here view or download the uninterpreted source code file. A member file download can also be achieved by clicking within a package contents listing on the according byte size field. See also the last Fossies "Diffs" side-by-side code changes report for "INSTALL-cloud.md": 2.7.13_vs_2.8.0.

A hint: This file contains one or more very long lines, so maybe it is better readable using the pure text view mode that shows the contents as wrapped lines within the browser window.


Set up Discourse in the cloud in under 30 minutes with zero knowledge of Rails or Linux shell. One example is DigitalOcean, but these steps will work on any Docker-compatible cloud provider or local server. This walkthrough will go through these in detail:

  1. Create new cloud server
  2. Access new cloud server
  3. Install Discourse
  4. Setting up email
  5. Customize domain name
  6. Edit Discourse configuration
  7. Start Discourse
  8. Register new account and become admin
  9. Post-install maintenance
  10. (Optional) Add more Discourse features

🔔 Don't have 30 minutes to set this up? For a flat one-time fee of $150, the community can install Discourse in the cloud for you. Click here to purchase a self-supported community install.

1. Create New Cloud Server

Create your new cloud server, for example on DigitalOcean:

Create your new Droplet. You may receive an email with the root password, however, you should set up SSH keys, as they are more secure.

2. Access Your Cloud Server

Connect to your server via its IP address using SSH, or Putty on Windows:

ssh root@192.168.1.1

Either use the root password from the email DigitalOcean sent you when the server was set up, or have a valid SSH key configured on your local machine.

3. Install Discourse

Clone the Official Discourse Docker Image into /var/discourse.

sudo -s
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse

You will need to be root through the rest of the setup and bootstrap process.

4. Setting Up Email

⚠️ Email is CRITICAL for account creation and notifications in Discourse. If you do not properly configure email before bootstrapping YOU WILL HAVE A BROKEN SITE!

💡 Email here refers to Transactional Email not the usual email service like Gmail, Outlook and/or Yahoo.

5. Customize Domain Name

🔔 Discourse will not work from an IP address, you must own a domain name such as example.com to proceed.

6. Edit Discourse Configuration

Launch the setup tool at

./discourse-setup

Answer the following questions when prompted:

Hostname for your Discourse? [discourse.example.com]: 
Email address for admin account(s)? [me@example.com,you@example.com]: 
SMTP server address? [smtp.example.com]: 
SMTP port? [587]: 
SMTP user name? [user@example.com]: 
SMTP password? [pa$$word]: 
Let's Encrypt account email? (ENTER to skip) [me@example.com]: 
Optional Maxmind License key () [xxxxxxxxxxxxxxxx]:

You'll get the SMTP details from your email setup, be sure to complete that section.

Let's Encrypt account setup is to give you a free HTTPS certificate for your site, be sure to set that up if you want your site secure.

This will generate an app.yml configuration file on your behalf, and then kicks off bootstrap. Bootstrapping takes between 2-8 minutes to set up your Discourse. If you need to change these settings after bootstrapping, you can run ./discourse-setup again (it will re-use your previous values from the file) or edit /containers/app.yml manually with nano and then ./launcher rebuild app, otherwise your changes will not take effect.

7. Start Discourse

Once bootstrapping is complete, your Discourse should be accessible in your web browser via the domain name discourse.example.com you entered earlier.

8. Register New Account and Become Admin

Register a new admin account using one of the email addresses you entered before bootstrapping.

(If you are unable to register your admin account, check the logs at /var/discourse/shared/standalone/log/rails/production.log and see our Email Troubleshooting checklist.)

After registering your admin account, the setup wizard will launch and guide you through basic configuration of your Discourse.

After completing the setup wizard, you should see Staff topics and READ ME FIRST: Admin Quick Start Guide. This guide contains advice for further configuring and customizing your Discourse install.

9. Post-Install Maintenance

💡 Discourse will send you an email notification when new versions of Discourse are released. Please stay current to get the latest features and security fixes.

To upgrade Discourse to the latest version, visit https://discourse.example.com/admin/upgrade in your browser and click the Upgrade button.

Alternatively, you can ssh into your server and rebuild using:

cd /var/discourse
git pull
./launcher rebuild app

The launcher command in the /var/discourse folder can be used for various kinds of maintenance:

Usage: launcher COMMAND CONFIG [--skip-prereqs] [--docker-args STRING]
Commands:
    start:      Start/initialize a container
    stop:       Stop a running container
    restart:    Restart a container
    destroy:    Stop and remove a container
    enter:      Use nsenter to get a shell into a container
    logs:       View the Docker logs for a container
    bootstrap:  Bootstrap a container for the config based on a template
    rebuild:    Rebuild a container (destroy old, bootstrap, start new)
    cleanup:    Remove all containers that have stopped for > 24 hours

Options:
    --skip-prereqs             Don't check launcher prerequisites
    --docker-args              Extra arguments to pass when running docker

10. (Optional) Add More Discourse Features

Do you want...

Help us improve this guide! Feel free to ask about it on meta.discourse.org, or even better, submit a pull request.