Skip to content
Live $100 credit at signup, up to $300 total Offer ends December 31, 2026 Get started →

Dify

Dify is an open-source platform for building LLM applications and AI agents. It combines a visual workflow builder, retrieval-augmented generation (RAG) pipelines, prompt management, and an agent framework so teams can design, test, and deploy generative-AI apps from one interface.

ComponentVersion
Dify1.15.0
DockerLatest stable
Docker ComposeLatest stable
Ubuntu24.04 LTS

Dify runs as a multi-container Docker Compose stack (API, worker, web, PostgreSQL, Redis, Weaviate vector store, and nginx).

ResourceMinimumRecommended
vCPU24
RAM4 GB8 GB
Storage40 GB80 GB

RAM and storage requirements grow with usage.

ssh ubuntu@<your-vm-ip>

On the first boot, a setup script generates the internal database and Redis secrets, writes the environment file, and starts the stack with Docker Compose. This takes a few minutes while the containers become healthy. Track progress:

journalctl -u dify-first-boot.service -f

The login message (MOTD) confirms when Dify is ready and prints the internal credentials.

Open a browser and complete the one-time admin setup:

http://<your-vm-ip>/install

Create the admin account (email and password of your choice), then sign in at http://<your-vm-ip>/.

From Settings → Model Provider, add an LLM provider (such as OpenAI, Anthropic, or a self-hosted Ollama endpoint) before building apps.

The internal database and Redis passwords are written to a root-only file:

sudo cat /etc/dify/credentials.txt

Dify runs as a Docker Compose stack in /opt/dify/docker.

# Check status
cd /opt/dify/docker && docker compose ps
# Restart
cd /opt/dify/docker && docker compose restart
# View logs
cd /opt/dify/docker && docker compose logs -f

Environment configuration: /opt/dify/docker/.env. Persistent data is stored under /opt/dify/docker/volumes.

Ports 80 and 443 are open on the VM’s network interface. UFW is enabled and allows SSH (port 22), HTTP (80), and HTTPS (443).

Dify serves plain HTTP by default. For production use, put it behind your own reverse proxy with TLS, or configure HTTPS and the public URL in /opt/dify/docker/.env. Apply .env changes with:

cd /opt/dify/docker && docker compose down && docker compose up -d

Last updated: