59 lines
3.7 KiB
Markdown
59 lines
3.7 KiB
Markdown
---
|
|
title: 'Self-Host the Remote Cache'
|
|
description: 'Learn how to self-host Nx remote caching on AWS S3, Google Cloud, Azure, or shared drives, or build your own cache server for enhanced build performance in your monorepo.'
|
|
---
|
|
|
|
# Self-Host the Remote Cache
|
|
|
|
Nx offers different ways to enable self-hosted remote caching for your workspace that can be used starting with Nx version 19.8 and higher:
|
|
|
|
- **Using the official Nx packages** that come with ready-to-use adapters for AWS S3, GCP, Azure, and more.
|
|
- **Build your own cache server** by following the Nx Remote Caching OpenAPI spec.
|
|
|
|
{% callout type="note" title="Free managed remote cache with Nx Cloud" %}
|
|
|
|
Note, you can get started for free with a **fully managed remote caching powered by Nx Cloud**. It comes with a generous Hobby plan that is enough for most small teams. [Learn more here](/nx-cloud).
|
|
|
|
If you are an enterprise and **data privacy and security is a concern**, [reach out for an Enterprise trial](/enterprise/trial). It is fully SOC 2 type 1 and 2 compliant and comes with single-tenant, dedicated EU region hosting as well as on-premise.
|
|
|
|
**Are you an OSS project?** Nx Cloud is free for OSS. [Reach out here](/pricing#oss).
|
|
|
|
{% /callout %}
|
|
|
|
## Official Nx Self-Hosted Cache Packages
|
|
|
|
The official self-hosted cache packages are the easiest migration path if you've been using a community caching solution based on the old custom task runner API in the past. All of the packages are completely free but require an activation key. Getting a key is a fully automated and self-serving process that happens during the package installation.
|
|
|
|
The following remote cache adapters are available:
|
|
|
|
- [@nx/s3-cache](/nx-api/s3-cache): Cache is self-hosted on an Amazon S3 bucket
|
|
- [@nx/gcs-cache](/nx-api/gcs-cache): Cache is self-hosted on Google Cloud storage
|
|
- [@nx/azure-cache](/nx-api/azure-cache): Cache is self-hosted on Azure
|
|
- [@nx/shared-fs-cache](/nx-api/shared-fs-cache): Cache is self-hosted on a shared file system location
|
|
|
|
> Why require an activation key? It simply helps us know and support our users. If you prefer not to provide this information, you can also [build your own cache server](#build-your-own-caching-server).
|
|
|
|
### Migrating From Custom Tasks Runners
|
|
|
|
You might have used Nx's now deprecated custom task runners API in the following scenarios:
|
|
|
|
- to implement custom self-hosted caching: going forward, use the official self-hosted packages or alternatively [build your own caching server](#build-your-own-caching-server)
|
|
- to inject custom behavior before and after running tasks in Nx: for that purpose, we've built a new API exposing dedicated pre and post hooks.
|
|
|
|
To learn more about migrating from custom task runners, [please refer to this detailed guide](/deprecated/custom-tasks-runner).
|
|
|
|
## Build Your Own Caching Server
|
|
|
|
We have [published a new RFC](https://github.com/nrwl/nx/discussions/30548) detailing a custom self-hosted cache based on an OpenAPI specification. This will be available before Nx 21, ensuring a smooth migration path for those who are looking for full control.
|
|
|
|
## Why Switch to Nx Cloud
|
|
|
|
Nx Cloud is much more than just a remote caching solution; it provides a full platform for scaling monorepos on CI. It comes with:
|
|
|
|
- [fully managed remote caching with Nx Replay](/ci/features/remote-cache)
|
|
- [automated distribution of tasks across machines with Nx Agents](/ci/features/distribute-task-execution)
|
|
- [automated splitting of tasks (including e2e tests) with Nx Atomizer](/ci/features/split-e2e-tasks)
|
|
- [detection and re-running of flaky tasks](/ci/features/flaky-tasks)
|
|
|
|
{% call-to-action title="Connect to Nx Cloud" icon="nxcloud" description="Enable task distribution and Atomizer" url="/ci/intro/connect-to-nx-cloud" /%}
|