Dify implementation plan and cost

A self-hosted Dify rollout is priced from its written scope: deployment topology, storage and vector choices, model providers, first apps and knowledge bases, and the work to hand it over. DeployOpen quotes from that scope.

On this page

What a Dify implementation involves

A self-hosted Dify rollout puts the platform's three main working areas on infrastructure you control: visual workflows, retrieval-augmented generation (RAG) knowledge bases, and agents that call tools and models. Teams usually scope the work after one of three triggers: a pilot that has outgrown a cloud trial, data residency rules that stop prompts and documents from leaving your environment, or a need to route requests to internal model endpoints instead of public providers. Each trigger changes the list of components you must deploy, back up and secure, so the first deliverable should be a written inventory of apps, data sources, model providers and the users who will sign in.

Edition shapes the scope. The self-hosted Community edition is free and limited to a single workspace, according to the Dify pricing page. If you need several isolated workspaces, SSO or a Kubernetes high availability layout, those requirements point to the custom-priced Enterprise edition. Confirm this against your requirements before any architecture work, because it decides whether the project is a single Docker Compose stack or a larger platform build with a different team and budget.

Teams with strong container and database skills often build the platform in-house. The Compose stack is documented and the components are familiar: PostgreSQL, Redis, a vector store, object storage, a reverse proxy and a code sandbox. Partners add the most value in three places: scoping decisions that are expensive to reverse (metadata database, vector store, object storage and model routing), secrets and sandbox design such as the SECRET_KEY handling and the SSRF proxy configuration, and fixed-scope delivery with written acceptance criteria. Ask any partner to show how they will handle each of those three in the statement of work.

Before you request a quote, decide who owns the model credentials, who approves new apps and who restores the database if an upgrade fails. Those answers determine how much of the work is platform engineering and how much is governance. A quote should list the environments, the components deployed, the number of apps and knowledge bases to build, the identity integration, the backup and restore test, and the handover documentation, so that you can compare it with an in-house estimate line by line.

What the work includes and what you receive

A fixed-scope Dify rollout covers the environment, its data services, model access, first applications and the handover documents. The cards below list each work item and the deliverables you keep afterward.

Environment build on Compose or Kubernetes

We build the runtime in your cloud account, data center or air-gapped network, using Docker Compose for a single-host Community deployment or Kubernetes for a clustered layout. The Compose stack needs at least 2 CPU cores, 4 GB of RAM and Docker Compose 2.24.0 or later. Confirm the target platform early, because it changes the host count, the load balancer and the upgrade process.

Metadata database, vector store and object storage

We configure PostgreSQL as the metadata database unless you require MySQL or OceanBase, select a vector store (Weaviate is the default, with Qdrant, Milvus, pgvector, OpenSearch and Elasticsearch as options) and connect file storage such as S3-compatible or Azure Blob. Each choice affects backup scope and sizing, so record it in the configuration records before build starts.

Model provider setup and credential storage

We connect the model providers your policy approves and store each API key in your secret store, not in .env files or the console. Ask who owns provider accounts, who rotates keys and which model endpoints are allowed for each workspace. Provider usage and billing stay with your accounts and are outside the implementation fee.

SECRET_KEY and secret handling

We generate SECRET_KEY, set it before first user login and document where it is held and backed up. The variable signs session cookies and JWTs and encrypts OAuth credentials, so changing it after deployment logs out all users. We also set workspace encryption key storage and confirm that no secret appears in exported configuration.

First apps and knowledge bases

We build the first agreed applications and knowledge bases from your sample content, including prompts, workflow nodes and retrieval settings. Document content is not included in app exports, so ingestion is repeated in each new environment. Confirm the number of apps and document sets in the written scope.

Acceptance testing and handover

We run the acceptance tests you approve, covering login, model calls, retrieval results, backup restore into a test environment and the upgrade steps. Handover delivers the deployed environments, configuration records, app exports as YAML DSL files, a runbook and an upgrade procedure. Ask for the acceptance criteria in writing before work starts.

