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)
| Workload | vCPU | RAM |
|---|---|---|
| Dify alone (official minimum)Sixteen containers idle here. Indexing a document set or a build on the same machine will push it into swap. | 2 | 4 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. | 4 | 8 GB |
| Large knowledge bases, many users, workflows all dayOurs. Weaviate grows with the vectors; embedding and indexing run on the worker's CPU. | 8 | 24 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.
- Docker.
curl -fsSL https://get.docker.com | shDify needs Compose 2.24 or later;docker compose versionshows what you have. - 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 -dSixteen containers start;docker compose psshould show every one Up or healthy, with init_permissions Exited. - Create the admin now. Open
http://your-ip/install, set the admin account, then log in athttp://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-serverthen http://127.0.0.1:8080/install. - 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.examplewithout 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