mirror of
https://github.com/colanode/colanode.git
synced 2025-12-16 03:37:51 +01:00
* 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
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:
- Ingress (recommended): Configure your ingress host and access via HTTP/HTTPS
- Port forwarding:
kubectl port-forward svc/my-colanode 3000:3000 - LoadBalancer: Change service type to LoadBalancer if supported by your cluster
Uninstall
helm uninstall my-colanode
Development
To modify the chart:
- Edit values in
/hosting/kubernetes/chart/values.yaml - Update templates in
/hosting/kubernetes/chart/templates/ - Test with
helm templateorhelm install --dry-run