はじめに
Dify便利ですね!いろんなことについて生成AIで自動化できます。ここでは、AWSのEC2の環境(Amazon Linux 2)にDifyをインストールする手順を示します。Difyのバージョンは、0.9.2です。どなたかの参考にしていただけると嬉しいです。
Dockerのインストール
-
SSHを使ってAmazon Linux 2インスタンスに接続します。
-
必要なパッケージをインストールします
$ sudo yum update -y $ sudo yum install -y docker git
-
Dockerサービスを開始し、自動起動を有効にします
$ sudo systemctl start docker $ sudo systemctl enable docker
-
現在のユーザーをdockerグループに追加し、再ログインして変更を反映させます
$ sudo usermod -aG docker $USER $ exit
-
SSHで再接続後に、Docker Composeをインストールします
$ sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 60.8M 100 60.8M 0 0 51.8M 0 0:00:01 0:00:01 --:--:-- 116M $ sudo chmod +x /usr/local/bin/docker-compose
Difyのインストール
-
Difyリポジトリをクローンします
$ git clone https://github.com/langgenius/dify.git Cloning into 'dify'... remote: Enumerating objects: 95135, done. remote: Counting objects: 100% (11824/11824), done. remote: Compressing objects: 100% (1425/1425), done. remote: Total 95135 (delta 11046), reused 10727 (delta 10391), pack-reused 83311 (from 1) Receiving objects: 100% (95135/95135), 51.29 MiB | 15.74 MiB/s, done. Resolving deltas: 100% (67723/67723), done. Updating files: 100% (5967/5967), done. $ cd dify/docker
-
環境設定ファイルをコピーし、必要に応じて編集します
$ cp .env.example .env $ vi .env
httpのポートをコンテナの外からアクセスできるように設定を変更します。
.env
の以下の2か所について、ポート番号の8888番を設定しました。(未使用ポートを設定しましょう)# ------------------------------ # Environment Variables for Nginx reverse proxy # ------------------------------ # HTTP port NGINX_PORT=8888 # ------------------------------ # Docker Compose Service Expose Host Port Configurations # ------------------------------ EXPOSE_NGINX_PORT=8888
-
docker-composeで、Difyを起動します
$ docker-compose up -d [+] Running 11/11 ✔ Network docker_ssrf_proxy_network Created 0.1s ✔ Network docker_default Created 0.1s ✔ Container docker-db-1 Started 5.1s ✔ Container docker-weaviate-1 Started 4.9s ✔ Container docker-sandbox-1 Started 4.8s ✔ Container docker-redis-1 Started 4.9s ✔ Container docker-ssrf_proxy-1 Started 5.2s ✔ Container docker-web-1 Started 4.6s ✔ Container docker-api-1 Started 7.8s ✔ Container docker-worker-1 Started 7.4s ✔ Container docker-nginx-1 Started
これで、8888番でDifyがアクセス可能になりました。
あとは、必要に応じてドメインとTLSの設定を行います。今回はAWS環境(ALB配下のEC2サーバー)で構築したため、他に
- Route53に、CNAMEレコードを設定し、
- インターネットからの443ポートへのTLSアクセスが、ALB経由でEC2の80番ポートにアクセスされるように設定をし、
- EC2内のApacheには、httpd.confのVirtualHostに設定を入れ、再起動しました
※[domain-name]にはあなたのドメイン名を設定してくださいね。
<VirtualHost *:80>
ServerName [domain-name]
# 通常のリバースプロキシの設定
ProxyPass "/" "http://127.0.0.1:8888/"
ProxyPassReverse "/" "http://127.0.0.1:8888/"
</VirtualHost>
Difyのセットアップ
-
Difyの初期化プロセスを開始します。ブラウザで以下のURLにアクセスします
http://[domain-name]/install
-
画面の指示に従って初期設定を完了します。
以下は初期画面です。
「管理者アカウントの設定」リンクをクリックします。
3つの項目を入れてボタンを押下すると登録されます。
上記画面でサインインをします。先ほど登録したメールアドレスとパスワードを入力しましょう。
見事サインインに成功しました。おめでとうございます!
自動起動の設定方法
マシンを再起動してもDifyが自動的に起動するようにするには、追加の設定が必要です。以下に手順示します。
-
システムのsystemdサービスを作成します
sudo vi /etc/systemd/system/dify.service
-
以下の内容を
dify.service
に追加します[Unit] Description=Dify Docker Compose Application Requires=docker.service After=docker.service [Service] Type=oneshot RemainAfterExit=yes WorkingDirectory=/home/ec2-user/dify/docker ExecStart=/usr/local/bin/docker-compose up -d ExecStop=/usr/local/bin/docker-compose down [Install] WantedBy=multi-user.target
実際のDifyのdockerディレクトリのパス類に置き換えてくださいね。
-
ファイルを保存して閉じます。
-
システムにサービスを登録し、有効化します
$ sudo systemctl daemon-reload $ sudo systemctl enable dify.service Created symlink from /etc/systemd/system/multi-user.target.wants/dify.service to /etc/systemd/system/dify.service.
-
サービスを開始します
$ sudo systemctl start dify.service
これらの手順を実行することで、マシンの再起動時にDifyが自動的に起動するようになります。
まとめ
Difyをインストールする手順をまとめました。簡単ですね。どうやらとあるコンサルの調査によると、生成AIの活用は、日本は面倒な事務作業の効率化に焦点が当たることに比べて、アメリカは顧客満足度の向上に重きを置くそうです。自分に役立てるだけでなく、周りの人に役立ててこそ本当の価値。実際に使いながらいろいろ役立てていきましょう!