Let us have a look what is going on background.

Virtual Box

One of The most Popular Virtual Machine Available. Virtual Machine is any application which partitions your system, reserve some hard-disk space, uses specified amount of RAM and  Core of Processors to create an isolated system of our configuration. We can run any OS over that machine irrespective of Host OS. Hence Term  Host Machine and Virtual Machine might be clear to you by now. It is always recommended to use any VM if you want to work in a complete independent environment form your host machine.


Vagrant is an open source application which enables us to have a light weight, portable development environment. If a developer develop an application in a vagrant environment, he can pack it directly such that anyone who open it in another vagrant replicates the image of same developers environment.


Docker is an open-source application that automates the deployment of applications inside software containers. it feels similar to Vagrant processing.  But Deployment is in entirely different method.

Check The Difference Here

Installing GIT.

GIT PACKAGES import and access files/projects from git repository.

Installing CURL.


Installing memcached

Free & open source, high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.

Memcached is an in-memory key-value store for small chunks of arbitrary data (strings, objects) from results of database calls, API calls, or page rendering.

Memcached is simple yet powerful. Its simple design promotes quick deployment, ease of development, and solves many problems facing large data caches. Its API is available for most popular languages.

Quoted :memcatched.org

Installing MYSQL 

MYSQL is an open source simple yet powerful relational database management system.   MySQL is one of the best RDBMS used for developing web-based software applications.

Installing HHVM (Hip Hop Virtual Machine).

[refer here for manual installation ]

HHVM is an open-source virtual machine designed for executing programs written in Hack and PHP. HHVM performs a just in time compilation to achieve extreme performance while maintaining the development flexibility.

Installing COMPOSER

Composer is a tool for dependency management in PHP. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you.

if connection to port 443 will fail in this step, don’t worry, goto  getcomposer.org/download download latest version of composer.phar move it to /var/www/fbctf and restart installation.

Installing npm & nodejs

npm makes it easy for JavaScript developers to share and reuse code, and it makes it easy to update the code that you’re sharing.If you’ve been working with JavaScript for a while, you might have heard of npm: npm makes it easy for JavaScript developers to share the code that they’ve created to solve particular problems, and for other developers to reuse that code in their own applications.

Once you’re depending on this code from other developers, npm makes it really easy to check to see if they’ve made any updates to it, and to download those updates when they’re made.  https://docs.npmjs.com/getting-started/what-is-npm

Installing NGinx

NGinx is a free, open-source, high-performance HTTP server which mainly focuses on LOAD BALANCING. more over than traditional methods, they use very low and predictable memory, by asynchronous/event driven handling of request rather than creating thread in traditional methods.

CTF uses this as a proxy server to manage load in HHVM.


UNISON is a Linux based  open source live file synchronizer which synchronize every file between two hosts or between two disks of same host. If we host CTF in Vagrant, it creates a virtual machine with Ubuntu 14.04 ISO, and setup environment there. CTF uses this for keeping files in both host in sync.