SSO, hardening and customization

Single sign-on, hardening and customization are separate work and are not included in the base environment build. Dify Enterprise SSO supports OpenID Connect, SAML and OAuth2, and hardening covers the code sandbox, SSRF proxy and network isolation. Each can be added to the written scope as its own deliverable with its own acceptance tests.

What drives cost and duration

Each row names a driver of implementation effort or recurring cost, explains why it moves the work, and gives the step that keeps it under control.

DriverWhy it moves effortHow to keep it down
Deployment topology: Compose or KubernetesCompose needs at least 2 CPU cores, 4 GB of RAM and Docker Compose 2.24.0 or later. Enterprise on Kubernetes needs Kubernetes 1.24 or later and Helm 3.14 or later, plus more platform work.Match topology to availability needs first. Confirm node counts and cluster prerequisites with Dify before the quote is written.
Community or Enterprise editionCommunity is free and limited to one workspace. Enterprise is custom priced and adds SSO, multiple workspaces and professional support, which add configuration and licensing work.List the multi-workspace, SSO and support requirements before scoping. Request an Enterprise quote only for needs that require it.
Apps, workflows and connected toolsEach app, workflow and external system adds build, testing and access work. Exports carry app configuration but not third-party API keys.Agree a first-release list of apps. Connect tools in priority order and budget credential setup per tool.
Knowledge base volume and document typesDocument count, formats and quality drive ingestion time, storage, chunking choices and retrieval tuning. Knowledge base content is not carried over in exports.Inventory source documents, remove duplicates and stale files, and load knowledge bases in named batches with owners.
Model providers and routingEach provider needs credentials, parameter testing and outbound access through the SSRF proxy, which blocks internal and private IP ranges.Limit the first rollout to approved providers. Agree who owns credential rotation and where keys are stored.
Data stores: database, vector store and object storageThe Compose stack bundles PostgreSQL, Redis and Weaviate. Enterprise expects PostgreSQL 14 or later, Redis 6 or later, Qdrant and S3-compatible storage, each of which must be run, sized and backed up.Decide on the database, vector store and object storage before build starts. Confirm which services are managed by your team.
Identity integrationEnterprise SSO supports OpenID Connect, SAML and OAuth2. Workspace access and web app access use separate SSO scopes, so each needs its own configuration and testing.Confirm the identity provider, protocol and group mapping early. Decide which users need workspace access and which need only web app access.
Environments and upgradesEach environment repeats deployment, secrets and configuration. Upgrades follow per-version guides, need a backup first and may add new .env variables. Minor releases arrive roughly monthly.Keep the environment count small. Plan a recurring upgrade window and a test environment that mirrors production.
Compliance evidence, concurrency and sandboxed agentsAssessors expect access records, backup restore tests and change logs. Peak concurrent users and agents that run code in the sandbox increase sizing and isolation testing. The Enterprise production example uses six worker nodes, each with 8 CPUs and 32 GB of RAM.Map required evidence to controls before build. Confirm peak concurrent users and agent use cases, and treat the Enterprise example as a reference, not a sizing for your workload.

Project phases and outputs

