Skip to content

Solutions · LLM app platform

A VPS for Dify

Dify is the open-source platform for building LLM apps: chat assistants, agents, workflows and RAG over your documents, with the model provider of your choice behind an API key. Its docs ask for 2 CPU cores and 4 GiB of RAM, and the official Docker Compose file starts sixteen containers, so treat that floor as a floor. BD-8 at $12.90 a month is the cheapest machine with real room; C2-4-80 at $37.90 is the cheapest that is exactly the official minimum, in dozens of cities.

What it needs

Software from the docs, sizes labelled by source

The software and the security posture come from the project's own documentation. Where the project publishes no hardware figure, the sizes say whose they are.

From the Dify README and docs.dify.ai

  • “CPU >= 2 Core, RAM >= 4 GiB.” Docker Engine 19.03 or later with Docker Compose 2.24.0 or later, on Linux.
  • Install: clone the latest release, then cd dify/docker && cp .env.example .env && docker compose up -d. The compose file starts seven Dify services plus Postgres, Redis, Weaviate, nginx, two sandboxes and two egress proxies.
  • nginx inside the stack publishes ports 80 and 443. The admin account is created once at http://your-ip/install; after that you log in at the bare address.
  • Models come from a provider you configure in Settings: an API key for a hosted model, or a self-hosted, OpenAI-compatible endpoint such as Ollama. Dify itself runs no model, so no GPU.

Sizes (Dify's minimum, then ours from what the compose file starts)

Sizing by workload
WorkloadvCPURAM
Dify alone (official minimum)Sixteen containers idle here. Indexing a document set or a build on the same machine will push it into swap.24 GB
Dify + a few apps and a small knowledge baseOurs. Postgres, Redis, Weaviate and the workers each hold memory of their own; this is where it stops being tight.48 GB
Large knowledge bases, many users, workflows all dayOurs. Weaviate grows with the vectors; embedding and indexing run on the worker's CPU.824 GB

The plans that fit

5 machines, priced live

Cheapest fitting machine first. Prices are today's, per month, read from the catalogue.

  • BD-8$12.90/mo

    4 vCPU · 8 GB · 100 GB disk · 32 TB

    Cheapest with room for the whole stack. 4 vCPU, 8 GB, 100 GB and 32 TB of transfer, for less than the 4 GB machines elsewhere. Twice the official floor on both counts.

  • BD-12$17.90/mo

    6 vCPU · 12 GB · 200 GB disk · 32 TB

    6 vCPU / 12 GB / 200 GB for a real document library. Disk for uploads and vectors, memory for Weaviate to grow into.

  • BD-24$31.90/mo

    8 vCPU · 24 GB · 300 GB disk · 32 TB

    8 vCPU / 24 GB for a team's apps. Several apps, big knowledge bases, agents and workflows running at once.

  • C2-4-80$37.90/mo

    2 vCPU · 4 GB · 80 GB disk · 3 TB

    Exactly the official minimum, in dozens of cities. 2 vCPU / 4 GB / 80 GB. Runs the stack; do not also build or index on it. Pick it for the city, not the size.

  • C4-8-160$75.90/mo

    4 vCPU · 8 GB · 160 GB disk · 3 TB

    4 vCPU / 8 GB / 160 GB, in dozens of cities. The comfortable size where the cheapest row's six cities do not suit you.

There is no start-up preset for Dify yet: the install is the four steps below, typed by you. They are the commands from Dify's own docs, nothing added.

The install

Four steps, from Dify's docs

Docker, the compose stack, the admin page, then a model. Do step 3 the minute the stack is up: the first visitor to /install creates the admin.

  1. Docker. curl -fsSL https://get.docker.com | sh Dify needs Compose 2.24 or later; docker compose version shows what you have.
  2. Clone the latest release and start it. git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git cd dify/docker && cp .env.example .env && docker compose up -d Sixteen containers start; docker compose ps should show every one Up or healthy, with init_permissions Exited.
  3. Create the admin now. Open http://your-ip/install, set the admin account, then log in at http://your-ip. Until you have HTTPS, keep 80 behind the firewall and reach it over SSH: ssh -N -L 8080:127.0.0.1:80 root@your-server then http://127.0.0.1:8080/install.
  4. Add a model provider, then a domain. Settings, Model Provider: paste a hosted provider's API key, or point an OpenAI-compatible provider at your own Ollama. For HTTPS, point an A record at the server, copy docker/envs/infrastructure/certbot.env.example without its .example suffix and put CERTBOT_DOMAIN and CERTBOT_EMAIL in it, then start the stack's certbot profile: docker compose --profile certbot up -d.

Honestly

What we would actually buy

The floor is 2 cores and 4 GiB for sixteen containers. Buy the 8 GB machine that costs less than the floor-sized ones.

For Dify and a few apps

BD-8 · $12.90/mo

4 vCPU, 8 GB and 100 GB at $12.90: the whole official stack with memory left for Postgres, Redis and Weaviate to grow, disk for uploads, and CPU for indexing without the apps stalling. The models live elsewhere, behind an API key, so this machine never needs a GPU. If you need a city the cheapest row does not have, C4-8-160 at $75.90 is the same shape in dozens of cities.

Questions

What people ask before they buy one.

What are Dify's system requirements?
Its README and its Docker Compose guide both say at least 2 CPU cores and 4 GiB of RAM, with Docker Engine 19.03+ and Docker Compose 2.24.0+. That floor is for the platform alone: the compose file starts the Dify API, a websocket service, two workers, the web app, the plugin daemon and the agent backend, plus Postgres, Redis, Weaviate, nginx, two sandboxes and two proxies. The macOS instructions give the Docker Desktop VM 2 CPUs and 8 GiB, which is a fair hint about what comfortable looks like. An 8 GB machine is where it stops being tight.
Does Dify need a GPU?
No. Dify is the application layer: it calls whichever model provider you configure, through an API key or an OpenAI-compatible endpoint. Its docs list dozens of hosted providers and self-hosted options. If you want to host the model yourself as well, that is a separate machine and a separate question: the Ollama page sizes CPU inference by model, and the GPU line is where interactive speed lives.
Which ports does it use?
The stack's nginx publishes 80 and 443 on the host (EXPOSE_NGINX_PORT and EXPOSE_NGINX_SSL_PORT in docker/.env). Everything else, Postgres, Redis, Weaviate, the sandboxes, stays on the compose network. Keep 80 firewalled until the admin exists and HTTPS works; the first visitor to /install creates the admin account.
Postgres and Redis: do I need to run them?
They are in the compose file and start with everything else: postgres:15-alpine for Dify's data and redis:6-alpine for queues and caching, plus Weaviate as the default vector store. You can point Dify at external services through docker/.env, but on one machine the bundled ones are the normal setup. Back up the docker/volumes directory: that is the database, the vectors and the uploads.
How much disk?
The docs give no figure. The sixteen images are several gigabytes, and after that disk grows with uploaded documents, their vectors in Weaviate and Postgres. Every row on this page has 80 GB or more; the 200 GB and 300 GB rows are for a real document library.
Dify or n8n or Flowise?
Dify is an LLM app platform: prompts, agents, RAG and workflows built around models, with a chat and API surface for the result. n8n is general automation that happens to have AI nodes. Flowise was a visual LangChain builder; its maintainers wound the project down in August 2026, and its page says what that means for anyone still running it. All three run on the same machines, and we keep a page for each.