Archive | December 2011

Install Tree.io on Ubuntu with Apache

A couple of days ago I stumbled upon a very, very interesting open source project, which I have  quickly fallen in love with. This this project is called Tree.io, an all-purpose business management app for any business. Sounds great, doesnt it? I dont want to bore you with its features, since you can easily look them up yourself here. However some things that I personally really like about this system are:

1) Beautiful user interface
Tree.io just looks awesome, and thats not the end of the story – even though in my opinion it is a big plus, since many open source projects just look crappy and dont have the “good-looking” and “quick-to-use” interfaces like the one that Tree.io offers. Its interface makes it really easy to work with: its ajaxified, fast and organized, which in my opinion is pretty important, since you’ll probably use it pretty often, once you decided to go with it. Just look yourself in this demo video:

2.) Code
Tree.io is written in Python, making use of the Django Web Framework. I think its a good thing. I hate it when complex projects roll the foundation of their software on their own, probably very inferior framwork – if they even use any. Django is a great, flexible and very mature framework, that has a lot to offer. The code is organized, clean, extendable all that stuff… If you’re experienced with MVC Frameworks, let them be Rails or Symfony for instance, you will probably appreciate Django, if you dont know it already.

3.) Features
Tree.io provides a lot of functionality which is probably sufficient for any small to medium sized business, that looks for an all-around solution. I personally dig the project management module. There many project management tools out there, few open source, and very few are in my opinion a pleasure to work with. Tree.io offers solid project management features like milestones, tasks (yeah, even sub tasks) and the ability to collaborate on tasks using project comments, task comments or to chat using Tree.io’s build-in chat functionality.

Conclusion
Different tools for project management, billing and invoicing, file-storage and collaborating, contact management -> I am tired of it. Since I decided to get totally organized in 2012, Tree.io really comes in handy and will be the tool that manages everything that I do 🙂 .

Installation

Unfortunately, the installation docs are not very clear, if you (as I), have never deployed a Django Project before. I assume you’re on a linux box with Ubuntu (or I guess another debian-based distribution) installed. I also assume you will install Tree.io into the /home/projects/treeio directory. Depending on what you actually have installed on your system, there might be some problems, just comment and I will happily answer them. Lets start.

Install apache, Wsgi and mysql:

 $ sudo apt-get install apache2 libapache2-mod-wsgi
 $ sudo apt-get install mysql-server python-mysqldb
 

Install some stuff that we need in order to work with Python and Django (if you havent done so already):

$ sudo apt-get install python-pip python-dev build-essential
$ sudo pip install --upgrade pip
$ sudo pip install --upgrade virtualenv
 

Install dependencies as outlined by Tree.io:

sudo apt-get build-dep python-lxml python-imaging

Create the directory Download and unzip Tree.io:

mkdir /home/projects // if the folder does not already  exist
wget http://tree.io/static/download/treeio.zip
unzip treeio.zip
cd treeio

You’re now into the treeio directory. Lets install all of its dependencies

make

If you get some error message saying that “PIP” wasnt able to find some dependencies such as “PIL”, just remove them from the “requirements.pip” file in the treeio directory. We have already installed them. You can than run “make” again after running “clean make”.

Create the “treeio”-database. I will not cover this here. However you then have to generate all the tables:

make install

The installer will guide you through all the steps. We’re almost done. There are 3 more steps:

Create a VirtualHost. Put a file called “treeio” in the /etc/apache2/sites-available directory and add the following:

Listen 8080
WSGIRestrictStdout Off
<VirtualHost *:8080>
 
    DocumentRoot /home/projects/treeio
 
    <Directory /home/projects/treeio>
        Order allow,deny
        Allow from all
    </Directory>
 
    WSGIScriptAlias / /home/projects/treeio/treeio.wsgi
    
    WSGIDaemonProcess treeio processes=2 threads=15 display-name=%{GROUP}
    WSGIProcessGroup treeio
 
</VirtualHost>

Save your file. We now have to add the “treeio.wsgi”-file in your treeio directory. Add this:

import os
import sys

sys.path.append('/home/projects')
sys.path.append('/home/projects/treeio')

os.environ['DJANGO_SETTINGS_MODULE'] = 'treeio.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Almost done! Add the treeio-site to the apache enabled sites:

$ sudo a2ensite treeio

Restart apache!

$ sudo /etc/init.d/apache2 restart

You’re done! Enter the url in your browser: http://yourip:8080 . You will now see your Tree.io installation, the default admin credentials are admin (user) and admin(pass).

Troubleshooting
If it doesnt work for you, the first thing you should do is to enable the debug mode: go to /home/projects/treeio and edit the settings.py file, setting “DEBUG” to “True”. You will now see some more output and error information, given that there is no server error. In this case, as always, check your Apache logs and go from there 🙂 .

Save time with the Envato market place

EnvatoMany times, when doing design, coding or any other web related work I first  look for resources to make my work easier. Let this be existing plugins for the CMS of my choice, Javascript stuff or graphic related stuff. One thing, that annoys me quite a lot is, that I find myself using the same resources over and over again: background patterns, image galleries you name it. It is first of all hard to find decent resources and also to find resources that you can use, for licensing reasons ect. This is where the Envato market place comes in. Envato offers several platforms for different purposes, offering resources that you can buy for really not much money at all. The great concept however is, that users can create resources and publish them at one of the Envato sites, splitting some of the revenue with Envato. It seems like many designers, coders ect. are now using these platforms to publish stuff, that they would otherwise have not published for free and also the overall quality of the offered resources is overall way greater than with free or other paid resources. And just to point it out again, many resources such as awesome jQuery plugins, background patterns or even themes can be bought for less than 5 bucks.

Themeforest.net

Themeforest.com is a platform that offers themes – simple as that. WordPress themes, Joomla themes or even admin themes for your next great web app can be bought here. If youre looking for something great, this is the right place. The great thing is also that the overall quality of the themes is really good. When going through templatemonster.com for instance, I find myself just getting pissed a lot of times, because there is so much low quality stuff offered. Take a look, you’ll see what I mean 🙂

Graphicriver.net

Graphicriver.com is a platform that offers graphics related stuff. I really love how the site is structured and how easy it is to navigate. Logos, fonts, web graphics, print stuff or even ready-to-use brochures and  business cards can be found here –> check it out!

Codecanyon.net

Codecanyon.net is the place to find the right script, plugin or code snipped for your project. CMS plugins, Javascript plugins such as jQuery image galleries or css templates can be found here – and actually quite a lot more as well. I must say this is my favorite Envato site, because there is so much useful stuff offered. But you can check it out yourself. I highly recommend it.

Conclusion

Market places for digital resources is of course not the newest business idea. However Envato’s sites just excell when comes to quantity AND quality. For a few bucks you will almost always find some great new resource that fit well for what you want to accomplish. If you do web related work, you really have to check these sites out, even though there’s a high chance that you already know them 😛

Easy server management with EHCP

Server administration is a pain in the a** to deal with, at least it is for me. For the production deployments that I work on, we usually use a deticated server with CentOS installed along with CPanel , which I must say works quite well. At least I have never had any problems with the CentOS/CPanel combination. However, I also use a bunch of vservers for testing and development purposes. These usually have the ubuntu server edition installed, since ubuntu just offers most software/tools in its repositories than any other linux distribution.

A couple of weeks ago, I wanted to set up a new development server for another side project, which by default had the “Froxlor” server control panel installed. This thing was as buggy as it gets. I found my self setting up a couple of vhosts, fixing postfix and some other annoying stuff for a couple of hours until I had enough.

I then started to look for a rather simple server control panel: easy to set up and of course easy to use. Needless to say, I found it:

EHCP stands for “Easy hosting control panel” and as the name suggests, it is quite easy, just works and in addition – it gives me all the features, that I need :).

Installation

1.) Donwload EHCP

$ http://www.ehcp.net/ehcp_latest.tgz

2.) Extract EHCP

$ tar -zxvf ehcp_latest.tgz

3.) Move to the EHCP directory

$ cd ehcp

4.) Start the installer

$ ./install.sh

Thats it! The installer will guide you through the installtion –> eezy peezy japanesey. Happy coding!