(最終更新:2025年12月28日)
生成AIアプリ開発プラットフォームとして大人気の「Dify(Community版)」。
今回は、これを自身のVPS(Ubuntu)上に構築し、独自ドメインで安全に公開するまでの手順をステップバイステップで解説します。
私も実際に自社サーバーに構築し、運用しています。

今回のゴールは以下の通りです。
- Docker を使ってDifyを構築する
- サーバー内でのポート競合を防ぐため、Dify自体は 8888ポート で起動させる
- Nginx をリバースプロキシとして使い、標準の 80ポート でアクセスできるようにする
- 独自ドメイン を設定し、SSL(HTTPS)化 してセキュリティを確保する
手順 0: VPSの準備とSSH接続セットアップ
まずはDifyを動かすためのサーバー(VPS)が必要です。
Difyは多くのコンテナを同時に動かすため、ある程度のマシンスペックが求められます。
推奨スペック:
- CPU: 2 vCPU以上
- メモリ: 最低4GB(推奨8GB以上)
※4GB未満だとインストール中にメモリ不足で落ちることがあります。
VPSは、初心者の方であれば、以下のいずれかがおすすめです。こちらで紹介しているUbuntuイメージもすぐに利用できます。
- 長期の運用を考えているなら、コストパフォーマンスが高く管理がしやすい XServer VPS
- 「ひとまず試してみたい」という方は、日額課金で利用できるKAGOYA CLOUD VPS

比較して自分にあったVPSを選びたい方はこちらの記事も参考にしてください。
手順 1: Docker と Docker Compose のインストール
前提として、以下が準備できていることをご確認ください。
- VPSでUbuntu環境が準備できている
- SSHで、自身のPCからVPS内にアクセスができている
※ 上記が完了していない方は、手順0をご確認下さい。
まずは環境構築に必須となる Docker をインストールします。
# パッケージリストの更新
sudo apt update && sudo apt upgrade -y
# 必要なパッケージのインストール
sudo apt install -y ca-certificates curl gnupg
# Dockerの公式GPGキーを追加
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# リポジトリのセットアップ
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Docker本体とプラグインのインストール
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
# 動作確認(バージョンが表示されればOK)
docker compose version
# 現在のユーザーをdockerグループに追加
sudo usermod -aG docker $USER
# 一度VPSをrebootし、グループの変更を適用
sudo reboot
手順 2: Difyのインストールとポート設定
次にDifyのソースコードを取得し、設定を行います。
1. リポジトリのクローン
# Difyのリポジトリをクローンしたい場所(以下は、ホームディレクトリへ移動する例)
cd ~
# Difyのリポジトリをクローン
git clone https://github.com/langgenius/dify.git
# Docker設定ディレクトリへ移動
cd dify/docker
2. 環境設定ファイルの編集
サンプルファイルをコピーして、設定ファイルを編集します。
cp .env.example .env
nano .env
ファイルを開いたら、下画像の青色箇所を変更します。
(左側が .env.example、右側がコピーした.envです。)

※ 右側localhost:8888の箇所を、ドメインもしくはIPアドレスに変更すること。
SECRET_KEYとINIT_PASSWORDを書き換えます。こちらの値は絶対に人に知られないよう保管してください。

↑デモ用のため、簡易的なパスワードにしていますが、絶対に独自のものに変更してください。
ファイルの末尾の方にある EXPOSE_NGINX_PORT、EXPOSE_NGINX_SSL_PORT を変更します。

これにより、Difyは http://ドメイン(もしくはIPアドレス):8888 でアクセスを受け付けるようになります。
3. Difyの起動
設定ができたらコンテナを起動します。
docker compose up -d
※ 初回はダウンロードに数分〜10分程度かかります。
4. 起動確認
ブラウザで http://[VPSのIPアドレス]:8888 にアクセスしてみてください。
Difyの初期設定画面が表示されれば、まずはDify単体での構築は成功です。

