Centiloc Service Documentation
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

Installing Geocore OnPremise

Before proceeding with the Geocore installation, please ensure that you have satisfied the necessary prerequisites. For detailed information, consult the Software Requirements and Hardware Recommendations sections. Make sure you also have access to a Kubernetes cluster that suits your specific needs.

Our documentation includes guidance in two sections:

Add Helm Repository

You can add a reference to the Centiloc repository by running the following command:

helm repo add --username <username> centiloc https://harbor.centiloc.com/chartrepo/centiloc

After completing the process, don’t forget to update your repository catalog with the following command:

helm repo update
You can browse the Centiloc Harbor repository to view available versions corresponding to the chart version.

Installing the Chart

The initial step to install Geocore using Helm is to create a configuration file (let’s name it myvalues.yaml) where you specify your credentials for accessing the Centiloc Harbor repository. Below is an example:"

global:
  imageCredentials:
    registry: harbor.centiloc.com
    email: <the email of your account>
    password: <your password>
    username: <your username>

After completing these steps, you can install the chart with the release name my-geocore-release in the geocore namespace using the following command:

helm install -n my-geocore-release --create-namespace geocore centiloc/geocore -f myvalues.yaml

After a few minutes, you can use the following kubectl command to check the status of the installation in the geocore namespace by listing the pods:

kubectl get pods -n geocore

Uninstalling the Chart

To uninstall the my-geocore-release deployment, use the following commmand:

helm delete my-geocore-release -n geocore

Customize the Helm Chart Deployment

You may wish to customize the Geocore installation to suit your specific system. We highly recommend a thorough review of the chart documentation to ensure that the deployment of the Geocore solution aligns with your specific requirements and available resources.

Infrastructure Recommendations

Depending on your deployment environment and resource constraints, you may need to deploy infrastructure components. Below, you’ll find a table of recommendations:

Parameter Development setup Single machine setup Multi Nodes Cluster
global.logLevel DEBUG INFO INFO
global.configuration.persistence
global.configuration.redundancy
global.configuration.streamTech REDIS REDIS if only 8GB RAM, KAFKA with replicaCount=1 if more KAFKA
global.configuration.autoCreate
global.postgresql Use geocore postgresql with external backup Use an externally managed DB
global.kafka replicaCount=1 if possible
global.emqx ✅ with replicaCount=1 ✅ with replicaCount=1
global.redis no replica no replica Add 1 replica at least
global.linkerd.enabled
global.prometheus.enabled
global.sentry.enabled

For guidance on Development and Single Machine setups, please refer to their respective sections:

Managing Incoming Traffic

Geocore relies on multiple entry points for seamless operation :

  • MQTT broker for both TCP and TLS connections.
  • NTP server configured to listen UDP on port 123.
  • API gRPC server.
  • Centui web server.
To ensure proper functionality, both MQTT and NTP entry points must be reachable via the same address. This can be either a basic IP address or a Fully Qualified Domain Name (FQDN).

While gRPC relies on the HTTP2 protocol, most web browsers do not natively support it. As a result, web applications cannot directly communicate with gRPC APIs. Instead, web browsers send requests in gRPC-Web format, which uses HTTP1 and is natively supported by all browsers. These requests are then routed to a reverse proxy, which extracts and reformats the data before forwarding it to the appropriate service.

Hence, the use of Centui requires a mandatory reverse proxy capable of handling gRPC-Web requests.

When it comes to managing incoming traffic with an Ingress Controller, it’s crucial to ensure that your chosen Ingress controller supports Geocore’s specific protocols, including HTTP1.1, HTTP2, UDP, TCP, and the gRPC-Web format. You have the flexibility to select an Ingress controller that best suits your infrastructure. As a result, the Geocore chart does not include predefined Ingress rules.

If you have not yet installed an Ingress Controller in your infrastructure, we strongly recommend utilizing the Contour Ingress Controller for a smooth Geocore deployment. Detailed instructions for setting up Contour can be found in the Ingress With Contour section.