@codedazur/cdk-next-app
TypeScript icon, indicating that this package has built-in type declarations

1.1.0 • Public • Published

NextApp

The NextApp CDK construct deploys a standalone Next.js build to a load balanced Fargate service on AWS.

It automatically mounts the ~/.npmrc file as a build secret for installation of private NPM packages.

Prerequisites

Next.js Configuration

Your next.config.js file needs to be configured for standalone output.

// next.config.js
// ...
const nextConfig = {
  // ...
  output: "standalone",
};
// ...

Docker

In order to use this construct, your Next.js application needs to be configured for Docker deployments. See the official documentation for more information.

Example

Standard Repository

For a non-monorepo build, simply provide the path to the directory that contains your Dockerfile.

new NextApp(this, "NextApp", {
  source: "../next",
});

Monorepo

For monorepo builds, set the build context to the root of your monorepo, and provide the path to your Next.js module's Dockerfile.

new NextApp(this, "NextApp", {
  source: {
    directory: "../../",
    file: "apps/next/Dockerfile",
  },
});

Arguments and Secrets

The NextApp is based on the DockerCluster construct and supports all of its features related to Docker's build arguments and secrets.

These arguments and secrets need to be handled appropriately by your Dockerfile in order for them to have any effect.

import { DockerBuildSecret } from "aws-cdk-lib";

new NextApp(this, "NextApp", {
  source: {
    // ...
    arguments: {
      MY_BUILD_ARGUMENT: process.env.MY_BUILD_ARGUMENT,
    },
    secrets: {
      myBuildSecret: new DockerBuildSecret.fromEnvironment("MY_BUILD_SECRET"),
    },
  },
});

Scaling

The NextApp is based on the DockerCluster construct and supports all of its features for vertical scaling and horizontal (auto-)scaling.

new NextApp(this, "NextApp", {
  // ...
  service: {
    cpu: 1024,
    memory: 4096,
    tasks: 3,
  },
});
new NextApp(this, "NextApp", {
  // ...
  service: {
    // ...
    tasks: {
      minimum: 1,
      maximum: 5,
    },
  },
});

Readme

Keywords

none

Package Sidebar

Install

npm i @codedazur/cdk-next-app

Weekly Downloads

76

Version

1.1.0

License

MIT

Unpacked Size

19.1 kB

Total Files

9

Last publish

Collaborators

  • thomascodedazur
  • lucasgilarranz
  • thijsdaniels.codedazur
  • nadinevanleeuwen.codedazur
  • timgoosens.codedazur
  • development.codedazur
  • timstelling.codedazur
  • rickootes.codedazur
  • markootes.codedazur
  • rickdazur
  • sirlolcat
  • gijz-triple
  • tristan89
  • chanelzm
  • renenieuwenhuijs
  • marenosnabrug
  • krisztinakovari
  • rickbuter
  • silvanb
  • somaharmath
  • michalstudencki
  • lynnwolters99