The sequence moves from agreed scope to a configured, tested and handed-over Dify platform that your team can operate.

  1. Run discovery and agree written scope

    DeployOpen reviews your use cases, user groups, model providers, data sources, identity needs and hosting constraints with your architecture, security and business owners. The output is a written scope with deliverables, exclusions, acceptance criteria and a timeline that reflects the drivers in the scope. Work starts only after you sign off.

  2. Make architecture decisions

    The team records decisions on topology (Docker Compose or Kubernetes), metadata database (PostgreSQL, MySQL or OceanBase), vector store, object storage for files, and how secrets such as SECRET_KEY and encryption keys are stored. Each decision carries its trade-off and owner. The output is a signed architecture decision record that the build follows.

  3. Build the hosting environment

    DeployOpen provisions the compute, networking, TLS termination, storage, backup targets and outbound proxy paths in your cloud account, data center or air-gapped network. The core services are deployed and checked for health, and the sandbox and SSRF proxy are confirmed to run. The output is a working environment that matches the architecture record.

  4. Configure the platform and model providers

    DeployOpen sets environment variables, connects the chosen vector store and object storage, and configures model providers with credentials held in your secret store. Workspace roles, the first members and any agreed identity integration are set up. The output is a configured platform where each provider and store has been tested with a live request.

  5. Build first apps and knowledge bases

    DeployOpen builds the agreed first apps, workflows and knowledge bases with your subject-matter owners, including document ingestion, chunking and retrieval settings. Prompts and model parameters are versioned, and app configuration is exported as YAML DSL files for the record. The output is the agreed set of apps, each signed off against its written acceptance criteria.

  6. Test and accept the platform

    DeployOpen runs functional tests on apps and knowledge base retrieval, checks access controls, secret handling, sandbox and proxy behavior, and backup and restore on a copy. Findings are logged and fixed until the agreed criteria pass. The output is a test report and a signed acceptance record.

  7. Hand over runbook and training

    DeployOpen delivers a runbook covering operations, backups, upgrade steps per release, monitoring, incident response and secret rotation, then trains your operators and app builders on the platform. Access is transferred and support options are confirmed separately. The output is a documented, operable system and a training record for your team.

What teams keep in-house and what they outsource

This table compares, for each work item in a self-hosted Dify rollout, what teams usually keep in-house, what they usually outsource and the skills each side needs, so the split can be planned before a quote is requested.

Work itemUsually kept in-houseUsually outsourcedSkills required
Infrastructure provisioningAccount ownership, network zones, DNS, certificates and approval of the final environmentBuilding the hosts or cloud resources, Compose or Kubernetes manifests and environment filesCloud or data center administration, Docker Compose, Linux, networking
Container or cluster operationOn-call ownership, patch windows, capacity decisions and upgrade approvalsInitial cluster or Compose setup, startup checks and the first upgrade rehearsalDocker or Kubernetes operations, Helm for Enterprise deployments, monitoring
PostgreSQL and object storage operationBackup retention rules, restore testing schedule, storage ownership and data classificationDatabase and bucket setup, metadata database configuration and file storage wiringPostgreSQL administration, S3-compatible storage, backup and restore tooling
Model provider accounts and API keysContract signature, spend limits, key rotation owner and approval of approved providersEntering keys into Dify provider settings and documenting where each credential is storedVendor console administration, secrets handling, understanding of provider billing
Workflow and prompt designBusiness rules, acceptance criteria, sign-off on prompts and ownership of each app after launchFirst app builds, prompt iteration with the team and workflow node configurationPrompt engineering, Dify workflow editor, testing of LLM outputs
Knowledge base content preparationChoice of source documents, access classification and decisions on what must not be indexedChunking settings, ingestion pipelines and retrieval tuning on sample contentDocument governance, retrieval evaluation, vector store configuration
Integrations with internal systemsOwner approval for each system account, data scope and API access policyCustom tools, API-based tool definitions and connection testing against internal endpointsREST API design, identity and service accounts, SSRF and network policy awareness
Security reviewRisk acceptance, SSO and access model decisions, and sign-off on the security test resultsHardening configuration, SECRET_KEY and SSRF proxy setup, and remediation of findingsApplication security, TLS, identity protocols, secrets management
Runbook writingFinal ownership of runbooks, escalation paths and incident contactsDraft runbooks for install, upgrade, backup, restore and key rotationTechnical writing, operations knowledge, familiarity with the deployed stack

What usually goes wrong

Each card names a failure that typically affects a self-hosted Dify rollout and the step that prevents it. Settle these items in the written scope before build starts.

Knowledge base rebuild underestimated

Dify YAML DSL exports carry app configuration, workflow nodes, prompts, model parameters and knowledge base connections, but not document content, third-party API keys or usage logs. Teams budget for the import and forget that every knowledge base must be re-ingested and every provider key re-entered. Inventory source documents and keys for each knowledge base before work starts, and include re-ingestion in the fixed scope.

