Let us have a look what is going on background.
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
GIT PACKAGES import and access files/projects from git repository.
PHP PACKAGES TO SCROLL OVER WEBSITES FROM PHP/HACK CODES.
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.
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).
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.
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
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
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.
Installing UNISON (OPTIONAL)
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.