I am using debian, so here are a few commands I use: # apt-get install postgresql # sudo su - postgres # createuser /your_login/ # apt-get install ruby # apt-get install libpgsql-ruby # apt-get install irb # apt-get install rdoc -> why??? # ln -s /sbin/ifconfig /bin/ # gem install rails # gem install redcloth Only if you expect to develop and release: # gem install meta_project The database is setup for user "manu", you may need to change the file config/database.yml for your own settings. Change config/environment.rb to set the domain, default is something like 'leparlement.org', define it as your web site or email domain. In procmail, define a rule to redirect the relevant mail to parlement, I use: :0 c * ^TO parlement|leparlement.org | /home/manu/parlement/trunk/script/runner 'Mailman.receive STDIN.read' Once you have everything set up (ruby, postgresql, redcloth, irb), you can launch parlement thus: ~ cd parlement ~ psql -q template1 -f db/schema.sql ~ ruby lib/data_import.rb ~ ruby ./script/server Now you can go to localhost:3000 The problem: "how to display conversations" The entities involved: - element - ancestor - children - children number - author - element's size - title - body The possibilities - show one element and its children closed - show one element opened and its children closed - show one element and its children opened, its grand children closed - show one element opened, its children and grand children opened - when an element is closed, also show its children? Limits - can not display all elements at once - can not display one element and all its direct children at once Parameters - ordering - date - number of children displayed - votes Here is my console code to reset threads from their original mails: >> elts=Mail.find_all.select{|m|m.file and mail=TMail::Mail.parse(m.file) and reply=mail.in_reply_to and mailObject=Mail.find_by_message(reply) and mailObject.elt.id!=m.elt.parent_id}.collect{|m| {:elt=>m.elt.id, :parent=>Mail.find_by_message(TMail::Mail.parse(m.file).in_reply_to).elt.id}}; puts elts.size >> elts.each{|e|print e[:elt], ' ', e[:parent], ' '; puts Elt.update_all("parent_id='#{e[:parent]}'", "id='#{e[:elt]}'")}; puts elts.size