Files
colanode/hosting/kubernetes
Hakan Shehu 79925e1fc6 Improve file uploads and downloads (#164)
* Track upload progress in clients
* Implement client side jobs
* Separate local files, downloads and uploads
* Use dates instead of timestamps in jobs
* Improve some recurring jobs
* Local file improvements
* Remove job schedules on cancel
* Improve avatar handling
* Fix manual download
* Improve file uploads and downloads
* Improve downloads
* Use tus resumable uploads
* Drop file states table migration
* Remove some unused file system methods and types
* Use Redis KV and Locker for distributed TUS deployments
* Fix file name generation
* Add uploads clean job
* Have a dedicated endpoint for TUS uploads
* Do not revert uploads state because ot TUS resumables
* Use integer instead of text for job and job schedule status
* Rename a query
* Fix error handling for file uploads and downloads jobs
* Check node sync for file uploads
* Rename the temp files clean job
* Minor renames for consistency
* Improve uploads badge
* Small refactor in server job service
* Add env varaibles config for some tus stuff
* Use ms package for millisecond conversions
* Fix some migrations
* Fix logout
* Update hosting values
2025-08-01 14:13:40 +02:00
..

Colanode Kubernetes Deployment

A Helm chart for deploying Colanode on Kubernetes.

Overview

This chart deploys a complete Colanode instance with all required dependencies:

  • Colanode Server: The main application server
  • PostgreSQL: Database with pgvector extension for vector operations
  • Redis/Valkey: Message queue and caching
  • MinIO: S3-compatible object storage for files and avatars

Prerequisites

  • Kubernetes 1.19+
  • Helm 3.0+
  • Ingress controller (if ingress is enabled)

Installation

Quick Start

# Add the chart repository (if publishing to a Helm repo)
helm repo add colanode https://static.colanode.com/hosting/kubernetes/chart

# Install with default values
helm install my-colanode colanode/colanode

# Or install from local chart
helm install my-colanode ./hosting/kubernetes/chart

Custom Installation

# Install with custom values
helm install my-colanode ./hosting/kubernetes/chart \
  --set colanode.ingress.hosts[0].host=colanode.example.com \
  --set colanode.config.SERVER_NAME="My Colanode Instance"

Configuration

Core Settings

Parameter Description Default
colanode.replicaCount Number of Colanode replicas 1
colanode.image.repository Colanode image repository ghcr.io/colanode/server
colanode.image.tag Colanode image tag latest
colanode.config.SERVER_NAME Server display name Colanode K8s

Ingress Configuration

Parameter Description Default
colanode.ingress.enabled Enable ingress true
colanode.ingress.hosts[0].host Hostname for the ingress chart-example.local
colanode.ingress.className Ingress class name ""

Dependencies

Parameter Description Default
postgresql.enabled Enable PostgreSQL deployment true
redis.enabled Enable Redis deployment true
minio.enabled Enable MinIO deployment true

Important Notes

Security Settings

The chart includes global.security.allowInsecureImages: true because we use a custom PostgreSQL image with the pgvector extension. This setting is required by Bitnami Helm charts when using non-official images.

Storage

By default, the chart configures persistent storage for:

  • PostgreSQL: 8Gi
  • Redis: 8Gi
  • MinIO: 10Gi

Adjust these values based on your requirements.

Accessing Colanode

After installation, you can access Colanode through:

  1. Ingress (recommended): Configure your ingress host and access via HTTP/HTTPS
  2. Port forwarding: kubectl port-forward svc/my-colanode 3000:3000
  3. LoadBalancer: Change service type to LoadBalancer if supported by your cluster

Uninstall

helm uninstall my-colanode

Development

To modify the chart:

  1. Edit values in /hosting/kubernetes/chart/values.yaml
  2. Update templates in /hosting/kubernetes/chart/templates/
  3. Test with helm template or helm install --dry-run