This guide assumes that you have a working Discourse installation with the Patreon Plugin already installed on it.
A few sections of the guide use your site’s domain. Enter that domain here so that it can be substituted into the instructions:
First, go to the Patreon Client & API Keys page and click the “Create Client” button to create a new client:
A form similar to this will open:
Fill in the App Name, Description, App Category, and Author fields. Then:
set the Company Domain field to
if you have an icon that you’d like to display on the Patreon Login form, enter your icon’s URL
set the Terms of Service URL to
set the Redirect URIs field to
make sure the Client API version is set to
1. Leaving the Client API version at 2 may produce error messages like
Sorry, there was an error authorizing your account. Please try again.
Once all the fields are complete, click the “Create Client” button.
If the form saves without errors, you will see an entry similar to this added to the page:
Click the caret icon to see the values that you’ll need to copy to Discourse.
Go to your Discourse site’s Admin / Plugins page and click the “Settings” button for the “discourse-patreon” entry. The following settings will appear:
Copy the following credentials from Patreon:
- copy your Patreon Client ID to the Discourse
patreon client idsetting
- copy your Patreon Client Secret to the Discourse
patreon client secretsetting
- copy your Patreon Creator’s Access Token to the Discourse
patreon creator access tokensetting
- copy your Patreon Creator’s Refresh Token to the Discourse
patreon creator refresh tokensetting
For now, leave the
patreon webhook secret setting blank.
If you would like a prompt to appear on your site to encourage non-patreons to become supporters, select the
patreon donation prompt enabled checkbox and enter your Patreon campaign’s URL into the
patreon donation prompt campaign url setting.
If you would like to allow users to login to Discourse via Patreon, first enter the Discourse username that shares the same email address as your Patreon account’s email address into the
patreon creator discourse username setting. Then, select the
patreon login enabled checkbox.
Finally, make sure you have checked the
patreon enabled checkbox to enable the Patreon plugin.
Now that everything is set up, go to
Click the “Update Patreon Data” button to pull data about your Patreon reward tiers to Discourse. Clicking the button starts a process that takes a while (usually 30 seconds or so) to complete. If everything is configured correctly, you should see a message like this:
After refreshing the page, details about your Patreon reward tiers will be available in the “Rewards” dropdown.
Use the form’s Group and Rewards fields to configure which Discourse groups should be associated with your Patreon account’s reward tiers. The form’s Group dropdown will contain all custom groups that you have created on the site, plus the Patron group that is created by the Discourse Patreon plugin. The Rewards dropdown contains all of your Patreon reward tiers. To create a new entry, select a group and a reward tier, then click the Save icon to save the record:
Once you have associated one or more Discourse groups with your reward tiers, click the “Update Patreon Data” button again to sync any of your existing users who are also your supporters on Patreon. Syncing the users will add them to the appropriate Discourse groups.
Assuming that you associated the Patron group with your “$0 - All Patrons” tier, you should now see that any existing users on your site who have signed up for that reward tier have been added to your Patrons group.
By default, when a user is added to the Patron group, a Patreon flair will be added to their avatar and they will be granted the Patron badge.
You can change or remove the avatar flair by going to the Patron group’s page and clicking the “Manage” tab:
From that tab you can also customize the About Group text that is displayed on your groups page.
The Patron badge can be customized or disabled from the Patron entry that the plugin adds to your site’s Admin / Badges page.
The Discourse Patreon plugin runs a background job 4 times a day to sync users on your site to groups that you have linked with Patreon. If you would like the syncing to happen faster than that, you can configure a webhook to trigger a new sync every time someone signs up for a reward tier on your Patreon account.
To do that, first visit Patreon and create a new webhook that is pointing to
The result will be similar to this. Make sure to not expose the SECRET that is created:
Turn on the Create Pledge, Update Pledge, and Delete Pledge triggers:
Now copy the webhook secret to your Discourse
patreon webhook secret site setting. Once that has been saved on Discourse, Discourse groups will be synced to Patreon each time a pledge is updated.
If you enable Patreon login to your Discourse site, you can limit access to the site to only allow users with Patreon accounts to create an account or login. To do this, first make sure that logging into your site via Patreon is working for you, then disable your Discourse site’s
enable local logins and
enable local logins via email settings. With those settings disabled, the only way users will be able to access your site is through the Login with Patreon link.
Only allowing users with Patreon account to login to your site does not limit access to the site to your Patreon supporters. Users with Patreon accounts who are not your supporters will still be able to use the login link. To only allow your supporters to be able to access your site’s content, you need to configure your site’s category security settings to limit access to some or all of your site’s categories to members of Discourse groups that you have linked to Patreon. Details about how to set that up can be found here: Understanding groups and category permissions (security settings).
You can enable the site setting
patreon verbose log in the site settings at any moment to help you debug issues in either the login or the patron sync feature. After enabling it, logs will be available https://=domain=/logs.
Last Reviewed by @SaraDev on 2022-05-24T20:00:00Z