Skip to content

Kubernetes Installation

Kubernetes Installation describes Helm-based deployment of Emakin into a Kubernetes cluster.

The preserved documentation references the Emakin Helm charts repository at 6Kare/charts.

Prerequisites

  • a working Kubernetes cluster
  • Helm configured to access that cluster

Installation Workflow

1. Add the Helm Repository

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

2. Install the Chart

Basic installation:

1
helm install emakin-prod emakin/emakin

Installation into 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

Helm Values and Parameters

Documented Default Values

  • Host: emakin.mycompany.com
  • Application Name: mycompany.com
  • Environment: production
  • split-service deployment enabled by default
  • web, agent, smtp, fulltext, and hostadm enabled by default

Configurable Parameters

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.image.repository Emakin container image repository 6kare/emakin
emakin.image.tag Emakin container image tag 8.5
emakin.subdomain Subdomain for the application emakin
emakin.services.web.enabled Enable web deployment true
emakin.services.web.replicaCount Web replica count 1
emakin.services.agent.enabled Enable agent deployment true
emakin.services.agent.replicaCount Agent replica count 1
emakin.services.smtp.enabled Enable SMTP deployment true
emakin.services.smtp.replicaCount SMTP replica count 1
emakin.services.fulltext.enabled Enable full-text deployment true
emakin.services.fulltext.replicaCount Full-text replica count 1
emakin.services.hostadm.enabled Enable host administration deployment true
emakin.services.hostadm.replicaCount Host administration replica count 1
emakin.services.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 preserved documentation states that the chart defines PVCs for:

  • BaseX
  • ClamAV
  • Emakin application data
  • PostgreSQL

It also notes that PVC names are suffixed with the environment value, for example:

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

Deployment Model

The chart creates separate Emakin Deployments for:

  • web
  • agent
  • smtp
  • fulltext
  • hostadm

The chart invokes the Emakin agent executable in CLI mode with the module-specific commands:

  • web
  • agent
  • smtp
  • fulltext

The host administration service is deployed as a dedicated pod and exposes only port 7180.

Access After Deployment

Documented access points:

  • Application: http://<host>
  • Host Administration: http://<host>:<emakin.services.hostadm.port>

Documented default credentials:

Overriding Default Ports

The preserved environment-variable examples are:

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

Scaling or Disabling Individual Services

Disable SMTP:

1
2
helm upgrade emakin-prod emakin/emakin \
    --set emakin.services.smtp.enabled=false

Scale agent workers:

1
2
helm upgrade emakin-prod emakin/emakin \
    --set emakin.services.agent.replicaCount=3