Helm Chart for DreamFactory 6.x
Get Started Guide ∙ Try Online ∙ Contribute ∙ Community Support ∙ Docs
cd ~/repos
(or wherever you want the clone of the repo to be)
git clone https://github.com/dreamfactorysoftware/df-helm.git
cd df-helm
Update the MySQL root password value to a secure password
helm install dreamfactory .
kubectl get pods
You can expect to see 2 DreamFactory pods, 1 MySQL pod for system config storage, and 1 Redis pod for caching.
kubectl port-forward svc/dreamfactory-dreamfactory 8080:80
Go to 127.0.0.1:8080
in your browser. It will take some time upon building, but you will be asked to create your first admin user.
To access DreamFactory through an ingress controller, update the ingress section in your values.yaml
:
dreamfactory:
ingress:
enabled: true
ingressClass: nginx # or your preferred ingress controller
annotations:
# Add any required annotations for your ingress controller
kubernetes.io/ingress.class: nginx
cert-manager.io/cluster-issuer: letsencrypt-prod # if using cert-manager
hosts:
- your-domain.example.com
tls: true
Then apply the configuration (if dreamfactory has already been installed):
helm upgrade dreamfactory . -f values.yaml
Example configurations for common use cases:
dreamfactory:
ingress:
enabled: true
ingressClass: nginx
hosts:
- df.example.com
tls: false
pathType: Prefix
dreamfactory:
ingress:
enabled: true
ingressClass: nginx
annotations:
cert-manager.io/cluster-issuer: letsencrypt-issuer-name
hosts:
- df.example.com
tls: true
pathType: Prefix
AWS ALB Setup (AWS Load Balancer Controller needs to be installed) ( Instructions Here)
dreamfactory:
ingress:
enabled: true
ingressClass: alb
annotations:
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/target-type: ip
alb.ingress.kubernetes.io/ssl-redirect: '443'
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-TLS-1-2-2017-01
alb.ingress.kubernetes.io/certificate-arn: '' #Certificate needs to exist in AWS Certificate Manager, ALB does not work with letsencrypt
# ALB also does auto discovery which should be supported out of the box with the ingress definition based on the documentation found at https://kubernetes-sigs.github.io/aws-load-balancer-controller/v2.2/guide/ingress/cert_discovery/
hosts:
- df.example.com
tls: false
pathType: Prefix
dreamfactory:
ingress:
enabled: true
ingressClass: contour
annotations:
ingress.kubernetes.io/force-ssl-redirect: "true"
projectcontour.io/max-connections: "1024"
projectcontour.io/response-timeout: 30s
projectcontour.io/websocket-routes: /
hosts:
- df.example.com
tls: true
pathType: Prefix (could be ImplementationSpecific depends on your setup)
dreamfactory:
ingress:
enabled: true
ingressClass: gce
annotations:
kubernetes.io/ingress.global-static-ip-name: "dreamfactory-ip" # Optional: if you want a static IP
# Still need frontend config for SSL redirect
networking.gke.io/v1beta1.FrontendConfig: "dreamfactory-ssl-redirect"
networking.gke.io/managed-certificates: "dreamfactory-cert"
hosts:
- df.example.com
tls: false
pathType: Prefix
dreamfactory:
ingress:
enabled: true
ingressClass: gce
annotations:
kubernetes.io/ingress.global-static-ip-name: "dreamfactory-ip" # Optional: if you want a static IP
# Still need frontend config for SSL redirect
networking.gke.io/v1beta1.FrontendConfig: "dreamfactory-ssl-redirect"
cert-manager.io/cluster-issuer: letsencrypt-issuer-name
hosts:
- df.example.com
tls: true
pathType: Prefix
After applying the configuration:
- Wait for the ingress to be created:
kubectl get ingress
- Ensure your DNS is configured to point to the ingress controller's address
- Access DreamFactory at the configured host (e.g., https://df.example.com)
Note: TLS configuration requires either cert-manager installed in your cluster or manually created TLS secrets.
After you have spun up your DreamFactory instance, take the APP_KEY value from the .env
file in /opt/dreamfactory
. This can be done with the following command:
kubectl exec -it <pod-name> -- env | grep APP_KEY
helm uninstall dreamfactory
This will stop and uninstall all DreamFactory pods.
Learn more about DreamFactory's many features by reading our Getting Started Guide. Additional platform documentation can be found on the DreamFactory wiki.
In need of official technical support? Desire access to REST API generators for SQL Server, Oracle, SOAP, or mobile push notifications? Require API limiting and/or auditing? Schedule a demo with our team!
Feedback is welcome on our forum or in the form of pull requests and/or issues. Contributions should follow the strategy outlined in "Contributing to a project".