Open29
Difyインフラキャッチアップ

Readmeの方法でいいじゃんというのはいったんおいておく

terraformのcdkだと以下のもある

docker composeでデフォルトのままで起動すると以下のコンテナが起動する
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
docker-api-1 langgenius/dify-api:1.1.3 "/bin/bash /entrypoi…" api 2 minutes ago Up 2 minutes 5001/tcp
docker-db-1 postgres:15-alpine "docker-entrypoint.s…" db 2 minutes ago Up 2 minutes (healthy) 5432/tcp
docker-nginx-1 nginx:latest "sh -c 'cp /docker-e…" nginx 2 minutes ago Up 2 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp
docker-plugin_daemon-1 langgenius/dify-plugin-daemon:0.0.6-local "/bin/bash -c /app/e…" plugin_daemon 2 minutes ago Up 2 minutes 0.0.0.0:5003->5003/tcp
docker-redis-1 redis:6-alpine "docker-entrypoint.s…" redis 2 minutes ago Up 2 minutes (healthy) 6379/tcp
docker-sandbox-1 langgenius/dify-sandbox:0.2.11 "/main" sandbox 2 minutes ago Up 2 minutes (healthy)
docker-ssrf_proxy-1 ubuntu/squid:latest "sh -c 'cp /docker-e…" ssrf_proxy 2 minutes ago Up 2 minutes 3128/tcp
docker-weaviate-1 semitechnologies/weaviate:1.19.0 "/bin/weaviate --hos…" weaviate 2 minutes ago Up 2 minutes
docker-web-1 langgenius/dify-web:1.1.3 "/bin/sh ./entrypoin…" web 2 minutes ago Up 2 minutes 3000/tcp
docker-worker-1 langgenius/dify-api:1.1.3 "/bin/bash /entrypoi…" worker 2 minutes ago Up 2 minutes 5001/tcp

squidはプロキシサーバー。nginxでいい気がするんだけど、なんであるんだろう

difyっぽいのは
-
web
-
api
-
worker
-
sandbox
-
dify-plugin-daemon
くらいか

postgresql、Redis、nginxはいったんいいとして別の部分を調べる。

にlangfuseというものがあったので調べてみた
Otel的なものっぽい

sandboxは別のリポジトリにあるらしい

web側はnextjsみたい

ログインしてない場合のユーザーはどこで持っているんだろうと思っていたが、JWTの中で保持しているらしい。
とあるアプリケーションを公開したときのauthorization Header
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI5ZTFmOWI5MS1mM2UxLTQ0MDQtYmE3Yy1iOWY0ZTQzOGZjMjQiLCJzdWIiOiJXZWIgQVBJIFBhc3Nwb3J0IiwiYXBwX2lkIjoiOWUxZjliOTEtZjNlMS00NDA0LWJhN2MtYjlmNGU0MzhmYzI0IiwiYXBwX2NvZGUiOiI2WDBJS29pUWZ4eUZENm9qIiwiZW5kX3VzZXJfaWQiOiI4NWEyZWYzZC0zOGMzLTRlNDUtYWQyZS02MDlmZGQ2NTRkMzIifQ.nyBS0bX3oAikcJfUVdzBv3CMuIG-h8xhdeTf9K5ifSQ

ペイロードは以下のようになる
{
"iss": "9e1f9b91-f3e1-4404-ba7c-b9f4e438fc24",
"sub": "Web API Passport",
"app_id": "9e1f9b91-f3e1-4404-ba7c-b9f4e438fc24",
"app_code": "6X0IKoiQfxyFD6oj",
"end_user_id": "85a2ef3d-38c3-4e45-ad2e-609fdd654d32"
}

Difyって別の認証とかをかますことができる?
後でちょっと調べてみる