Discourse

This is for the Discourse instance at https://discourse.hive13.org that Hive13 uses for its forum / mailing list.

(This page is very much a work-in-progress. TODO: Find every TODO below.)

What is this?

Discourse is open-source message forum software. It behaves like most "traditional" forums: people post messages in topics, and replies to a topic form message threads. Users can also configure it to behave like a mailing list.

Hive13 self-hosts an instance of Discourse (rather than using a managed setup like at https://www.discourse.org/). This was set up in 2021, but not really transitioned until 2022. It was set up as a replacement for the Google Groups lists dating back to April 2009 when Hive13 was still the nascent "Cincinnati Hackerspace Project" (or CHP, or cincihackerspace), and all messages were migrated from these lists.

Most categories of this forum are publicly accessible and don't require an account to read. Posting messages requires setting up an account, instructions for which are given below.

How To Sign Up

Go to: https://discourse.hive13.org.

Click the "Log In" button, and then on the lower-right of the "Welcome back" pop-up, click "Create your account". (Or, if you're on a computer, the "Sign Up" button also works.)

 

 

This should get you to account creation:

 

Fill this out appropriately. If you use the same email address that you used on Hive13's older mailing list (on Google Groups), all of your existing posts there will be associated with the user you just created.

(If for whatever reason you made a Discourse account, but didn't use this email address to do so and you still want your old posts, ask us in the Site Support category and we can fix this. Likewise, if you forgot what email address you even used on the mailing list, ask us and we can look it up.)

Once you have signed up, you should see a message like this:

 

Discourse will send you an email to confirm your email address and activate your account; you should see something like this in your inbox:

 

Click the link, and then click the button to activate the account.

 

 

As the message should note, an admin still must approve this activated account - which may take us some time, as it is done manually. Discourse will send another email when this happens:

 

If this is taking too long, let one of us know in the Slack, e.g. the #hive13_it_infrastructure channel.

If you want to keep using the browser to interact with Discourse, nothing else is necessary.

If you want to read and post via email, you probably want mailing list mode. See the following section.

Enabling Mailing List Mode

In mailing list mode, Discourse will:

You can still use the browser to read and post. Mailing list mode doesn't force you to use email.

To enable mailing list mode, log into your Discourse account, and click your user-badge at the top-right to reveal 4 buttons:

 

Click the right-most button, and in menu below it, click "Preferences":

 

In the preferences page that opens up, click the "Emails" section on the left:

 

Find the "Enable mailing list mode" checkbox at the bottom, and click it. You should see a red note on top that mailing list mode has been enabled.

 

Finally, click the "Save Changes" button at the bottom. Look for the "Saved!" to the right of it.

 

To mute a topic or a category so that you don't receive emails for it: (TODO)

(See also: Using Discourse as a mailing list.)

Care and Feeding of the Discourse

(These are placeholders to be filled in later.)

Setup

Maintenance

Credentials

Backups and Restoring

Older migration notes

Migrated from: Intweb_and_Google_Groups_Migration_Thoughts

This needs cleaned up a bit. Anything of relevance in the to-do list below should be organized in another section and the rest should be removed.

To-do before migration

  • Done: Make sure things like 'minimum trust level' are sensible to let new users create topics via email
  • 99% done: Write up a Wiki page with some instructions (with screenshots, ideally) for how to enable mailing list mode for a user - something like this.
  • Done: Make a purposely restricted number of categories. This was set to:
    • General (migrate from 'cincihackerspace' mailing list) - discourse-reply+general@hive13.org for creating new topic
    • Leadership (migrate from eponymous mailing list) - discourse-reply+leadership@hive13.org
    • Wardens (migrate from eponymous mailing list) - discourse-reply+wardens@hive13.org
    • Site Support & Feedback (stuff for Discourse admins to see, account-related matters) - discourse-reply+support@hive13.org
    • Discourse Staff (admins/moderators only) - discourse-reply+staff@hive13.org
    • Sandbox (for testing bots and things, away from everyone else) - discourse-reply+sandbox@hive13.org
  • Done: Set up email addresses for creating topics in each category.
  • Done: Figure out how to get people to see the email addresses for creating topics (if they're interacting via email)
  • 99% done: Backups
    • Discourse is already generating backups: https://discourse.hive13.org/admin/backups
    • They're at /var/discourse/shared/standalone/backups/default on the VM
    • A daily cron job is copying them to Azure archive storage and using rotate-backups to do grandfather-father-son rotating backups
    • Still needed (or wanted by Hodapp): keeping local, non-cloud copies of these too
    • I should probably also save the YAML files in /var/discourse/containers
  • Done: Migrate settings to use discourse.hive13.org, not discoursetest.hive13.org. (The DNS records are set up.)
    • The Slack app needs also this URL for the discourse-chat-integration plugin.
  • Minor: Get Slack bot set up for #mailinglist channel.
    • Mostly solved. Get bot into correct channel and migrate URLs to 'real' URL.
  • Done: Figure out the details of the final export/import.
    • For all future imports: rename 'cincihackerspace' folder to 'General'! The category was renamed, and ignoring this might lead to it re-importing 13 years of messages. (Later note: It may be a moot point because everything now goes to Uncategorized anyway. You'll have to move topics manually - so either keep the updates small, or go them one list at a time.)
    • Probably something like: Do one export/import right before the two-weeks message goes out (obviously, make sure Discourse is back up before sending message), and then another after the Google Groups lists are put into read-only mode.
    • There are three mailing lists: Hive13 Makerspace (cincihackerspace), Leadership, and Wardens.
    • Re-import properly ignores duplicates. I did run into a problem in which it failed to put Leadership messages into the category it created.
  • Done: Write up transition post to send to Google Groups.
  • Set up leadership@hive13.org and wardens@hive13.org accounts and forward to the respective topic-creation emails. (Also members@hive13.org to send to Leadership). Make sure Leadership allows non-users to post, like it does now - even if it requires moderation/approval.
  • Send that final Google Groups post (to all mailing lists), export the final mbox (likewise), and turn off those mailing lists!

To-do, but not a migration requirement

  • Per-category niceties:
    • Set good descriptions
    • Set up topic templates (where appropriate)
    • Set up sensible colors and banners/logos
    • Tune permissions
  • Per-group niceties:
    • Avatars, colors, descriptions
  • Set up some tag groups that are meaningful; for instance:
    • Votes (restricted to members only)
    • Officers or leadership, with tags inside for titles like "president" or "board", restricted to who holds that office
    • Wardens, restricted likewise
    • All else should be pretty free-form for now
  • Update references on the website (and perhaps Wiki) to refer to the Discourse (or the "forum", perhaps - what do we want?)
    • Any links need to be updated, of course

Migration notes & problems

This section is some more in-depth notes, even on things that are already solved. The prior section has the actual to-do items.

  • TODO also get some notes on:
    • URL
    • Setup procedure, including integrations, and especially things that weren't obvious
    • Where backups are stored
  • Integrations:
  • Solved - How do we migrate content from Google Groups?
    • Hodapp had success with exporting an mbox from Google Takeout, then using this method - the regular import, not Google Groups import. (Trying to import directly from Google failed with cryptic errors about cookies, and another way of getting an mbox suggests that the failure was due to Google changing their lack-of-an-API to no longer be compatible.)
    • The cincihackerspace mailing list data was around 3.2 GB - 2.9 GB in an mbox file, and a 300 MB tarball with what looks like group/member metadata.
    • The cliget addon was extremely useful for this, as it let me download the file onto the VM rather than requiring me to download it all locally and then re-upload it.
    • This is a slow process. Google Takeout takes how ever long it feels like (hours? days?), plus downloading the file into the right place. Discourse import takes about 2 hours. "/var/discourse/launcher rebuild app" was necessary afterwards; I am guessing this is because it had to clear out some old containers.
  • Mostly solved - How do we migrate users from Google Groups? (How much can we automate?)
    • The import script from the link above creates "staged users" by default for users & email addresses seen in the imported messages; it can be configured to create "regular users" instead.
    • For now, it looks like we'll just let users make accounts and they'll need manual activation.

Draft message for 2 weeks before

Subject: This Google Group will migrate to Discourse on May 17, 2022.

Hive13 has used Google Groups for its mailing lists since 2009 - however, on May 17, 2022, these will all be turned to archive-only, and everything migrated to a self-hosted Discourse instance at https://discourse.hive13.org/.

Questions:

In the fewest words possible, what do I need to do?

What is Discourse?

  • Discourse is message forum software. It behaves like most "traditional" forums: people post messages in topics, and replies to a topic form message threads. Users can also configure it to behave like a mailing list.

What do I need to do? Do I need to sign up?

  • You do *not* need an account at this Discourse to read messages. Just browse to https://discourse.hive13.org/.
  • If you want to post, you'll need to create an account. See the steps at Discourse - How To Sign Up.
  • You can create an account anytime, including now. We must manually approve new accounts, just like the Google Groups.
  • If you want older posts you made on the Google Groups to still be associated with your Discourse account, use the same email address that you used on the mailing list. (If you forget, we can correct this later - just ask.)
  • By default, this does not behave as a mailing list - but you can enable Mailing List Mode for your account, i.e. you will receive emails for every new message that is posted, and you may send emails to reply to an existing thread or to create a new topic. See https://wiki.hive13.org/view/Discourse#Enabling_Mailing_List_Mode to set this up. Note that, unfortunately, Discourse does *not* support a digest mode.

Where do I go for help on Discourse itself, complaints, suggestions, feedback, and so on?

  • If you've signed up already, use the Site Support & Feedback category in the Discourse.
  • You can also reply here in this message thread (if the group isn't archived yet).
  • You can ask in #mailinglist on Slack.
  • Failing all else, you can email Chris (hodapp87@hive13.org) or Heath (heath@hive13.org).

Where are all the old messages?

  • All content from the groups, including images and other attachments, was imported into the Discourse. We'll migrate newer content, but it may take some time as it's not automatic.
  • The Google Groups pages will remain online, but in read-only mode. We have no plans of deleting these groups or their content - though Google might.

Why was this done?

  • The ecosystem of products and companies changed considerably since we chose Google Groups in 2009. Google has had Google Groups merely on life-support for many years now. We'd rather move everything now while we have the time to do it at our own pace. Some nice integrations that we had in the past - such as integrating the mailing list with Slack - are now gone because Google removed the support.
  • We've received a regular stream of complaints about Google Groups being very annoying to interact with on phones.
  • Moving to a self-hosted Discourse instance means that we have full control of our own data.
  • Because Discourse is quite a nice piece of software, and we have plans of using its integrations with our Wiki, our Slack instance, and possibly our GitHub.

Does this replace Slack? Does this replace the Wiki?

  • No - it just replaces the Google Groups.

What does self-hosted mean?

  • It means that Hive13 hosts and manages its own private instance of the Discourse software. In our case, it is self-hosted on an Azure virtual machine, paid for with free Azure credits Hive13 receives for being a nonprofit - but if Azure shut this off tomorrow, we could run it on any other Linux server.
  • "Self-hosted" is in contrast to a managed Discourse instance, e.g. at https://www.discourse.org/.
  • In both cases, it is powered by open-source software: https://github.com/discourse/discourse

Why not shut the mailing list down completely, and instead solely use Slack/Discord/reddit/Facebook/Matrix/IRC/whatever?

  • With regards to most of those: because we prefer to avoid proprietary walled-garden platforms which leave other companies in charge of our data, our user accounts, and on what is "allowed" content on their platform. We also don't use your data for tracking or advertising, and we'd prefer to avoid handing it over to services that do.
  • With regards to real-time ones like Slack and Discord: because we think it's important to still have a communication medium that is slower, asynchronous, longer-form, and more durable.
  • Further, because we still have some number of users that prefer to interact via email.