| Riepilogo | Abilita l’accesso con Ethereum su Discourse | |
| Repository | GitHub - signinwithethereum/discourse-siwe-auth: Discourse plugin for SIWE authentication · GitHub | |
| Guida all’installazione | Come installare i plugin in Discourse |
Un plugin per Discourse che permette agli utenti di autenticarsi con il proprio wallet Ethereum utilizzando lo standard Sign-In with Ethereum (SIWE). I wallet iniettati (MetaMask, Safe, ecc.) funzionano immediatamente. I nomi ENS e gli avatar vengono risolti lato server quando è configurato un endpoint RPC.
Requisiti
- Un forum Discourse ospitato in proprio o da un provider che supporta plugin di terze parti, come Communiteq.
Installazione
Accedi al file app.yml del tuo contenitore:
cd /var/discourse
nano containers/app.yml
Aggiungi l’URL del repository del plugin all’hook after_code:
hooks:
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 # <-- aggiunto
Segui il formato esistente della riga docker_manager.git; se non contiene sudo -E -u discourse, usa invece git clone https://github.com/signinwithethereum/discourse-siwe-auth.git.
Ricostruisci il contenitore:
cd /var/discourse
./launcher rebuild app
Configurazione
Dopo l’installazione, individua il plugin sotto Admin > Plugins e assicurati che sia abilitato:
Clicca su Settings per configurare il plugin:
Da qui puoi personalizzare l’affermazione di accesso e opzionalmente aggiungere un ID progetto WalletConnect / Reown. Senza un ID progetto, sono disponibili solo i wallet iniettati (MetaMask, Safe, ecc.).
Impostazioni
| Impostazione | Descrizione |
|---|---|
| Discourse siwe enabled | Abilita o disabilita l’autenticazione Sign-In with Ethereum. |
| Siwe ethereum rpc url | Opzionale. Un endpoint Ethereum JSON-RPC utilizzato per la risoluzione dei nomi/avatar ENS e la verifica della firma EIP-1271 (richiesta per i wallet smart contract come SAFE). Si consiglia un provider dedicato (Alchemy, Infura). Esempio: https://mainnet.infura.io/v3/YOUR_KEY. |
| Siwe project ID | Opzionale. Un ID progetto WalletConnect / Reown. Senza di esso, sono disponibili solo i wallet iniettati (MetaMask, Safe, ecc.). Per abilitare WalletConnect, crea un ID progetto gratuito su dashboard.reown.com. |
| Siwe statement | L’affermazione leggibile dall’utente mostrata nel messaggio SIWE. Di default è “Sign in with Ethereum”. |
Come funziona
Quando un utente clicca sul pulsante di accesso Ethereum, il plugin apre un’autenticazione dedicata. L’utente connette il proprio wallet, firma un messaggio SIWE e viene autenticato tramite una strategia OmniAuth lato server.
Dopo il primo accesso, agli utenti viene chiesto di associare un indirizzo email al proprio account. Se è configurata un’URL RPC e l’indirizzo connesso ha un nome ENS, il nome viene risolto e verificato lato server e suggerito come nome utente predefinito. Gli avatar ENS vengono recuperati tramite il servizio metadati ENS e utilizzati come foto profilo.
In alternativa, gli utenti esistenti possono connettere i propri account Ethereum dalle impostazioni del profilo.

