Qobrix is a standard web application, written in PHP. So its system requirements are very similar to any other web application. And as we build on top of the CakePHP 3 framework, Qobrix basic requirements are the same.
The specific hardware requirements depend on the number of concurrent users, the amount of data in the system, and the complexity of your particular setup. We’ve seen production setups of Qobrix vary from a small virtual machine (1 CPU, 1 GB of RAM, 4 GB of HDD space) to a distributed setup of multi-core machines, database drivers, and a network-attached storage (NAS).
Qobrix does not have any particular requirements in regards to the operating system. It should work as well on UNIX or Microsoft Windows, as it does on Linux. However, all our in-house expertise and development process is around Linux, so that’s where Qobrix will be the most stable and reliable.
When it comes to Linux, there are a variety of different distribution. Once again, we do not require any particular distribution, but our expertise and development process is around Red Hat family distributions. We mostly work with CentOS and Fedora.
Every web application requires a web server, and so does Qobrix. Much like with operating systems, Qobrix does not rely on or require any particular web server. We mostly work with Nginx on remote serversand with PHP built-in web server locally, during the development. We know Apache pretty well. The rest is a mystery.
Qobrix is written in PHP, so you’ll need to have it. Qobrix requires PHP 7, with the lowest version we currently support being PHP 7.1.
Depending on your particular setup of Qobrix you might need some additional PHP extensions installed. As per CakePHP requirements, the following two are always required:
CakePHP framework supports a variety of database engines:
- MySQL / MariaDB 5.1.10+
- Microsoft SQL Server (2008 or higher)
- SQLite 3
Qobrix should work fine with all of the above, but we recommend to use MySQL / MariaDB. Similar to Linux and Nginx, MySQL / MariaDB is part of our development process and focus of our in-house expertise.
Most modern web applications integrate tightly with the rest of the Web and other Internet services. So does Qobrix. However, at the same time, we understand the security needs of the business world. The particular details of the Internet connectivity depend on your specific Qobrix setup. In most cases, the following is needed:
- Incoming traffic
- HTTP (port 80, TCP), from networks and IPs that will use your Qobrix system
- HTTPS (port 443, TCP), from networks and IPs that will use your Qobrix system
- Secure Shell (port 22, TCP), from networks and IPs that will administrate your Qobrix system
- Outgoing traffic
- DNS (port 53, UDP), to your local DNS servers, or to the public DNS servers like the Google ones (184.108.40.206 and 220.127.116.11)
- HTTPS (port 443, TCP), to bitbucket.com, bitbucket.org, github.com, and packagist.org
- Secure Shell (port 22, TCP), to bitbucket.com, bitbucket.org, github.com, and packagist.org
- SMTP (port 25/465/587, TCP), to your mail server, depending on the configuration of your system
It is possible to limit access to repositories like BitBucket, GitHub, and Packagist, to pre-arranged maintenance windows, during which installation and update deployments are done.
Development and Deployment
It is possible to develop and deploy (install / update) a Qobrix system without any additional requirements. But we strongly recommend that you install git version control software for a much easier process.
Additionally, developers will benefit from having a web browser and text editor available during the development process.
- Fedora Linux. The latest version.
- PHP 7.1+. Use built-in web server.
- Google Chrome web browser.
- Vim 🙂
- CentOS Linux.
- Nginx with PHP-FPM.
- PHP 7.1+.
- MySQL/MariaDB. Ideally, web application and database should be installed on different servers.