Skip to main content

💬 Discourse

Overview

Discourse is an open-source discussion platform used for crypto governance and project discussions. This guide explains how to add Sign in with Ethereum (SIWE) authentication to your Discourse instance.

signinwithethereum/discourse-siwe-auth

signinwithethereum/discourse-siwe-auth

Requirements

  • A self-hosted Discourse server
  • Discourse's official distribution

Key Notes

  • Users must enter an email after first authentication
  • If the user owns an ENS address, it will be the default username
  • After email association, users can sign in using SIWE

Installation Steps

1. Enabling the Plugin

Access your container's app.yml file:

cd /var/discourse
nano containers/app.yml

Add the plugin repository URL:

hooks:
before_code:
- exec:
cmd:
- gem install rubyzip
after_code:
- exec:
cd: $home/plugins
cmd:
- sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git
- sudo -E -u discourse git clone https://github.com/signinwithethereum/discourse-siwe-auth.git

Rebuild the container:

cd /var/discourse
./launcher rebuild app

2. Create a Project ID

Create Project ID at WalletConnect Cloud

Create Project ID at WalletConnect Cloud


  • Configure the project ID in the plugin settings

3. Configure Message Statement

By default, the statement is "Sign-in to Discourse via Ethereum". You can customize this in the plugin settings.

Plugin Management

  • To disable: Remove the plugin or uncheck discourse siwe enabled in Admin Settings

Additional Configuration

Access plugin settings at: Admin Settings -> Plugins -> discourse-siwe -> discourse siwe enabled

Compatibility

  • Compatible with Discourse's official distribution
  • Ongoing discussion about compatibility with other builds