Hardware and software requirements for the server solution
Introduction
Hardware requirements
Software requirements
Docker
Virtual machine
Introduction
Easy Project is a complex web application with a number of technical dependencies that allow it to run smoothly. There are vast operating systems, database servers, utilities, etc. In order to achieve optimal performance and functioning overall we handpicked a specific set of supported components.
There are two ways how you can avoid maintaining all of the necessary technologies surrounding our application:
- Cloud solution - all maintenance is outsourced to Easy => this article is irrelevant for you
- Docker - if you need to run on-premises, maintenance is practically outsourced to the Docker mechanisms
Hardware requirements
Minimum hardware requirements
These specifications are for 25 concurrent users with an average requests per second frequency.
Processor | Intel Xeon E5440 @ 2.83GHz |
Memory | 4 GB |
Disk space | ~ 20 GB (3 GB for database files + enough for attachments) |
Other | Network card is required |
Server requirements for larger implementations
This table is a simplified summary of higher usage levels of the server solution.
Users | Threads / vCPU | RAM | HDD |
50 | 8 | 12GB | 40GB |
100 | 12 | 32GB | 60GB |
200 | 24 | 64GB | 200GB |
500 | 24 | 128GB | 500GB |
Values in the table are not strictly given and the whole configuration depends on the extent and significance of the use of Easy Project in the company. As well as on the frequency of user access and requests sent to the server.
Internet connection requirements
The connection from the user to the server where Easy Project is located must be at least 10 Mbit. You need to take into account the whole route from the user to the server, so with geographically distant locations, the response of the server may take a longer time, regardless of the user's declared internet connection from their provider. The bandwidth of the server is also a factor, of course.
Software requirements
In order to develop quality software that can be installed on your own server and, at the same time, guarantee its stability and proper functioning, it is necessary to use an environment with which it works best and on which it is regularly tested. The table below combines requirements for direct installation and for use of Docker.
Docker tools are in bold because only they are truly required once you decide for Docker solution. In such case, we don't prescribe anything else (not even OS). That is the reason we strongly recommend using the Docker based solution - no hustle around dependencies.
For direct (legacy) installation, the server admin needs to install the listed requirements before a new Easy Project installation or update/upgrade.
Requirement type |
Requirement |
Current (v14) |
LTS (v13) |
Historic (v12) |
Historic (v11) |
Historic (v10) |
Operating System |
Debian |
12 | 11 | 10/11 | 10/11 | 10/11 |
---|---|---|---|---|---|---|
Operating system |
Architecture |
amd64 | amd64 | amd64 | amd64 | amd64 |
Docker |
Docker engine | 24.0.5 | 24.0.5 |
20.10.22 | not supported | not supported |
Docker |
Docker compose | 2.24.0 | 2.24.0 | 2.15.1 | not supported | not supported |
Programming language | Ruby | 3.3.4 | 3.1.2 until v13.5.x 3.1.4 from v13.6.x |
3.1.2 | 2.7.x | 2.6.3 |
Application server (automatically installed) |
Puma | 6.4.2 | 6.3.1 | 6.2.2 | ||
Web server | Nginx | 1.20.x | 1.20.x |
1.20.x |
||
Database server | Percona |
8.x | 8.x | 8.x | 5.7+ | 5.7+ |
Database server | MariaDB | not supported | not supported | not supported | not supported | 10.3+ |
Database server | PostgreSQL | not supported | not supported | not supported | not supported | supported |
Other requirements | Bundler | 2.3.7+ | 2.3.7+ | 2.3.7+ | 2.2+ | 2.1.x |
Other requirements | Redis | 5.x | 5.x | 5.x | 5.x | 5.x |
Other requirements | NodeJS | 20.16 | 18.17.1 | 18.8 | 14.16 | 14.16 |
Automatically installed | Rails | 6.x | 6.x | 6.x | 6.x | 5.x |
Automatically installed | Sidekiq | |||||
Automatically installed | Zeitwerk | partially supported not required |
partially supported not required |
not supported | not supported | not supported |
Automatically installed | Xapian | 1.5.0 | 1.5.0 | 1.5.0 | 1.4.20 | not supported |
Supported web browsers (client)
Other browsers are not tested. Internet Explorer is not supported. For stability and security reasons, always keep your browser up to date.
Supported operating systems (client)
It goes without saying that using current versions of web browsers require current/supported operating systems on the computer or mobile device. The general rule is that the two latest operating systems versions are supported. It can be applied for Windows, MacOS, Linux distributions and mobile systems.
Docker
We are happy to announce official support for running our application on Docker technology. In fact, it will become the primary (and the only) supported solution. This comes after extensive testing and internal adoption on our whole Cloud, which resulted in noticeable increase of stability.
What's it about
There is not only a technological shift, but also that of the mindset and installation/upgrade process. While with the traditional (let's call it legacy) installation required a lot of preparation before you could install an update of Easy Project, the Docker solution allows it practically with a single command. There is no more need to visit Client zone to download the update package, no need to update Ruby, NodeJS, database server, OS. There is also minimized risk of mistake in a sequence of manual installation, and eliminated risk of untested code to be installed on your environment (gem updates, which are now in our full control).
Legacy |
Docker |
---|---|
Server admin maintains depencendies | Easy maintains dependencies |
Many steps to update your application | Update by a single command |
Prescribed operating system | Arbitrary operating system (must support Docker engine and compose) |
Major version upgrades require too much preparation | Major version upgrades are installed as easily as bug-fixing updates |
Risk of receiving untested dependencies (due to bundle update) |
Dependencies are pre-built in the Docker image and tested before release |
Details about the process of deployment with Docker is explained in this article.
Virtual machine (VM)
A simple way of server deployment is with the help of virtualization. We generate the VM (ova image) on-demand, you just run it => practically nothing to install.
It contains already installed Easy Project with all related components in supported versions. However, for application updates, your server admin will need to watch the required versions of other components, since the current form of VM uses the legacy deployment.
We are preparing a system to generate VM image with Docker inside, which makes for an ultimately easy initial deployment and updates installation. It is planned to be available by autumn 2024.