Skip to content
Product Documentation

What does the PageBuilder local development stack look like?

Why Docker?

PageBuilder infrastructure consists of multiple micro services within Arc XP infrastructure and Docker helps to simulate this environment very close to how client sites run on Arc XP in order to give client developers a near-production development environment.

Why so many containers?

When running PageBuilder locally, fusion-cli orchestrates multiple Docker containers to simulate the PageBuilder stack locally. All containers are currently considered required to run Engine locally.

We acknowledge that not all containers may be needed for certain use cases (i.e: if client developers are running Engine to test a page’s render end to end, they perhaps don’t need to wait for PageBuilder Editor UI to start). We’re looking to provide more ways to customize which containers run for more optimized system resource usage and runtime speeds.

Which containers run locally?

Docker containers run on local development environments when running the npx fusion start command:

Container NameLogged out to CLI by defaultWhat does this container do?
fusion-engineYESRenders your website
fusion-webpackYESCompiles customer components
fusion-resolverNOTranslates request URI to a PageBuilder page/template with content
fusion-originNOApplication proxy to route local HTTP requests to the correct container
fusion-content-cacheNOmemcached instance that caches content
fusion-cache-proxyNOmemcached interface for fusion-engine
fusion-dataNODB persistence layer which stores Pages, Templates, Resolvers, and edits to pages
fusion-adminNOAllows PageBuilder Editor to run locally
fusion-cli-apiNOEnables Arc integrations (such as Photo, Video, and Story search) within PageBuilder Editor

Container Logs in CLI output

Starting with Engine 4.0.5 release, PageBuilder team optimized log output of Engine when running locally, turning off logs from the containers that are truly internal, and are not relevant or helpful for client-developers to see. Containers above with logging enabled by default to command line output will print all logs produced from these containers.

To enable all logs from all containers, add --verbose parameter when running fusion start.