Files
herolib/lib/installers/k8s/element_chat/README.md
Mahmoud-Emad 8e5507b04e fix: Update element chat config and defaults
- Update element chat default name to 'elementchat'
- Sanitize element chat name from invalid characters
- Set default namespace based on sanitized name
- Validate namespace for invalid characters
- Update documentation with new default values
2025-11-03 15:49:54 +02:00

122 lines
3.2 KiB
Markdown

# Element Chat Kubernetes Installer
A Kubernetes installer for Element Chat (Matrix Conduit + Element Web) with TFGrid Gateway integration.
## Overview
This installer deploys a complete Matrix chat solution consisting of:
- **Conduit**: A lightweight Matrix homeserver implementation
- **Element Web**: A modern web client for Matrix
- **TFGW (ThreeFold Gateway)**: Provides public FQDNs with TLS termination
## Quick Start
```v
import incubaid.herolib.installers.k8s.element_chat
// Create and install Element Chat with defaults
mut installer := element_chat.get(
name: 'myelementchat'
create: true
)!
installer.install()!
```
## Configuration Options
All configuration options are optional and have sensible defaults:
### Hostnames and Namespace
```v
installer.matrix_hostname = 'matrixchat' // Default: '${installer.name}matrix'
installer.element_hostname = 'elementchat' // Default: '${installer.name}element'
installer.namespace = 'chat-namespace' // Default: '${installer.name}-element-chat-namespace'
```
**Note**: Use only alphanumeric characters in hostnames (no underscores or dashes).
### Conduit (Matrix Homeserver) Configuration
```v
// Server port
installer.conduit_port = 6167 // Default: 6167
// Database configuration
installer.database_backend = 'rocksdb' // Default: 'rocksdb' (options: 'rocksdb', 'sqlite')
installer.database_path = '/var/lib/matrix-conduit' // Default: '/var/lib/matrix-conduit'
// Federation and registration
installer.allow_registration = true // Default: true (allow new user registration)
installer.allow_federation = true // Default: true (federate with other Matrix servers)
// Logging
installer.log_level = 'info' // Default: 'info' (options: 'info', 'debug', 'warn', 'error')
```
### Element Web Client Configuration
```v
installer.element_brand = 'Element' // Default: 'Element' (customize the branding name)
```
## Full Example
```v
import incubaid.herolib.installers.k8s.element_chat
mut installer := element_chat.get(
name: 'myelementchat'
create: true
)!
// Configure hostnames
installer.matrix_hostname = 'mymatrix'
installer.element_hostname = 'mychat'
installer.namespace = 'chat'
// Configure Conduit
installer.conduit_port = 6167
installer.database_backend = 'rocksdb'
installer.allow_registration = false // Disable public registration
installer.allow_federation = true
installer.log_level = 'debug'
// Configure Element
installer.element_brand = 'My Chat'
// Install
installer.install()!
println('Matrix homeserver: https://${installer.matrix_hostname}.gent01.grid.tf')
println('Element web client: https://${installer.element_hostname}.gent01.grid.tf')
```
## Management
### Check Installation Status
```v
if installer.installed()! {
println('Element Chat is installed')
} else {
println('Element Chat is not installed')
}
```
### Destroy Deployment
```v
installer.destroy()!
```
This will delete the entire namespace and all resources within it.
## See Also
- [Matrix Conduit Documentation](https://gitlab.com/famedly/conduit)
- [Element Web Documentation](https://github.com/vector-im/element-web)
- [Matrix Protocol](https://matrix.org/)