-
Notifications
You must be signed in to change notification settings - Fork 321
Expand file tree
/
Copy path+page.markdoc
More file actions
128 lines (86 loc) · 3.66 KB
/
+page.markdoc
File metadata and controls
128 lines (86 loc) · 3.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
---
layout: article
title: Kubernetes deployment
description: Deploy Appwrite on Kubernetes using the HelmForge community Helm chart.
---
Deploy Appwrite on Kubernetes using a community-maintained [Helm chart](https://artifacthub.io/packages/helm/helmforge/appwrite). This chart uses the official `appwrite/appwrite` container image — no custom or repackaged containers.
{% info title="Community resource" %}
This Helm chart is maintained by [HelmForge](https://helmforge.dev), not by the Appwrite team. For issues related to the chart, open an issue on the [chart repository](https://github.com/helmforgedev/charts).
{% /info %}
# Prerequisites {% #prerequisites %}
Before starting, ensure you have:
- A running Kubernetes cluster (v1.26+)
- [Helm](https://helm.sh/docs/intro/install/) v3 installed
- `kubectl` configured to access your cluster
# Installation {% #installation %}
{% section #add-repo step=1 title="Add the Helm repository" %}
```bash
helm repo add helmforge https://repo.helmforge.dev
helm repo update
```
{% /section %}
{% section #install-chart step=2 title="Install Appwrite" %}
Using the Helm repository:
```bash
helm install appwrite helmforge/appwrite
```
Or directly from the OCI registry (skips step 1):
```bash
helm install appwrite oci://ghcr.io/helmforgedev/helm/appwrite
```
This installs Appwrite with bundled MariaDB and Redis subcharts. All core services are deployed as separate pods, including the API, Console, Realtime, background workers, and schedulers.
{% /section %}
{% section #verify step=3 title="Verify the deployment" %}
Check that all pods are running:
```bash
kubectl get pods -l app.kubernetes.io/instance=appwrite
```
Once all pods show `Running` status, access the Appwrite Console through the configured ingress or by port-forwarding:
```bash
kubectl port-forward svc/appwrite-appwrite-console 3000:80
```
Navigate to `http://localhost:3000` to complete the initial setup wizard.
{% /section %}
# Configuration {% #configuration %}
Create a `values.yaml` file to customize the deployment:
```yaml
domain: appwrite.example.com
ingress:
enabled: true
ingressClassName: nginx
```
Install with your custom values:
```bash
helm upgrade --install appwrite helmforge/appwrite -f values.yaml
```
{% info title="Secrets management" %}
Avoid storing sensitive values like SMTP passwords directly in `values.yaml`. Instead, use `helm install --set` sourced from your CI/CD secret store, or use a Kubernetes secrets management tool.
{% /info %}
# Architecture {% #architecture %}
The chart deploys Appwrite as multiple Kubernetes resources:
- **API, Console, Realtime** — separate Deployments with path-based ingress routing
- **12 background workers** and **3 schedulers** — configurable resource limits
- **MariaDB and Redis** — bundled as subcharts, or connect to external instances
- **Persistent volumes** — for uploads, cache, certificates, functions, builds, and sites
# External databases {% #external-databases %}
To use external MariaDB and Redis instances instead of the bundled subcharts:
```yaml
mariadb:
enabled: false
redis:
enabled: false
externalMariadb:
host: your-mariadb-host
port: 3306
database: appwrite
username: appwrite
password: your-password
externalRedis:
host: your-redis-host
port: 6379
```
# Next steps {% #next-steps %}
After successful deployment:
- [Configure services](/docs/advanced/self-hosting/configuration/environment-variables) - Set up environment variables and services
- [Production optimization](/docs/advanced/self-hosting/production) - Prepare for production workloads
- [Chart documentation](https://helmforge.dev/docs/charts/appwrite) - Full values reference and architecture details