Docs
📚 Knowledge Base
Self Hosted Setup

Summary

This document serves as a starting point to deploy Hatica on your cloud or premise. Further information can be obtained in the ReadMe files of the respective components as delivered to you by Hatica

Brief

Hatica provides first class support for self-hosted and private cloud deployments. Hatica can be deployed on common serverless technologies or on linux servers depending on your infrastructure and preference. You can also obtain white glove service to have our devops team deploy it on your premise. Since self-hosted Hatica is a first-class feature for the company, our technical support team is also well-trained to provide ongoing support for seamless installations and running. The Hatica cloud instance, in fact, itself runs the self-hosted version with a custom wrapper.

Components

Hatica comprises of 3 categories of services

Application services

  • Web app
  • Processor
  • API Gateway

Storage services

We provide images for the databases, but you can also bring your own databases and use them instead.

  • Redis
  • Postgres (version 15)
  • ElasticSearch (version 8)

Admin services

  • Admin console (add-on)
  • Monitoring

Ancillary services

  • k8s (optional)
  • Load balancer (optional)

Hardware requirements

Our application services are delivered as Docker containers supporting Linux/UNIX (64 bit x86 arch), therefore you can run it on any server or container service framework like Kubernetes, AWS ECS etc. The recommended approach is to use the helm chart provided by us to deploy the application on Kubernetes.

Server sizing

We recommend Hatica to be deployed on serverless or auto-scaling infra like K8s, though it's not a requirement. You can still run it on bare metal or a VPS server like many of our customers.

Server sizing depends on multiple factors like active daily users, data history stored and more.

The approximate server capacity based on the default configuration and single replica is as follows (compute and memory units are as per general purpose balanced instances like M5 in AWS (opens in a new tab)):

Monthly active member countWeb appProcessorsAPI Gateway  Redis   DBPostgres DBElasticSearchMonitoring
for every 100 members0.5 cpu 1g ram2 cpu 4g ram0.5 cpu 1g ram0.5 cpu 1g ram 6GB ssd0.5 cpu 1g ram 10GB ssd1 cpu 2g ram 20GB ssd0.5 cpu 1g ram 10GB ssd
for 1000 members with optimsations2 cpu 4g ram6 cpu 16g ram4 cpu 8g ram4 cpu 8g ram 50g ssd4 cpu 8g ram 50g ssd4 cpu 16g ram 200g ssd4 cpu 8 ram 100g ssd

The above server capacity numbers scale down as monthly active members go beyond 500 (approx) unlocking a host of optimisation opportunities that the Hatica technical team will help you with.

VM sizing for single node configurations

In case you are planning to run it on a single node, we recommend to setup microk8s (opens in a new tab) on the vm and deploy the application using helm chart provided by us. For a single node setup with kubernetes using microk8 you will need the vm with a minimum size of 8 vcpu, 32 GB Ram and 200 GB ssd. (support for 100 monthly active members) Every additional 100 monthly active members will need approximately 2 vcpu, 4 GB Ram and 50 GB ssd more.

Updates/Licensing

Updates are published as versioned docker images from our privately hosted registry.

Licensing and usage are also tracked using Hatica’s own privately registered licensing and monitoring server.

The customer’s premise only needs to whitelist Hatica’s registry and license server URLs hosted on Hatica’s own domain.