Complete the Prerequisites, Image registry, Helm values, and Identity provider (Keycloak) pages before you install.
Install the chart
1
2
3
4
5
6
kubectl create namespace phonemos
helm upgrade --install phonemos ./phonemos-<version>.tgz \
--namespace phonemos \
--create-namespace \
-f values.yamlYou can use a different release name. The in-cluster PostgreSQL Service is then named after that release, for example myrelease-db.
What happens first
A migration Job applies the database schema. Application pods wait until the expected database version is present (migration.enabled is true by default). After that, Hasura, the backend, the frontend, Redis, and the converters start.
Watch progress
1
2
3
kubectl -n phonemos get pods,jobs
kubectl -n phonemos logs -l app.kubernetes.io/name=hasura --tail=100
kubectl -n phonemos get certificate,ingressWait until the migration Job succeeds and the application pods are Ready. HTTPS will not work until the cert-manager Certificate is Ready.
Verify the installation
Open https://your-site/ and complete the Keycloak sign-in. Create a page and upload a file to confirm object storage. Run a conversion or export to confirm the converters. If the Hasura console is enabled, open https://console.your-site/console and restrict who can reach that host.
Common first-install problems
ImagePullBackOff usually means the JSON key is wrong, the cluster cannot reach the registries, or a public image is blocked. Pods stuck on wait-for-db usually mean PostgreSQL is not Ready, the StorageClass is wrong, or a NetworkPolicy is dropping traffic. A Certificate that never becomes Ready usually means the ClusterIssuer letsencrypt-prod is missing, DNS does not point at the Ingress, or HTTP-01 is blocked. A login loop or 401 usually means the Keycloak issuer or hasura.jwtSecret is wrong. Failed uploads usually mean the S3 URL, keys, bucket, SSE-C, or CORS configuration is wrong.