ThinkUp keeps track of your social media

Keeping Watch

© Lead Image © Bwl,

© Lead Image © Bwl,

Article from Issue 164/2014

Community managers, professional marketers, and active social media users want to know the effect their messages have on followers. ThinkUp can help.

Keeping track of what was said, the time of day it was said, and how the audience responded to it can be essential for marketers and community managers, and perhaps mildly interesting to the rest of us.

ThinkUp [1] is a free software platform that collects and culls data from your social media and keeps you informed of what's going on, which messages your followers find interesting, and which are duds.

ThinkUp will tell you, for example, what your most popular posts are in a given period of time, allow you to keep track of whether you are speeding up or slowing down your posts, and advise you of the best moment to post by analyzing the time of day your users react to your tweets or Facebook updates. It does all this by tracking posts and responses across a broad range of social networks, including Twitter, Facebook, Google+, Foursquare, YouTube, and more (Figure  1).

Figure 1: ThinkUp provides a wealth of insights into your social media.


ThinkUp is most likely not available in your distro's repositories. That said, as a PHP application, it is not too hard to install (no configuring, linking, and compiling). As usual, I'll be using a clean Debian install to start with the cleanest slate possible.

And, as usual, you first have to install Git, as follows,

$ su
# apt-get update
# apt-get install git

to grab the latest version from the GitHub repo:

$ git clone

Once downloaded, the first step of the installation consists of copying the contents of the ThinkUp/webapp/ directory to the location your web server expects it. In our lab, I use Debian and Apache, so I copied the file to /var/www/thinkup/:

# mkdir /var/www/thinkup
# cp -Rv ThinkUp/webapp/* /var/www/thinkup/

You will need a typical LAMP setup for things to work. Because I assume you are already using Linux and have installed Apache, you now have to install an instance of the MySQL database engine and the PHP module for Apache:

# apt-get install mysql-server mysql-common php5 php5-mysql

You will also want to install sendmail

# apt-get install sendmail sendmail-base sendmail-bin sendmail-cf sensible-mda rmail

because ThinkUp needs it later to send email to its users.


If you now visit, you should see something like Figure 2. ThinkUp needs read/write access to all files and subdirectories under the thinkup/ directory, which means passing ownership over to the user that runs your server.

Figure 2: ThinkUp needs ownership of the files and subdirectories within its root directory.

You can find out who owns the running instance(s) of your server with:

$ ps aux | grep [server]

For example, running Apache on Debian, you'll get something like Listing 1. This tells you that the user you are looking for is www-data.

Listing 1

Running Apache on Debian


To change ownership, it's just a matter of using chown:

# chown -R www-data:www-data /var/www/thinkup/

Reloading the page will tell you that you have to install ThinkUp. Click on the Installing ThinkUp link to proceed.

In the next screen, ThinkUp shows the packages you're missing (Figure 3). Here, it's the PHP5 library for the file transfer tool cURL and the PHP GD graphics library. On Debian, you install them with:

# apt-get install php5-curl php5-gd

Reloading again shows you the ThinkUp configuration screen (Figure 4). In the top half of the screen, you set up the admin account and, at the bottom, the database. Before you do that, though, you have to create an empty MySQL database and a MySQL user who has all the privileges for said database.

Figure 3: ThinkUp informs you of missing dependencies.
Figure 4: Creating your first ThinkUp account.

The easiest way is probably using PHPMySQLAdmin, installable with:

# apt-get install phpmyadmin

The Debian install process will also help you set up a root account correctly for MySQL, which is always a good idea. Once installed, visit, and log in and choose the Privileges tab. Now, click on Add new user and name it thinkup, then set the Server box to localhost and set a password.

Scrolling down and selecting the Create database with the same name and grant all privileges radio button creates the user and database you need all at once.

If you can only access your MySQL instance from the command line, you will have to create the thinkup database, then the thinkup user, and finally grant privileges in three separate steps, as shown in Listing 2. Now you are ready to configure the database part of the ThinkUp configuration screen.

Listing 2

Setting Up the Think Databases


Use localhost in the Database host field, thinkup in the Database name and User name fields, and the password you set in the Password field. Hit Set It Up.

Here's where sendmail comes in useful. If you have installed sendmail, ThinkUp will send you an email with an activation link you can click and use to log in. If you don't get it, there's something wrong with your sendmail installation. It is beyond the scope of this article to troubleshoot sendmail, but you will find your lost message, along with the activation link, in /var/mail/www-data – that is, if you are using Debian Wheezy – or a similar location.

Once activated (Figure 5) you can try to log in. I say try, because the current ThinkUp version seems to have an undocumented bug that, regardless of what you write in the login text boxes, always dumps you back at the login screen. Apparently this is solved "updating migrations on your dataset."

Figure 5: ThinkUp's login screen can be hard to get past.

To do this, enter the root directory of your ThinkUp setup. (If you have been following this article, that will be /var/www/thinkup.) Then, as root enter:

# cd install/cli/
# php upgrade.php --with-new-sql

You should now be able to log in to your ThinkUp site.


Getting ThinkUp is only the first step of the installation/configuration process. Now you have to hook up the site so it starts culling information from your social networks. Note that for everything to work, ThinkUp must be available from the web. If you are behind a firewall, you will have to open a tunnel to your site.

ThinkUp connects to your social networks via plugins. Click on the down-pointing arrow in the upper left-hand corner of the screen to drop down a short menu and select Settings (Figure 6).

Figure 6: Settings opens a list of plugins that allows you to connect to different social networks.

ThinkUp was originally designed to cull information from Twitter, so I'll configure that first by clicking on the Configure button next to the Twitter plugin (Figure 7). The Twitter setup is elementary: Click on the link, fill in the fields with ThinkUp's suggestions, and get a Consumer key and a Consumer secret code so ThinkUp's crawler can access your account data.

Figure 7: Setting up Twitter requires you follow some simple instructions.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More