Lumen
Open-source group discussion platform. Written in Ruby (Padrino), hosted via DigitalOcean/dokku. No longer in active development
Install / Use
/learn @stephenreid321/LumenREADME
Lumen
Lumen is an open-source group discussion platform with dual web-email access. It can be compared to Discourse, Loomio, Slack, Google Groups or Facebook Groups. An outline of its features:
- Open-source (under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported)
- Hosted using DigitalOcean/dokku
- Designed for custom domains (group email addresses of the form yourgroup@yourdomain.org)
- Sends and receives mail via regular SMTP and IMAP accounts
- Dual web/email access
- Extensible member profiles
- Loomio-style proposals
- Events calendar
- Maps placing people, organisations and venues
- Google Docs integration
- Optional Facebook-style wall view
Lumen is written in Ruby using the Padrino framework. It was originally created for the New Economy Organisers Network (hosted by the New Economics Foundation) who kindly agreed to open source the project and continue to sponsor its development.
## How the mailing lists work, in brief
- Your mail server receives a mail to yourgroup@yourdomain.org
- The mail triggers a simple notification script on the mail server that in turn alerts your web app to the fact there's a new message for the group
- Your web app connects to the mail server via IMAP to fetch the new mail
- Your web app distributes the message to group members via SMTP
Installation instructions
-
Create a 2GB (or greater) droplet, which will act as both your web and mail server, with the image 'Dokku 0.9.4 on 16.04' and hostname
$DOMAIN(this could be a root domain like lumenapp.com, or a subdomain like network.lumenapp.com). SSH into the server viassh root@$DROPLET_IP. -
Run the installation script, replacing
$DROPLET_IPand$DOMAINwith the appropriate values:wget https://raw.github.com/wordsandwriting/lumen/master/script/lumen-install.sh; chmod +x lumen-install.sh; ./lumen-install.sh $DROPLET_IP $DOMAIN -
Add DNS records (get DKIM key with
nano -$ /etc/opendkim/keys/$DOMAIN/mail.txt):$DOMAIN MX $DOMAIN $DOMAIN A $DROPLET_IP $DOMAIN TXT "v=spf1 mx -all" mail._domainkey.$DOMAIN TXT "v=DKIM1; k=rsa; p=..." -
Visit
$DOMAIN. (You should be automatically logged in as an administrator. If not, sign in with the email addressadmin@example.comand the passwordlumen.) Change the admin name, email address and password, then click 'Configuration' in the footer to set configuration variables. You're done!
Switching mail servers
If you switch your mail server, you'll need to re-setup the group mail accounts on the new server. Fire up a console (padrino c) and run:
Group.each { |group| group.setup_mail_accounts_and_forwarder }
ConversationPost.update_all(imap_uid: nil)
Related Skills
node-connect
352.9kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.5kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
352.9kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
352.9kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