SECRET_KEY changed after deployment

SECRET_KEY signs session cookies and JWTs and encrypts OAuth credentials, so changing it after deployment logs out every user. This often happens during a routine .env edit or when a host is rebuilt without carrying the value over. Generate the key once, store it in your secrets manager, and make the restore runbook and every upgrade checklist confirm it is unchanged.

Infrastructure chosen from defaults

The Compose minimums of 2 CPU cores and 4 GB of RAM start the stack but do not show what your users will need. Teams also choose the vector store and file storage after the first apps are built, then re-platform knowledge bases later. Size the host from expected concurrency, document volume and workflow load, and fix the metadata database, vector store and object storage in the scope before build.

Outbound model calls blocked by the proxy

The SSRF proxy blocks internal and private IP ranges, and the 1.16.1 release notes describe agent sandbox isolation through a Squid proxy. A model endpoint on a private address, a self-hosted model server or an internal API tool can then fail or route unexpectedly. List every outbound destination the apps need, test each one through the proxy settings in staging, and record each exception as a reviewed change.

Multi-tenant use without authorization

The Community edition is limited to one workspace, and the Dify Open Source License forbids operating a multi-tenant environment, where one tenant is one workspace, without written authorization. The license also bars removing the logo or copyright information from the console. Teams that give separate departments or customers their own workspace find this out late. Confirm the workspace count and branding terms in writing before the scope is signed.

Nobody owns monthly releases

Dify minor releases have arrived roughly monthly, including 1.16.0 on July 17, 2026, 1.17.0 on August 25, 2026 and 1.17.1 on September 10, 2026. Each upgrade calls for a backup, the target version's upgrade guide and a check of .env.example for new variables. Without a named owner, the stack drifts behind and later upgrades become harder. Assign an owner and a monthly review in the support scope.

How the work changes by starting point

A single virtual machine running Docker Compose is the smallest scope. The stack starts the api, worker, web and plugin daemon services along with PostgreSQL, Redis, Weaviate, Nginx, a code sandbox and an SSRF proxy. The work centers on sizing the host, TLS, backups and a documented upgrade routine.

  • Dify's documented minimum is 2 CPU cores and 4 GB of RAM, but a pilot with real document loads needs more. Confirm sizing against expected usage.
  • Confirm that Docker Compose 2.24.0 or later is available on the approved operating system image.
  • A single node has no high availability. Confirm the owner accepts that for the pilot.
  • Confirm the backup target and run a restore test for the database and file storage.
  • Confirm who owns the SECRET_KEY value and TLS certificate renewal.

What you need to provide

Most of the schedule risk in a self-hosted Dify rollout sits on the client side, and it is decided before any installation begins. The team needs the infrastructure target settled first: cloud accounts or cluster access, either Docker hosts or a Kubernetes namespace, DNS names and TLS certificates for the console and the API. Each of these depends on someone outside the project, such as a network or platform team, so request them at scoping rather than at build time.

Identity and model access are the two items that most often block the schedule. Name the owner of the identity provider and agree which accounts will sign in to the console, because SSO settings and redirect URLs cannot be tested without them. Model provider accounts also need a named approver who has signed off on sending company data to each provider. Confirm that approval, the billing owner and the API key handling process in writing before the first workflow is built.

Each first app needs a named business owner who can answer questions about expected behavior and sign off on test results. Ask the client to supply sample documents and data for each knowledge base early, and to say whether any of it is restricted. Document content is not carried over by an app export, so the knowledge base build depends on this material arriving on time.

Three platform decisions also belong on the client list: the vector store, the object storage target, and where secrets live. Confirm the secret store for database passwords, provider keys and SECRET_KEY, and agree who holds the value of SECRET_KEY, since changing it after deployment logs out all users. Finally, book a change window for go-live and any cutover from a previous tool. Confirm the exact vector store and storage options with your platform team, since they depend on the database and storage you already operate.

