Skip to content

bpauli/devcontainer-aem

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AEM Devcontainer

Run AEM as a Cloud Service locally inside a VS Code devcontainer using Docker-in-Docker.

Features

  • One-command setupcurl | bash adds everything to an existing project (no Node.js required)
  • Interactive wizard — numbered menus and colored output
  • Agentic coding — optional install of Claude Code or Codex inside the devcontainer
  • Configurable ports — choose the AEM author port and JVM debug port
  • Docker-in-Docker — AEM runs in its own container with a persistent crx-quickstart volume
  • Maven included — full Maven build toolchain available out of the box

Prerequisites

Quick Install

Add the AEM devcontainer to an existing project:

curl -fsSL https://raw.githubusercontent.com/bpauli/devcontainer-aem/main/install.sh | bash

Or download and inspect first:

curl -fsSL https://raw.githubusercontent.com/bpauli/devcontainer-aem/main/install.sh -o install.sh
bash install.sh

The wizard will guide you through:

  1. Coding agent — pick Claude Code, Codex, or skip
  2. AEM author port — defaults to 4502
  3. JVM debug port — defaults to 5005

Then follow the steps below starting from Download the AEM SDK.

Setup

1. Download the AEM SDK

Download the latest AEM SDK from the Software Distribution portal (requires Adobe ID with AEM as a Cloud Service access).

Navigate to AEM as a Cloud Service and download the latest AEM SDK zip file.

See Set up Local AEM Runtime for details.

2. Extract and rename the quickstart JAR

Unzip the downloaded SDK zip:

unzip aem-sdk-2026.2.24288.20260204T121510Z-260100.zip

This produces a quickstart JAR like aem-sdk-quickstart-2026.2.24288.20260204T121510Z-260100.jar. Rename it:

mv aem-sdk-quickstart-*.jar aem-sdk-quickstart.jar

The file aem-sdk-quickstart.jar must be in the project root before building.

3. Configure environment

cp .env.example .env

Edit .env if needed (defaults work for most setups).

4. Build the Docker image

./build.sh

5. Open in VS Code

Open this folder in VS Code and reopen in the devcontainer when prompted. AEM will start automatically and be available at http://localhost:4502 (or the port you chose during setup).

Usage

Start AEM

AEM starts automatically when the devcontainer opens. To restart manually:

.devcontainer/start-aem.sh

Stop AEM

.devcontainer/stop-aem.sh

To stop and clear all AEM data:

.devcontainer/stop-aem.sh --clear

Logs

AEM logs are available at .devcontainer/crx-quickstart/logs/ via the volume mount.

JVM Remote Debugging

JVM remote debugging is always enabled. Attach your debugger to localhost:5005 (or the port you chose during setup). The JVM starts with suspend=n, so AEM does not wait for a debugger to connect.

Agentic Coding

The installer can pre-configure the devcontainer to include an AI coding agent:

Agent What gets installed
Claude Code npm install -g @anthropic-ai/claude-code — Anthropic's CLI for autonomous coding
Codex npm install -g @openai/codex — OpenAI's coding agent CLI

The selected agent is installed automatically via postCreateCommand when the devcontainer starts. You will need to provide your own API key inside the container.

License

MIT

About

Docker-based local AEM development environment

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors