No description, website, or topics provided.
Switch branches/tags
Nothing to show
Clone or download
Latest commit ec2722a Dec 2, 2014


Current Release: 1.0


Choose a Server

Use your own server or sign up at the RackSpace Cloud Create a Cloud Server Image: Ubuntu 12.04 RAM: 1 GB

  • save your password -

When the image is built, you can ssh in at the IP address:


Setup Your DNS: A record to (IP address)

Configure Your Server

Run the following steps to install LAMP:

sudo apt-get update
sudo apt-get install apache2
sudo apt-get install php5 libapache2-mod-php5
sudo apt-get install php5-curl
sudo apt-get install php-pear
sudo pear install Mail
sudo pear install Mail_mime
sudo a2enmod rewrite

Configure your site in apache:

cd /etc/apache2/sites-available/
sudo nano listapp
<VirtualHost *:80>
        DocumentRoot /var/www/listapp/app 
   DirectoryIndex index.php
   <Directory /var/www/listapp/app/>
      AllowOverride All
      Order Deny,Allow
      Allow from all

Enable the site sudo a2ensite listapp

Install MySQL Server:

sudo apt-get install mysql-server php5-mysal
- provide a password for mysql: xxxxxxx

Restart Apache:

sudo service apache2 restart

Install the Code

You can use wget or clone it from github:

sudo apt-get install git-core
ssh-keygen -t rsa -C ""
- enter the path for /home/root/.ssh/id_rsa
cd /root/.ssh
  • copy key to your forked github project settings deploy key

Test connection to Github

ssh -T

Clone the repository:

cd /var/www
git clone

Install Composer and the Mailgun PHP SDK

# Install Composer
curl -sS | php

# Add Mailgun as a dependency
cd /var/www/listapp/app/protected/vendor
php composer.phar require mailgun/mailgun-php:~1.1

For shared hosts with SSH access, you might need to run this instead (contact your shared host for assistance):

php -d detect_unicode=Off -r "eval('?>'.file_get_contents(''));"

Initialize the database:

mysql -uroot -p
create database listapp;

(replace newuser and password below with your own)
CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';

[see also] (

Build Your Configuration File

Build the configuration file for your application:

  • you'll need to sign up for (at least free level) to get API keys
cd /var/www
mkdir secure
cd /var/www/secure
sudo nano listapp.ini
  • copy & paste in your settings using sample-config.ini (in this directory)
  • as an example
  • but use the mysql password and mailgun keys and your chosen domain
  • you can find your mailgun keys here:
  • set superuser to the email address you want list messages sent from e.g. superuser = ""

Install the Database

Run the database migrations (recommended) or import the .mysql file:

cd /var/www/listapp
./app/protected/yiic migrate up

Enter your admin user name, email and password

  • this is what you'll use to log in to the application

Try Out Your App

Visit your web page:

Login with your user name and password

You should be ready to go...

Alert: If you run into a problem with directory permissions seeing the bootstrap directory e.g. CException Alias "bootstrap.widgets.TbNavbar" is invalid. Make sure it points to an existing directory or file. You can fix this by granting the Apache user access to all of your directories:

sudo chown www-data:www-data -R /var/www/listapp

You can post issues on Github: Listapp

Or, as comments on the mailgun blog: Tutorial

Contact the author

Jeff Reifman Consulting