Skip to content

chenlonghu/dify_helm

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dify on AWS

This helm chart is based on docker-compose provided by dify

this helm is distributed with Apache License 2.0

Deployment Architecture

Install from CDK

0.Prepare the CDK enviroment

sudo dnf install nodejs git -y
sudo npm install -g aws-cdk 
sudo npm install -g typescript ts-node

配置 AWS CLI

aws configure

下载 cdk 代码

git clone https://github.com/KevinZhao/dify_helm.git
cd dify_helm/dify-cdk/
npm install

1.部署 dify社区版

配置 cdk.json

    "dbPassword": "Your.dbPassword.0910",
    "opensearchPassword": "Your.aosPassword.0910",
    "S3AccessKey": "Your.S3.AccessKey",
    "S3SecretKey": "Your.S3.SecretKey",

2.配置cdk环境,只需运行一次

cdk synth
cdk bootstrap

3.部署 CDK

cdk deploy --all --concurrency 5 --require-approval never

请一定使用并行部署,整个部署过程大概 20 分钟左右,如不使用并行,会花费额外时间。

4.部署后配置 helm 环境变量 编辑 lib 目录下 dify-helm-stack.ts 如果您没有自己的域名,请配置文件中的两个 host 变量为 CDK 创建的 ALB 的 DNSname,如:

    const difyHelm = new eks.HelmChart(this, 'DifyHelmChart', {
      cluster: props.cluster,
      chart: 'dify',
      repository: 'https://douban.github.io/charts/',
      release: 'dify',
      namespace: 'default',
      values: {
        global: {
          //Specify your host on ALB DNS name
          host: 'k8s-default-dify-324ef51b8a-687325639.us-east-1.elb.amazonaws.com',
        ingress: {
          enabled: true,
          className: 'alb',
          annotations: {
            'kubernetes.io/ingress.class': 'alb',
            'alb.ingress.kubernetes.io/scheme': 'internet-facing',
            'alb.ingress.kubernetes.io/target-type': 'ip',
            'alb.ingress.kubernetes.io/listen-ports': '[{"HTTP": 80}]',
            //'alb.ingress.kubernetes.io/listen-ports': '[{"HTTPS": 443}]',
            //'alb.ingress.kubernetes.io/certificate-arn': 'arn:aws:acm:ap-southeast-1:788668107894:certificate/6404aaf8-6051-4637-8d93-d948932b18b6',
          },
          hosts: [{
            host: 'k8s-default-dify-324ef51b8a-687325639.us-east-1.elb.amazonaws.com',

如果您有自己的域名,请配置自己的域名,并打开 tls,将自己的证书 ARN配置到'alb.ingress.kubernetes.io/certificate-arn'。

其他环境变量的注入,请参考 https://docs.dify.ai/v/zh-hans/getting-started/install-self-hosted/environments

5.dify 数据库初始化 请找到一台可以连接 EKS 的终端,并运行

kubectl exec -it $(kubectl get pods -n dify -l app.kubernetes.io/component=api -o jsonpath='{.items[0].metadata.name}') -n dify -- flask db upgrade

执行后,可以使用 http://ALBDNSName的方式访问 dify,并进行进行管理员注册。

Finally Happy dify with AWS

关于升级: dify 社区版非常活跃,需要升级请更新 dify-helm-stack.ts 中的 tag 变量。 并重新运行 cdk deploy,和数据库初始化。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Smarty 76.8%
  • TypeScript 21.0%
  • Mustache 1.4%
  • JavaScript 0.8%