Questions buyers ask before hiring help

How much does a self-hosted Dify implementation cost?

The cost is the services work plus the infrastructure you run, because the Community edition license is free. Enterprise is custom priced and quoted from written scope. The published Dify Cloud prices of 590 US dollars per year for Professional and 1,590 US dollars per year for Team are subscription prices for the hosted service, so they do not include the cost of hosting Dify yourself. Ask for a quote with separate lines for discovery, build, testing, handover, and any recurring support or upgrade retainer.

Is the Dify Community edition free to self-host?

Yes, the self-hosted Community edition is free and limited to a single workspace. Multiple workspaces, SSO, advanced security, a commercial license and professional support belong to the Enterprise edition, which is custom priced. The Dify Open Source License also prohibits operating the source code as a multi-tenant environment without written authorization and prohibits removing the logo or copyright information from the console, so confirm those terms before you offer Dify to outside users.

How long does a Dify implementation take to deliver?

Duration depends on the written scope, so no general timeline applies. The main drivers are the deployment target, the number of apps and knowledge bases, the data sources to connect, whether SSO and an external vector store are in scope, and how many people must review and approve each stage. Ask for a timeline with milestones, the client actions each milestone depends on, and the review cycles included in the price.

What does a Docker Compose Dify deployment need from our servers?

The Docker Compose docs set a minimum of 2 CPU cores and 4 GB of RAM, with Docker Compose 2.24.0 or later. That minimum is a floor for a test install, not a production sizing. Production sizing depends on concurrent users, workflow run volume, model latency, knowledge base size and the vector store you choose. The Enterprise resources checklist describes a larger production example with six worker nodes, each with 8 CPUs and 32 GB of RAM, plus a three-node Qdrant cluster. Treat that as an Enterprise reference, and size your own environment from load tests.

Can our own team deploy and run Dify without a partner?

Yes, if your team has the skills listed on the in-house version of this page. Those include container or Kubernetes operations, PostgreSQL and Redis administration, object storage, reverse proxy and TLS setup, secret handling and model provider administration. Plan for ongoing work as well, since Dify ships minor releases about monthly and the docs ask you to back up before every upgrade and check .env.example for new variables. Compare that recurring effort with your team's capacity before you decide.

What does our organization need to provide before a Dify project starts?

The client provides named owners for scope decisions, hosting accounts or cluster access in its own infrastructure, and accounts with each approved model provider. It also provides document sources for knowledge bases, identity provider details if SSO is in scope, and contacts for security review and change approval. The written scope should list each client input, the person responsible for it and the date it is needed, because late inputs are a common cause of schedule changes.

How DeployOpen scopes and delivers Dify

DeployOpen plans, implements, hardens, documents and supports self-hosted Dify inside your own cloud accounts, data centers or air-gapped networks. The scope is agreed in writing before any build work, so the plan and cost follow from decisions you can review.

How we scope

  • We confirm whether Community Compose or Enterprise on Kubernetes fits your availability, identity and workspace requirements.
  • We record the database, vector store and object storage choices, with the reasons for each, in the written scope.
  • We list the model providers, first apps and knowledge bases in scope, so cost drivers are visible before the quote is final.

How we build

  • We install Dify in your environment and configure the metadata database, file storage and SECRET_KEY handling.
  • We set up model provider credentials, outbound SSRF proxy rules and the sandbox settings agreed in the scope.
  • We build the first apps and knowledge bases, then test retrieval, access and agent network isolation against the plan.

How we hand over

  • We document the deployed architecture, configuration values, secret locations and backup procedure for your operators.
  • We provide a tested backup and restore run, with the results recorded as evidence for your team and assessors.
  • We walk your engineers through upgrade steps, including backups before each version change and checking new .env variables.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after go-live, scoped separately in writing.
  • We can plan monthly minor release upgrades against the release notes and per-version upgrade guides your team approves.
  • Confirm with us which support, response and testing terms apply, since these are set in the retainer agreement rather than assumed.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.