This page/guide was originally published in 2009 and has not been updated since then. It remains here as an archive. Any links on the page may or may not work.
Below details the setup for some of my favorite web applications. I’ve installed these on my home web-server, and honestly, I don’t know how I work without them anymore. Especially the first.
Zarafa Exchange Server
Zarafa is an open-source alternative to Microsoft Exchange Server systems. You may use them at your work (also similar to Lotus Notes systems). Zarafa is the only open-source system that offers a push-sync feature to your phone (iPhone and Microsoft Smart-Phones). I’ve tried Scalix and Axxigen, and they’re nice systems, but limited with the push functionality. If you don’t need push sync, and would have more than three email accounts, I suggest Scalix (make sure you skip the Mail Server setup in the Server Setup for that). The other thing about Scalix – be vary careful with the system. I noticed a significant memory leak. I’d start after a reboot with 800mb of memory used, and a week or so later, be at 1.5+ gb used.
So anyways, on to the setup!
cd /tmp lynx http://www.zarafa.com/content/download-community
I suggest that you download the second “x86_64” package under RHEL 5. This includes support for 3 outlook users. Near as I can tell, you can have unlimited “web-based” users, but only 3 that can actually connect with the server system using Outlook (doesn’t mean that you can’t use Outlook in the traditional POP3/IMAP setup).
tar zxf zarafa-6.30.4-rhel5-x86_64.tar.gz cd zarafa-6.30.4-rhel5-x86_64 ./install.sh
Going through these steps, it’s important to know that in linux, if you start typing the file or path, hitting “TAB” will complete as much as possible. In the above instance, if you type in “za” then hit TAB, it will take the entry to the end of the “x86_64”. If that’s all you’re doing, then great. But if you have multiple directories, then the next entry you make should allow you to TAB again and complete the entire string. (Double-hitting TAB will give you a list of options).
During the installation, you can pretty much hit ENTER for all the options (except for the mysql password – enter the MySQL root password there). When you get to the last section that discusses setting up users and LDAP, hit N. At this point, you should be ready to add user accounts. Make sure that you’ve created a user for each individual that you want to create a Zarafa mail account for.
zarafa-admin –c username –p password –e email@email.com "Full Name in quotes" –a 1
The “1” at the end denotes whether or not the account is an administrator of the email system or not. I suggest you only have 1 administrator. Set the flag to “0” for a “regular” account. Also, don’t forget that the email account should be “username@yourip.net” – where username is the Linux username you setup, and yourip.net is also what you’ve setup.
Now you need to test the system. Go to http://yourip.net/webaccess and login with the Zarafa user you just created. Try sending an email to an external account (Yahoo, Gmail, etc.). Make sure you received it. Try sending an email to your new Zarafa account from an external address (might take an extra few minutes to get there).
You will need to tell the system to deliver email to Zarafa.
postconf -e mailbox_command = /usr/bin/zarafa-dagent "$USER"
If all was successful, you’re ready for the next steps. If not, you need to go back and check your mail server setup. (This is why I suggest Scalix or Axxigen, as it’s a full and relatively simple setup). The next step is to get Push synchronization working, as well as setup your Outlook connection(s).
Zarafa uses a third-party integration called Z-push. (http://z-push.sourceforge.net) The latest version is 1.3beta2 (as of August 2009). You may want to check the latest download page (and get the latest release).
cd /var/www/html wget http://download.berlios.de/z-push/z-push-1.3beta2.tar.gz tar zxf z-push-1.3beta2.tar.gz rm -rf z-push-1.3.beta2.tar.gz yum -y install php-pear pear install Mail chmod 777 /var/www/html/z-push/state
nano /etc/httpd/httpd.conf
You’ll need to edit the file and insert the following line (towards the end is fine). Save and exit when done.
Alias /Microsoft-Server-ActiveSync /var/www/html/z-push/index.php
You’ll need to restart the web server (
service httpd restart
). Now, point your browser to http://myip.net/Microsoft-Server-ActiveSync. You should get a login prompt, followed by an error message about “Get not supported”. You’ll need to setup your phone to access the above server. Unless you plan on spending money for a Security certificate, make sure you configure the phone without SSL support. (Might take you a few failed syncs to actually have the dialog pop up.)
As for setting up Outlook connectivity, go to http://www.zarafa.com/content/download-community and download the “Zarafa Client” and install. The Zarafa folks have a manual that covers the installation and setup of this piece on each computer (Zarafa User Manual). It’s pretty straightforward.
To start pulling emails from other accounts, go to your Webmin access panel (https://mydomain.com:10000), and search for fetchmail on the left-hand side (under “Servers” section). You’ll want to go into this module and setup each individual mail account you want to pull in (note that Yahoo does not support this for free accounts). You’ll need the connection information for each of your ISP’s (like you were setting up Outlook or another mail client). Begin by setting up a user to add. After that, you click “Add a new server”. Complete the information according to your ISP. Don’t forget in the second box to enter your username and password for that ISP, not your Zarafa username. Local user(s) should be changed to your local Linux account. I prefer to leave my messages on the server (in case my server’s inaccessible for some unknown reason). I also prefer to use POP3 (some of my accounts have both POP3 and IMAP access available) – for some reason IMAP through fetchmail loses formatting. I will also warn you that if you use Gmail a lot, anytime you reply to a message, it shows up as a new message in your inbox. It’s better to use IMAP if you don’t want the clutter here. Make sure you setup “Scheduled Checking” after creating each server entry. All my servers check every 5-10 minutes (depends on how soon I actually want to receive the emails).
RNews News Aggregator
In today’s day and age, most major websites use RSS feeds. It’s a great way to cut down on browsing time if you use them. The unfortunate thing is, how can you remember what you’ve seen if you’re on different PC’s? Enter RNews.
cd /var/www/html/ wget http://downloads.sourceforge.net/project/rnews/rnews/rnews-1.01/rnews-1.01.tar.gz?use_mirror=voxel tar zpxf rnews-1.01.tar.gz mv rnews-1.01 news cd /var/www/html/news/inc chmod 777 config_user.php
Here’s where we start getting into the fun of MySQL. Go to http://mydomain.com/phpmyadmin (login with MySQL root username/pw). Click “priveleges”, then “add new user”. Create a username (something easy and relevant – news for example); select “localhost”; create a password (or alternatively generate one – remember it though!). Select “Create database with same name and priveleges”, then click “go”. Remember that username and password.
Now, point your browser to http://mydomain.org/news/install.php. Follow the steps, entering the database name, username, and password you just created. When you’re done, surf on back to http://mydomain.com/news/ – you should get a user login or setup page. Login, and you’re good. You’ll see some warning messages – we’ll take care of those now. (If you still get a warning about the config_user.php – change the chmod to 555)
cd /var/www/html chmod 000 install.php cd /inc chmod 755 config_user.php
Just add whatever feeds you wish to the system, configuring it to your needs. There’s a handy plug-in for Firefox users that you can use to make adding RSS feeds a breeze. Check it out (and other future release information at http://rnews.sourceforge.net
Tracks
The problem with To-Do lists is that they’re either specific to a PC, or still in paper. Tracks is based on the Getting Things Done methodology, and has a pretty nifty user interface (one of the best I’ve seen, actually – that’s why I use it). It’s even got a mobile web-interface so you can access it from your cell phone. Someone’s also working on an iPhone app (although I think it’ll have it’s own separate server). You can customize the system and use the RSS functionality, and I’ve even seen some instructions on using it with Outlook. I will warn you that it doesn’t work with IE7, but is great with Firefox, Chrome, and Safari. No word on its functionality with IE8. (I’m still on IE7 at work, and don’t use IE at home). It uses the Ruby on Rails framework, so it’s pretty darned fast.
cd /tmp wget http://rubyforge.org/frs/download.php/60719/rubygems-1.3.5.zip unzip rubygems-1.3.5.zip cd rubygems-1.3.5 ruby setup.rb gem install mysql -- --with-mysql-config=/usr/bin/mysql_config gem install rake
At this point, you will need to go back to PHPmyadmin and create another user & database for this installation. (Tracks or tracksuser would be fine). After that’s done, it’s time to setup Tracks.
cd /var/www/ wget http://bsag.bingodisk.com/public/files/tracks-current.zip unzip tracks-current.zip ln -s tracks-1.7/ tracks rm -f tracks-current.zip cd /var/www/tracks/config nano database.yml
You will need to edit the database.yml file to connect with the MySQL database you setup earlier. The following values should suffice (make sure to uncomment the “production” area):
adapter: mysql host: localhost database: tracksdb username: tracksdbusername password: tracksdbpassword
Now, onto the environment.rb file. You’ll need to add the line below.
nano environment.rb ActionController::AbstractRequest.relative_url_root "/tracks"
After that file is saved, you’ll need to work with the site.yml file. You need to change the “salt” line to something easy for you (a unique key), as well as change your timezone. For eastern time, change to “Lima”. If you are in another timezone, there’s some documentation on finding that out at the Tracks site (http://www.getontracks.org)
nano site.yml
Once all that’s finished, it’s time to actually setup the database.
rake db:migrate RAILS_ENV=production
Time to start making sure that you can actually run it through your web server.
gem install passenger passenger-install-apache2-module
You’ll need to make a note of where the passenger module files are located (shows you at the end of the module install). You’ll need to create the following file, then put the information you received into it (an older version is here – usually just update the version numbers).
nano /etc/httpd/conf.d/modrails.conf LoadModule passenger_module /usr/lib64/ruby/gems/1.8/gems/passenger-2.0.3/ext/apache2/mod_passenger.so PassengerRoot /usr/lib64/ruby/gems/1.8/gems/passenger-2.0.3 PassengerRuby /usr/bin/ruby
service httpd restart
That last line before the restart is necessary, since we didn’t actually put the entire Tracks directory under the publicly available html folder. The first thing to do is to visit the signup page and create an admin user. Browse to http://mydomain.biz/tracks/signup and create your admin account. To access in the future, you’ll just go to http://mydomain.com/tracks. To access from your cell phone, use http://mydomain.com/tracks/mobile. Make sure that you edit your preferences to reflect your email, timezone, etc.
Sitebar
Sitebar is another application that I love because it allows me to keep everything in a centralized location and use between computers. This is a system for organizing your bookmarks/favorites. You’ve got a couple options for using the system. One, use a pre-setup system at one of the many sites there, or, run your own. The installation of the software on the server is pretty straightforward, but integrating into your browser is a bit of an exercise. (This is true for running your own or using someone else’s). You can use it without the integration, but I feel it loses a lot of its appeal.
Start out by creating a database in http://mysitedomain.com/phpmyadmin. As always, remember your database name, username, and password.
cd /var/www/html wget http://downloads.sourceforge.net/project/sitebar/SiteBar/3.3.9/SiteBar-3.3.9.zip?use_mirror=voxel unzip SiteBar-3.3.9.zip mv SiteBar-3.3.9/ sitebar
Now, head on over to http://mysite.net/sitebar/index.php and follow the installation instructions. Include the database information, and you’re set. Pretty straightforward! To integrate with your browser, you’ve got links available on the sitebar page (when you pull up in your browser). Just to note, that you have to download a plugin for Firefox, which is available at http://www.sitebar.org.
I’m always on the lookout for new and useful web platforms to use. I could just as easily have kept all of these apps here on the-gatekeeper.net (excluding Zarafa), but it’s more convenient to run from my home server where I have control.