Server
Software
Server Operating System
Any Docker-compatible operating system (Linux-based OS is recommended, preferably Ubuntu LTS)
HTTP server
Web application and API should be placed behind a firewall and/or a HTTP reverse proxy. The responsibility of this proxy is to forward traffic to Corteza services and do SSL termination. Most of the popular HTTP servers have this capability.
Corteza provides configuration guide for Nginx Reverse Proxy and for LetsEncrypt companion container for nginx-prox.
Nginx is not required, you can use HTTP server you are familiar with. Use provided examples for Nginx as a reference on how to configure it.
Database Software
Percona Server for MySQL 8.x (on host, managed or provided by Corteza through Docker image)
Corteza supports Docker and Docker Compose based setup and deployment. You should familiarize yourself with both Docker and Docker Compose.
Hardware
Number of Users |
Processor |
Memory |
1 - 500 |
1 vCPU/cores |
2 GB RAM |
500 - 1000 |
2 vCPU/cores |
4 GB RAM |
1000 - 2000 |
4 vCPU/cores |
8 GB RAM |
2000 - 5000 |
8 vCPU/cores |
16 GB RAM |
5000+ |
16 vCPU/cores |
32 GB RAM |
Storage
Description |
Recommended Storage |
|
Low volume |
Messaging: sending text messages and links (without file upload) Low Code: creating plain text records (without file upload) |
5 MB/user/month |
Medium volume |
Messaging: sending text messages, links and occasionally sending documents and images Low Code: attaching documents and images to records |
25 MB/user/month |
High volume |
Messaging: uploading large files on a daily basis Low Code: attaching a high number of documents and images to records on a daily basis |
100 MB/user/month |
-
Base storage (operating system) = 10 GB
-
Recommended storage per user per month based on the matrix above (multiplied by 12 to get yearly amount)
-
Average number of users in a year
-
Safety factor of 2.0 is recommended
total = (nr. of users * recommended storage * 12 * safety factor) + base storage
Recommended storage = (30 * 25 MB * 12 * 2) + 10 GB = 28 GB / year
Network
Corteza does need some access to outside services, depending on configuration and customization of the deployment.
SMTP servers should be configured and accessible if deployment uses email address confirmation on sign-in, password recovery or other kinds of email notifications.
HTTP traffic should be allowed if there OAuth2 or OIDC sign-up is enabled or there are custom scripts that access external URLs.
Domain, hostname(s)
Setup with 2 domains (api + app) is the most common one:
-
hostname for Web application
-
hostname for API server
If you already own a domain, you can add two or more hosts and use them to access your Corteza instance.
Testing locally
Alternatively, when doing local-only demo/test deployment, you can use our 127.0.0.1
wildcard alias *.local.cortezaproject.org
.
Wildcard alias provides a simple way to get any domain under local.cortezaproject.org
(api.local.cortezaproject.org
for example) to point to localhost.
You can not use local.cortezaproject.org for public Corteza deployments. It will always point to your local machine. |
HTTPS/SSL Certificates
Corteza supports any kind of SSL certificate from all certificate authorities (CA). You can use any existing or new SSL certificate from any commercial SSL certificate provider, self-signed or provided by service like Let’s Encrypt.
If you do not use any other HTTP server, we highly recommend setup with Nginx Reverse Proxy and LetsEncrypt companion container for nginx-prox. It provides fully automated and simplest way to secure Corteza or any other web application you host.