Skip to content

Kubernetes Installation using Helm

Emakin Helm charts are available at https://github.com/6Kare/charts. This guide describes deploying Emakin on Kubernetes using these charts.

Prerequisites

  • A Kubernetes cluster configured and accessible.
  • Helm installed and configured to access your Kubernetes cluster.

Chart Installation

1. Add the Emakin Helm Repository

1
2
helm repo add emakin https://6kare.github.io/charts/
helm repo update

2. Install the Chart

The Helm tool deploys to the current Kubernetes namespace by default. To deploy to a different namespace, create the namespace beforehand.

Basic Installation (to the default namespace):

1
helm install emakin-prod emakin/emakin

Installation to a Specific Namespace:

1
2
3
4
5
helm install \
    --create-namespace \
    --namespace mynamespace emakin-prod emakin/emakin \
    --set host=mycompany.com \
    --set environment=production

Replace mynamespace with your desired namespace and adjust other parameters as needed.

Helm Chart Configuration

Default Values

The Helm chart uses the following defaults:

  • Host: emakin.mycompany.com
  • Application Name: mycompany.com
  • Environment: production
  • All services are enabled by default.

Configurable Parameters

The following parameters can be customized during installation:

Parameter Description Default Value
host Hostname for the application emakin.mycompany.com
storageClass Storage class for persistent volumes nfs
ingressClass Ingress class for the ingress controller nginx
externalIP External IP for the ingress controller (none)
environment Environment name production
emakin.subdomain Subdomain for the application emakin
emakin.smtp.enabled Enable SMTP service true
emakin.hostadm.enabled Enable host administration true
emakin.hostadm.port Port for host administration 7180
db.externalProvider External database provider Postgres
db.externalConnection Connection string for external database (none)
db.name Database name EMAKIN
db.user Database username EMAKIN
db.password Database password EMAKIN
letsencrypt.enabled Enable Let's Encrypt certificates true
letsencrypt.email Email for Let's Encrypt certificates (none)
onlyoffice.enabled Enable OnlyOffice document server true
onlyoffice.subdomain Subdomain for OnlyOffice oeditor
tika.enabled Enable Apache Tika server true
clamav.enabled Enable ClamAV antivirus server true

Persistent Volumes

The chart defines persistent volume claims (PVCs) for: BaseX, ClamAV, Emakin application data, and PostgreSQL. Ensure that corresponding persistent volumes are provisioned in your Kubernetes cluster before installation. PVC names are suffixed with the environment value. Example PVC names (with production environment):

  • basex-pv-production
  • clamav-pv-production
  • emakin-pv-production
  • postgres-pv-production

Accessing Emakin After Deployment

After successful deployment, access Emakin using the following:

  • Application: http://<host> (e.g., http://emakin.mycompany.com)
  • Host Administration: http://<host>:<emakin.hostadm.port> (e.g., http://emakin.mycompany.com:7180)

Default credentials: Username: [email protected], Password: admin

Overriding Default Ports

To change the default web server ports, use the following environment variables:

1
2
AK_Web__Kestrel__Endpoints__Http__Url=http://*:8080
AK_Web__Kestrel__Endpoints__Https__Url=https://*:8443

This detailed guide provides comprehensive instructions for deploying Emakin on Kubernetes using Helm. Refer to the official Helm and Kubernetes documentation for further assistance.