Author Archives: Ben Wagner

Installing Crashplan 4.5 on Headless Ubuntu Server with X11 Forwarding

Running Crashplan on a Headless Server is Officially Unsupported

A while ago my Crashplan installation stopped working (probably became out of date) and I’ve recently migrated the rest of my services and applications over to Docker containers, which I have been very happy with. So I didn’t anticipate too much trouble when trying to move Crashplan into a docker container as well, however I was running into difficulties because Crashplan requires the GUI for configuration. The xeor/crashplan (https://hub.docker.com/r/xeor/crashplan/) image seemed like the perfect fit, it would make Crashplan Desktop accessible via VNC. However after fiddling with this, it turns out Crashplan has made some updates which has broken this image.

And it’s clearly not a priority for them to properly document because I couldn’t even manage to get their published (year old) instructions (https://support.code42.com/CrashPlan/4/Configuring/Using_CrashPlan_On_A_Headless_Computer) working. Even if I managed to get this working, the workflow was not ideal, requiring port forwarding and copying data from the server to local PC that seems to change every time the service restarts – a much more kludgy process than I remember going through last time, which only involved updating the IP on a Windows PC to point to the remote headless machine.

Recommendation: Use X11 Forwarding

X11 forwarding is simple to setup and it allows Linux GUI windows from a remote machine that you are SSH’d into to be displayed on your local machine. I went ahead and installed Crashplan natively on my Ubuntu server and followed the steps below to get it installed on Ubuntu and configured remotely from my Windows machine.

Install Crashplan

  1. Download the latest Crashplan Linux installer
    wget http://download.code42.com/installs/linux/install/CrashPlan/CrashPlan_4.5.0_Linux.tgz
  2. Unzip the package
    tar -xvf CrashPlan_4.5.0_Linux.tgz
  3. Go into the installation directory and run the install command
    cd crashplan-install/
    sudo ./install.sh
  4. Follow the installation steps and proceed as you wish. I used the default installation options.

Configure Ubuntu Server for X11 Forwarding

  1. Install xterm if it’s not already installed
    sudo apt-get install xterm

Note: If at the end of this guide you are having any troubles, there are a ton of guides on setting up X11 so I suggest reviewing those to make sure the rest of your Ubuntu SSH settings are configured properly.

Configure Windows PC for X11 Forwarding

  1. You will first need an SSH client, for this I suggest Putty (http://www.putty.org/)
  2. You will also need an X Windows System. There are also multiple options but I used Xming (http://sourceforge.net/projects/xming/)
  3. Open Putty and fill in the Hostname/IP of your server and make sure SSH and PORT 22 are specified.
  4. Next, go to the Connection > SSH > X11 option in the Category tree and check “Enable X11 forwarding”x11 forwarding for Crashplan Headless Server
  5. Then hit open and login to your machine.
  6. You can test that X11 forwarding is working by opening an application like firefox or just go straight ahead and launch the Crashplan UI by typing `CrashPlanDesktop`. Wait a few seconds and the welcome screen should pop up.

Configure Crashplan Normally

Now that you have the Crashplan UI displayed, you can login normally and specify the directories that you want to backup. You’ll now have the same level of control that you’d typically have from a PC with a GUI.

During my research I encountered a lot of people trying to get Crashplan working with Unraid as well, maybe one day Crashplan will develop a WebUI for those of us running servers or NAS’s, but if you haven’t chosen a cloud backup provider already, I’d suggest looking at others that are more Linux-friendly. Until then, its a simple enough process to launch Xming, SSH into my server and run a single command.

Mautic Review - Free Open Source Marketing Automation

Mautic Review & Overview – Open Source Marketing Automation Tool

What is Marketing Automation

If you are in the marketing field you have probably heard of the term marketing automation, as there are now a handful of software tools which pride themselves on their marketing automation prowess. If not, you have seen the work of marketing automation systems first hand as a consumer, whether you knew it or not.

Marketing automation is the use of software to automate the management and execution of marketing campaigns, including customer segmentation, scheduling, and tracking, in a way that is more efficient and more effective than what is possible manually. These systems provide a seamless omni-channel experience for prospects as they convert into customers across the various interactions they have with your brand via website, email, social media, etc.

Mautic Overview – Free as in Speech

Mautic is a new marketing automation platform which has taken a very different approach from some of its competitors like Hubspot, Marketo, and Pardot. The Mautic codebase is open-source, released under the GPL, and available on GitHub. Their commercial company goes by the name of Allyde and makes their money via their “Allyde Cloud” hosting, services, and support.

A free hosted version of Mautic is available though Allyde’s cloud at Mautic.com where you can sign up for free and receive a subdomain xxx.mautic.com to get your feet wet with marketing automation. This free version is good for a limited number of contacts, with cheap plans available for larger databases. Mautic originally had a tiered pricing plan based on the number of contacts stored (similar to their competition), but I just noticed that they updated their website with a new, refreshing pricing model – a Pro plan which includes unlimited contacts for only $12/month! As they mention, who knows how many contacts you plan to have going into this.

Of course you can also opt to host the Mautic code on your own server without any limitations. This enables you to run Mautic on your own domain (which can also be done with Mautic Pro) and have your landing pages accessible at the domain of your choosing (rather than at xxx.mautic.com). There are also some other settings that are not configurable on the hosted version, such as the interval for certain cron jobs which are required to update the smart lists, enroll contacts in campaigns, etc. which all happen at a preset interval.

Mautic Review

Mautic Landing Page Designer

Mautic’s drag and drop landing page designer has a responsive design. Alternatively the landing page can be developed using custom HTML. Mautic also allows you to create multiple landing page variants and specify the percentage of traffic to route to each variant to perform some A/B testing and determine which ones perform the best.

Mautic Landing Page Designer

Forms

Mautic makes it easy to add and track custom lead fields and has a pretty simple form builder which includes some build in form validation and HTML5 inputs on fields such as email, date, etc. with user-configurable error messages. Mautic also allows you to assign class attributes to each field so they can be manually styled easily if desired.

You also have granular control over the actions which occur when the form is submitted, which includes making updates to the lead, adjusting their lead score points, modifying the lead’s list, downloading assets, sending emails, and more.

Lead Management

Smart Lists contain all contacts which meet the specified filters. These lists help quickly organize leads into easy-to-manage groups and are the basis for enrolling contacts into a workflow, since campaigns are associated to a specific list.

Contacts can be enrolled in one or many lists and can be modified manually or automatically through the campaign builder’s logic. However, the filters are not as flexible as Hubspot’s and are only limited to contact properties.

The updates to the smart lists which reevaluate all contacts against the filters happens at specified intervals set via a cron job running on the host machine. I am not sure how long this process takes in the hosted version, but if you are hosting your own instance you can configure appropriately.

Mautic Smart List

Email Marketing

Mautic’s Email functionality is very similar to what they provide for landing pages, with the ability to develop in HTML or use their drag and drop Email Builder. They have A/B testing available and have the ability to embed various lead fields into the email to personalize the message.

Mautic Email Builder

Campaigns

Mautic has a really nice drag and drop campaign creator which makes it very easy to visualize the campaign you are creating. Conditional items such as whether an email was opened are clearly marked in green and you simply drag the dots to the conditions or actions that you want to connect. Personally I prefer this representation over Hubspot’s.Mautic Campaign Builder

Analyics / Reporting

Mautic comes with a pretty basic dashboard which provides some information about visitors, emails, and a list of the top pages, downloaded assets, and most popular campaigns that leads are enrolled in.

Mautic Dashboard

However, while not the prettiest or the most user friendly, their report creator provides enables reporting on any field within the system. It may take some brief tinkering to find what you are looking for, but ultimately you should be able to produce what you need.

Mautic Report Creator

Mautic’s reports can be in either graphical or tabular format.

Mautic Report

Integrations

Mautic has an impressive list of integrations, with 39 at the moment and seems to have a focus on continuing to add additional services. With support for standard CRMs like Salesforce and Microsoft Dynamics, and Zoho CRM they have also included support for their open-source CRM friends Sugar CRM, vTiger.

Email being one of the major aspects of marketing automation, they have integrated with a wide range of email providers including – Amazon Simple Email Service (SES), Mailchimp, Mailjet, Mandrill, and Sendgrid. Mautic also has plugins for WordPress, Drupal, and Joomla, to get up and running quickly without having to touch any code.

Additionally, while not nearly as powerful as some other cloud integration tools, Mautic has an integration with IFTTT (If This Then That) which allows for automation of some basic tasks across a variety of web applications for which they don’t already have pre-built integrations.

Mautic Review Conclusions

After using Mautic briefly I was very impressed with the level of polish and the amount of features and functionality that has been included for free, especially for software that is normally associated with monthly license fees in the hundreds to thousands of dollars. While the level of more advanced functionality does not match that of the competition, they only launched a couple months ago and all of the core functionalities of a marketing automation system – capturing, tracking and nurturing leads is fulfilled by Mautic.

Overall, I think Mautic provides a great introduction to marketing automation and will be a great fit for small businesses, bloggers, etc. looking to add some intelligence to their lead nurturing efforts without investing in thousands of dollars per year on some of the other marketing automation systems, while larger businesses who can afford the price tag can benefit from the additional functionality offered by other solutions if it is implemented properly and with enough resources.

Additionally, from what I have seen in the Mautic community so far, I am impressed with the level of engagement by the developers and how they have been very helpful and forthcoming about what is coming next. Looking forward to v1.1.

Have you tried Mautic? Leave your review in the comments.

Microsoft Ergonomic Keyboard 4000 – Zoom to Scroll

Have you ever wished that the zoom slider on your Microsoft Natural Ergonomic 4000 Keyboard could be used to scroll instead scroll? I surely found the zoom button placed right in the middle of my keyboard to be a major waste of prime real estate and set out to re-purpose it for scrolling.

First, make sure that you install the lastest version of the Microsoft software (found here). Not only will this installation allow you to make the adjustment being discussed, but it will also allow you to customize the actions for the rest of the shortcut keys. For example, I reassigned the email button to open a webpage right to gmail.com instead of having it open Outlook (default behavior).

Guide to change zoom to scroll… http://www.pchenry.com/Home/tabid/36/EntryID/77/Default.aspx

LinkedIn Developer API Javascript Domains for Cordova Mobile App

I was starting a small project making a mobile app using Apache Cordova (PhoneGap) to pull data from LinkedIn. The first step I did was signing up for LinkedIn’s Developer program so that I could obtain an API key.

When filling out the requested information, one of the items threw me for a loop – “Javascript API Domains” which was described as a “Comma separated list of fully-qualified domain name of all pages that will call the JavaScript API. Only needed if using Javascript API. Must include protocol, host, and port (it not 80 or 443).”

While this is a typical question when you are asking a web developer, this would be http://localhost if you are developing locally or simply http://yourdomain if you were hosting it. However, I wasn’t sure how it applied to mobile, and specifically in the case of Cordova.

I initially tried “http://localhost” but received the following error being thrown in LogCat:

"Uncaught Error: You must specify a valid JavaScript API Domain as part of this key's configuration."

After searching around I was able to find other people asking similar questions, however I was unable to find any answers.

It wasn’t until I noticed the following line in the logs did I realise what I should provide as the API Domain.

"I/Web Console: Received Event: deviceready at file:///android_asset/www/js/index.js:53"

Then it occurred to me, all they were looking for was “file:///” and after saving those changes in LinkedIn’s Developer site, I was up and running.

LinkedIn API Domain Key

Alternative to Google Apps for Business – Zoho

I am working on a little project with a friend over at BrightVape.com so I went to sign up for a Google Apps for Business account in order to get both of us some business email addresses. For those of you who don’t know, this service allows businesses to use the Google Apps suite of products with their custom domain name instead of @gmail.com.

To my surprise Google has stopped offering their free 10 user accounts back in December and I began looking for hosted alternatives as I did not want to configure a mail-server on my VPS hosting.

After doing some research I ended up signing up with Zoho. In addition to email, Zoho offers a large number of business products ranging from bug tracking to recruiting. However, their free email service is significantly more limiting than the Google suite as it is limited to 3 user accounts and does not provide any funcionality that is included with their other tools. In comparison Google had offered Mail, Calendar, Talk, etc.  Since I was looking for email accounts I was all set and moved forward with signing up.

I found the signup process a lot more confusing that it should have been. First you need to verify that you own the domain through modifying CNAME records or uploading a file – pretty standard. But then I was first asked to create an account name and was informed this was going to be used as my email address, but there was oddly a min of 6 characters and it said my name had already been taken. I was perplexed for a moment and then figured out I was not actually creating my email address here, I was actually creating a Zoho username.

Once that was set I had my account set up and was able to simply add my 3 users and be done. When logging in to retrieve your email, you have to enter that Zoho account username that was created as part of the signup process, but after I have learned this it has been pretty smooth.

The email UI for Zoho is a pretty decent looking and quick for webmail but it is surely no GMail. That being said, I’m pretty disappointed that Google has shut down their service, but I can’t complain too much since I use a ton of free Google products every day.

Installing Xen or Xen Cloud Platform from USB

When downloading Xen or Xen Cloud Platform you get an iso which I initially tried loading on my usb stick using unetbootin which is my typical go-to for linux installations. However, I was having troubles and wasn’t able to boot into the installation.

I found the following directions from darkod on the Ubuntu forums here which enabled me to successfully complete the installation.

1. Open the usb stick and in the root rename syslinux.cfg to syslinux.old
2. In the folder boot/isolinux, find and rename isolinux.bin to syslinux.bin, isolinux.cfg to syslinux.cfg
3. Go back and rename the whole folder isolinux to syslinux

Boot VMWare Workstation from USB using Plop

I found the guide below when trying to boot a VMWare Workstation virtual machine from a USB stick with a bootable image of XenServer that I created using the great utility UNetbootin.

VMWare does not have an option in the BIOS to boot from a USB device so in order to accomplish that I followed the instructions below by Vladan Seget which explains how the use the Plop boot manager.

01. Download boot manager from PLoP
02. Use the Iso in the boot manager as a boot device to boot your VM
03. Add an USB adapter to your VM (if not already done).
04. Insert your USB stick with ESXi 4 installed in it.
05. When your VM boots from that ISO, just select USB from the menu.

How to Enable mod_rewrite with Apache2 on Ubuntu

When I want to setup a webserver on a fresh virtual machine for testing I use the standard command to install of Apache2, php5, and mysql:

sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server phpmyadmin

I am currently playing around with CakePHP which requires mod_rewrite to be enabled. In order to turn this on you need to enter the following commands from any location in the terminal:

sudo a2enmod rewrite


And then just restart the apache2 service:

sudo service apache2 restart

PS3 Media Server on Ubuntu

I have my fileserver set up to run a variety of tasks since it is always on. One of the things I like is the ability to stream a variety of videos to my PS3. Natively the PS3 has limited file support for streaming so transcoding using a great open source program called PS3 Media Server is necessary.

A member of the PS3 Media Server forum, Paissad put together this script below (that is no longer hosted on the forums, so I have a mirror below) that goes through the entire installation process.

The only configuration that needs to be done is going to /etc/pms-linux/PMS.conf and specifying what folders you want to share.

Here you can find the script that goes into the init.d folder to auto-start PS3 MS upon bootup if it is not placed there automatically.

Installing Ventrilo Server on Ubuntu 10.10

I found a great guide to installing Ventrilo on Ubuntu 9.10, I followed the steps and it worked perfectly on my installation of 10.10 as well. It fills in all the gaps that official ventrilo installation guide has.

Source: Brandon Williams @ http://rocketeerbkw.com/content/installing-ventrilo-server-ubuntu-910-karmic-koala

If you’re running a 64bit version of Ubuntu, you must install the 32bit libs

# sudo apt-get install ia32-libs

Create a user for ventrilo to run under

# sudo useradd ventrilo

Download the linux version to your home directory (or another temp directory of your choosing), extract the files and change current directory to what we just extracted

# tar -xzf ventrilo_srv-3.0.3-Linux-i386.tar.gz
# cd ventsrv

Move the vent binaries to /usr/bin and make them executable

# sudo mv ventsrv/ventrilo_srv /usr/bin/ventrilo_srv
# sudo mv ventsrv/ventrilo_status /usr/bin/ventrilo_status
# sudo chmod +x /usr/bin/ventrilo_srv /usr/bin/ventrilo_status

Make a directory for the config files and then move them there.
Give ventrilo user access

# sudo mkdir /etc/ventrilo
# sudo mv ventrilo_srv.ini /etc/ventrilo/ventrilo_srv.ini
# sudo chown -R ventrilo:ventrilo /etc/ventrilo

Make vent start when computer boots

  • Create the init.d script
  • Copy the contents of  this init.d script to that file
  • Make it executable and add it to boot sequence

    # sudo nano /etc/init.d/ventrilo
    # sudo chmod 755 /etc/init.d/ventrilo
    # sudo update-rc.d ventrilo defaults

Test to see if it works

# sudo /etc/init.d/ventrilo start

You should see something like the following, where 21626 will be the process ID of vent server

* Starting VOIP server ventrilo
21626: old priority 0, new priority -5
[ OK ]