Skip to content
This repository has been archived by the owner on Apr 7, 2023. It is now read-only.

Latest commit

 

History

History
54 lines (41 loc) · 3.05 KB

README.md

File metadata and controls

54 lines (41 loc) · 3.05 KB

Lumen

Build Status

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

  1. Your mail server receives a mail to yourgroup@yourdomain.org
  2. 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
  3. Your web app connects to the mail server via IMAP to fetch the new mail
  4. 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 via ssh root@$DROPLET_IP.

  • Run the installation script, replacing $DROPLET_IP and $DOMAIN with 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 address admin@example.com and the password lumen.) 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)