foobacca / heliotrope Goto Github PK
View Code? Open in Web Editor NEWThis project forked from wmorgan/heliotrope
A personal, threaded, search-centric email server.
This project forked from wmorgan/heliotrope
A personal, threaded, search-centric email server.
Heliotrope is a personal email server. It provides all the functionality you want in a modern email client: - proper message threading - labels - fast, full-text search over all messages with a complete query language - support for signed and encrypted email - an extensible JSON-over-HTTP API Heliotrope is a backend service against which email clients / MUAs can be written. To use it, you must use a client. For an example client, see Turnsole: http://github.com/wmorgan/turnsole. WHY ANOTHER PROTOCOL? WHY NOT JUST USE IMAP? Because IMAP is terrible and you want all those features listed above. REQUIREMENTS Heliotrope is written in a mixture of Ruby and C. You will need a working C compiler, and a modern Ruby. 1.8.7 or 1.9.2 are good choices. Ruby 1.9.2 will give you better performance and better i18n support. Heliotrope uses html2text to generate text from HTML attachments. You will need this or some reasonable alternative. PREPARING YOURSELF 0. Find your happy place. 1. Install html2text. On Debian-based Linux distros, it's `apt-get install html2text`. On OS X, `port install html2text` and `brew install html2text` have both been known to work. 2. Install a modern Ruby. I recommend 1.9.3. On Debian-based Linux distros, you can try the ruby1.9.1 package. You can also download and compile it from http://www.ruby-lang.org/en/downloads/. For Debian-based Linux distros, make sure you have the libreadline-dev and zlib1g-dev packages installed. 3. Run `gem install trollop whistlepig rest-client sinatra rmail leveldb-ruby locale` GETTING IT Once Heliotrope is more stable, you will be able to install it via rubygems. For you, you should run this: git clone https://github.com/wmorgan/heliotrope.git RUNNING IT Decide where you want to store everything. Call this directory <mailstore>. Now run `ruby -Ilib bin/heliotrope-server -d <mailstore>`. Heliotrope exposes a simple debugging HTML interface. If you point your browser to http://localhost:8042/, you should see your empty mailstore. Congrats! You're running Heliotrope. IMPORTING EXISTING MAIL STORES To bulk import mail, use heltrope-import. You must stop your server first. To add a pre-existing mbox: ruby -Ilib bin/heliotrope-import -m <mbox> -d <mailstore> To add a pre-existing maildir: ruby -Ilib bin/heliotrope-import -a <maildir> -d <mailstore> To add a pre-existing Gmail account: ruby -Ilib bin/heliotrope-import -g <gmail username> -d <mailstore> To add a pre-existing, non-Gmail IMAP account: ruby -Ilib bin/heliotrope-import -i <imap server> -d <mailstore> For testing purposes, you may want to limit the number of emails added by using the --num-messages option. After import, start the server again. You should see stuff at http://localhost:8042/. For a full client, see https://github.com/wmorgan/turnsole/. ADDING EMAIL Once the server is running, you can use heliotrope-add to add individual emails as they arrive. Unlike heliotrope-import, heliotrope-add talks to your running server. To add a single email: cat email.txt | ruby -Ilib bin/heliotrope-add You may do this automatically to all new email by configuring your .forward file appropriately. JSON API SPEC ------------- Coming soon! For now, you can reverse engineer lib/heliotrope-client.rb.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.