IG Monitoring - Free, self hosted Instagram Analytics and Stats
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
commands chg: remove proxy command Oct 4, 2018
components fix: returned value Oct 10, 2018
config chg: website @ params Oct 10, 2018
controllers add: blank terms and privacy Sep 4, 2018
dictionaries Closes #70 add is_valid flag and mechanism to the tags Aug 30, 2018
mail/layouts public init Feb 5, 2018
models chg: table from which the statistical data of the account is selected Oct 13, 2018
modules chg: google+ => google sign-in, close #83 Feb 1, 2019
runtime chg: google+ => google sign-in, close #83 Feb 1, 2019
tests BC fix: removed property 'notes' @ api/account Jun 28, 2018
views add: blank terms and privacy Sep 4, 2018
web chg: google+ => google sign-in, close #83 Feb 1, 2019
widgets add: avg likes, avg comments @ account Oct 8, 2018
.gitignore public init Feb 5, 2018
.travis.yml Update .travis.yml May 13, 2018
LICENSE.md fix: license Feb 19, 2018
README.md Update README ./ to php Feb 8, 2019
codeception.yml add: instagram/accountDetails tests May 10, 2018
composer.json add: account related data export, Closes #37, Closes #36 Sep 3, 2018
composer.lock chg: google+ => google sign-in, close #83 Feb 1, 2019
yii public init Feb 5, 2018


IG Monitoring Cloud

Let me introduce you to a cloud version of a system I'm currently working on. Perhaps it will answer your needs. That will be more featured version of the system you know from GitHub, with more extensive tag analytics and account analytics expanded with locations. Additionally it'll have various permission levels, so you can create an account for a Client with stats available there. And that's just for a starter :)

Get your access here

Versions comparison

IG Monitoring - Free version


Account statistics

Tag statistics



Versions comparison


BETA stage. Use at your own risk.

Maintainability Scrutinizer Code Quality Build Status



Before you start

You need at least one, WORKING proxy.

You need a server (vps will be ok) with linux, root access and configured LEMP, that is:

System installation (terminal)

  • create database: mysql, utf8mb4
  • run git clone https://github.com/jakim/ig-monitoring.git
  • run cd ig-monitoring (you will enter the project catalog)
  • download composer
  • run php composer.phar install
  • run chmod 0777 runtime
  • run chmod 0777 web/assets
  • run chmod 0777 web/uploads
  • copy config/db.dist => config/db.php and enter the access data to the created database
  • run php yii migrate (tables in the database should be created)
  • run php yii admin/dictionaries

Configure google sign-in

  • go to: https://console.developers.google.com and create a new project
  • enable API: Google+ API
  • add oAuth login credentials (type: web application)
  • add authorized redirect url YOUR_DOMAIN/admin/auth/auth?authclient=google
  • copy config/authClientCollection.php.dist => config/authClientCollection.php and enter clientId, clientSecret and redirectUrl as above

Worker configuration (data refreshing)

  • install the supervisord, the method of installation depends on the system
  • add configuration according to https://github.com/yiisoft/yii2-queue/blob/master/docs/guide/worker.md (in Debian 8 and 9: /etc/supervisor/conf.d/ig_monitoring.conf)
  • change in the configuration:
    • user => nginx
    • numprocs => 2 is enough (I recommend twice less than the number of proxy and a number equal to the number of processor cores/threads)
    • I suggest stdout_logfile to be set to the project directory, ie PROJECT_FULL_PATH/runtime/logs/supervisor.log
  • run supervisord
  • add cron hourly for php /PROJECT_FULL_PATH/yii stats/update-accounts and php /PROJECT_FULL_PATH/yii stats/update-tags

Adding and activation of the system user

  • try to log in, if everything goes well, you'll see an "inactive account message"
  • run the command php yii user/activate 'YOUR_GOOGLE_EMAIL'
  • log in again

Next steps

  • add a few accounts and tags
  • enjoy the system
  • write a review
  • tell your friends about the system
  • star the project on github :)


This code is in no way affiliated with, authorized, maintained, sponsored or endorsed by Instagram or any of its affiliates or subsidiaries. This is an independent tool. Use at your own risk.


image image dashboard_ig_monitoring image image

Account tracker

  • Followers
  • Followed
  • Media count
  • Engagement rate
  • Daily change of all above (with chart)
  • Multiple accounts compared on one screen
  • Daily/monthly fluctuations in the number of followers (with chart)
  • Accounts mentioned (with occurs counter)
  • Tags used (with occurs counter)
  • Locations used (with occurs counter) (cloud version)
  • Public url to account statistics view (e.g. for the client)
  • Access to historical data (if in the database, they are yours) (cloud version)

Tag tracker

(based on top 9 posts)

  • Media count
  • Number of likes (total, min, max)
  • Number of comments (total, min, max)
  • Multiple tags compared on one screen
  • Accounts highlighted (with occurs counter) (cloud version)
  • Tags used (with occurs counter) (cloud version)
  • Locations used (with occurs counter) (cloud version)
  • Access to historical data (if in the database, they are yours) (cloud version)


Why did I build it?

  • Because I need something that I can quickly change for my needs.

Why is it free?

  • Because I realized that I like building tools more than using them :)

Is it safe for usage?

  • You never known, but I’m using this for few months now without any issue.

Do I need to enter my Instagram login and password?

  • No, the system is based on publicly available data, so you do not have to provide any sensitive data.

Will the system harm my accounts?

  • No, everyone can monitor public accounts.

Why did you build two versions?

  • I needed a system to monitor accounts (now it's several thousands), but I enjoy software development more than accounts maintenance, which is why the free version was created. The cloud version was created as a response to all users problems with the installation and maintenance of the free version.

What do I expect from this share?

  • New ideas would be great, feel free to create issue and PR. :)


If you do not know how to get into the installation, I can do it for you. As part of the support, I offer:

  • installation of a www server
  • database installation
  • script configuration
  • free, good ssl certificate (letsencrypt)
  • script modifications, according to requirements
  • other software integration


Error: redirect_uri_mismatch


'SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes

You probably have a low database version, make sure your system meets the requirements