packaged by Chainguard
Contact our team to test out this image for free. Please also indicate any other images you would like to evaluate.
FIPS-mode Next.js web console for Dify, the platform for building agentic workflows and RAG pipelines on large language models.
Chainguard Containers are regularly-updated, secure-by-default container images.
For those with access, this container image is available on cgr.dev:
Be sure to replace the ORGANIZATION placeholder with the name used for your organization's private repository within the Chainguard Registry.
dify-web-fips is the FIPS variant of the dify-web image and is comparable to the upstream langgenius/dify-web image. It keeps the upstream entrypoint (/bin/sh ./entrypoint.sh in /app), the dify user and group (uid and gid 1001), the default environment variables, and both the Next.js and the experimental vinext servers.
The differences are:
pnpm, yarn, or a package manager. The upstream build-only variables NODE_VERSION, PNPM_HOME, YARN_VERSION, and COMMIT_SHA are not set./usr/share/licenses/dify-web/LICENSE.dify-web-fips adds the FIPS-hardened OpenSSL configuration, so Node.js runs with the OpenSSL FIPS provider. Server-side cryptography and HTTPS connections, such as those to SERVER_CONSOLE_API_URL or the marketplace, use FIPS-approved algorithms and negotiate TLS 1.2 or 1.3 with FIPS-approved cipher suites only, so a TLS endpoint in front of the Dify API must offer one of them. To trust a private certificate authority, mount its certificate and set NODE_EXTRA_CA_CERTS to its path:
Check that Node.js runs in FIPS mode:
dify-web-fips is the browser console of Dify and needs a running Dify API service (langgenius/dify-api) with its PostgreSQL and Redis dependencies. Refer to the upstream Docker Compose deployment for the complete stack.
To use this image in the upstream Docker Compose deployment, set the image of the web service in docker/docker-compose.yaml to cgr.dev/ORGANIZATION/dify-web-fips:latest and start the stack as described upstream. Keep dify-web-fips and dify-api on the same Dify release, as the upstream Compose file does.
You can also run the console on its own and point it at an existing Dify API:
The entrypoint turns these variables into the NEXT_PUBLIC_* settings the console reads at runtime. Check that the console picked them up:
Open http://localhost:3000/install in a browser to create the first admin account once the API is reachable.
A common setup puts the console and the API behind one reverse proxy, as the upstream Compose deployment does with nginx: API paths such as /console/api, /api, /v1, and /files go to the API, and / goes to dify-web-fips. In that setup, leave the public API URLs empty so the browser calls the API on the same origin, and give the server-side renderer a direct address for the API. This example joins the Docker network dify that the proxy shares with an API container named dify-api:
The upstream web.defaults file lists the remaining console settings, such as MARKETPLACE_URL and TEXT_GENERATION_TIMEOUT_MS. Set EXPERIMENTAL_ENABLE_VINEXT=true to run the experimental vinext server instead of Next.js.
Chainguard's free tier of Starter container images are built with Wolfi, our minimal Linux undistro.
All other Chainguard Containers are built with Chainguard OS, Chainguard's minimal Linux operating system designed to produce container images that meet the requirements of a more secure software supply chain.
The main features of Chainguard Containers include:
For cases where you need container images with shells and package managers to build or debug, most Chainguard Containers come paired with a development, or -dev, variant.
In all other cases, including Chainguard Containers tagged as :latest or with a specific version number, the container images include only an open-source application and its runtime dependencies. These minimal container images typically do not contain a shell or package manager.
Although the -dev container image variants have similar security features as their more minimal versions, they include additional software that is typically not necessary in production environments. We recommend using multi-stage builds to copy artifacts from the -dev variant into a more minimal production image.
To improve security, Chainguard Containers include only essential dependencies. Need more packages? Chainguard customers can use Custom Assembly to add packages, either through the Console, chainctl, or API.
To use Custom Assembly in the Chainguard Console: navigate to the image you'd like to customize in your Organization's list of images, and click on the Customize image button at the top of the page.
Refer to our Chainguard Containers documentation on Chainguard Academy. Chainguard also offers VMs and Libraries — contact us for access.
This software listing is packaged by Chainguard. The trademarks set forth in this offering are owned by their respective companies, and use of them does not imply any affiliation, sponsorship, or endorsement by such companies.
Chainguard's container images contain software packages that are direct or transitive dependencies. The following licenses were found in the "latest" tag of this image:
Apache-2.0
ISC
MIT
For a complete list of licenses, please refer to this Image's SBOM.
Software license agreementChainguard Containers are SLSA Level 3 compliant with detailed metadata and documentation about how it was built. We generate build provenance and a Software Bill of Materials (SBOM) for each release, with complete visibility into the software supply chain.
SLSA compliance at ChainguardThis image helps reduce time and effort in establishing PCI DSS 4.0 compliance with low-to-no CVEs.
PCI DSS at ChainguardThis is a FIPS validated image for FedRAMP compliance.
This image is STIG hardened and scanned against the DISA General Purpose Operating System SRG with reports available.
Learn more about STIGsGet started with STIGs