ここでは、先程のINIT_PASSWORDをいれて、先へ進めるようになります。
手順 3: Nginx(リバースプロキシ)の設定
今のままだとURLに :8888 を付ける必要があり不便です。
そこで、VPS本体にWebサーバー「Nginx」をインストールし、80番ポートへのアクセスを内部的に8888番ポートへ転送(リバースプロキシ)する設定を行います。
1. Nginxのインストール
sudo apt install -y nginx
2. 設定ファイルの作成
Dify用の設定ファイルを作成します。
sudo nano /etc/nginx/sites-available/dify
以下の内容をコピーして貼り付けます。
※ server_name の横の your_domain.com は、まだドメインがなければ一旦 _ (アンダースコア) または IPアドレスでも構いません。
server {
listen 80;
server_name xxx.xxx.xxx.xxx; # あとでドメイン名(your_domain.com)に変更します
location / {
proxy_pass http://localhost:8888;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
3. 設定の有効化と再起動
シンボリックリンクを作成して設定を有効化し、Nginxを再起動します。
# デフォルト設定を無効化(必要に応じて)
sudo unlink /etc/nginx/sites-enabled/default
# Dify設定を有効化
sudo ln -s /etc/nginx/sites-available/dify /etc/nginx/sites-enabled/
# Nginxの構文チェック
sudo nginx -t
# Nginx再起動
sudo systemctl restart nginx
これで、ブラウザから http://[VPSのIPアドレス] (ポート指定なし)でアクセスできるようになりました!
手順 4: 独自ドメインの取得と設定(Xserverドメイン)
IPアドレスのままではSSL化(https)ができないため、独自ドメインを設定します。
1. ドメインの取得
まだドメインをお持ちでない場合は、Xserver VPSと連携がスムーズな XServerドメイン
での取得がおすすめです。
2. DNS設定(Aレコードの追加)
取得したドメインの管理画面(DNSレコード設定)で、以下の設定を追加します。
- 種別: A
- ホスト名: 空欄(または www などサブドメインを使いたい場合は入力)
- 内容: VPSのIPアドレス
- TTL: 標準(3600など)

こちらは著者の利用するAWSのDNSレコード設定画面ですが、AWSは少し複雑なので、日本のドメインサービスをおすすめします。
設定が終わりましたら、反映されるまで数分〜数時間待ちます。
3. Nginx設定の更新
先ほど作成したNginxの設定ファイルを編集し、server_name を取得したドメインに書き換えます。
sudo nano /etc/nginx/sites-available/dify
server {
listen 80;
server_name example.com; # ← あなたのドメイン名に変更
...
保存したらNginxをリロードします。
sudo systemctl reload nginx
手順 5: SSL化(HTTPS)の設定
最後に、Let’s Encryptを使って通信を暗号化(HTTPS化)します。これを行わないと、APIキーなどの重要情報が平文で流れてしまい危険です。
1. Certbotのインストール
sudo apt install -y certbot python3-certbot-nginx
2. 証明書の取得と設定
以下のコマンドを実行するだけで、証明書の取得からNginxの設定書き換えまで自動で行ってくれます。
sudo certbot --nginx -d example.com
※ example.com はあなたのドメイン名に置き換えてください。
実行中、メールアドレスの入力や規約への同意を求められるので、画面の指示に従って入力します。最後に「Successfully received certificate」と表示されれば完了です。
念の為構文チェックとNginxの再起動を行ってください。
# Nginxの構文チェック
sudo nginx -t
# Nginx再起動
sudo systemctl restart nginx
3. envの書き換え
先に編集した.envファイルのうち、ドメインの箇所を書き換えましょう。

example.comの箇所は適切に書き換えてください。
dify/dockerディレクトリ内で以下のコマンドでコンテナを再起動しましょう。
docker compose down
docker compose up -d
4. 確認
ブラウザで https://あなたのドメイン にアクセスしてください。鍵マークが表示され、安全にDifyが利用できるようになっているはずです。
運用後のアップデート方法
Difyは開発スピードが非常に速いため、定期的なアップデートをおすすめします。
# 1. ディレクトリへ移動
cd ~/dify/docker
# 2. ソースコードの更新
git pull origin main
# 3. Dockerイメージの更新
docker compose pull
# ※ .env に変更が必要な場合は .env.example を確認して追記
# 4. コンテナの再起動
docker compose down
docker compose up -d
これでデータは保持されたまま、最新版に更新されます。
まとめ
以上で、自分専用のDify環境が完成しました!
VPS + Docker + 独自ドメインでの運用は、セキュリティ面でもコスト面でも非常に優れた構成です。
ぜひこれを使って、独自のAIアプリ開発を楽しんでください。


