> For the complete documentation index, see [llms.txt](https://support.attackforge.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://support.attackforge.com/enterprise/self-hosted-deployment.md).

# Self-Hosted Deployment

AttackForge Enterprise Server installs and operates completely *air-gapped* on your hosted infrastructure.

## Applying Application Update

### Step 1: Perform a backup of your AttackForge environment

This may include performing a full VM snapshot of your AttackForge server, and any other associated infrastructure and components based on your deployment configuration.

### Step 2: Download the latest application update and copy it to your AttackForge Server

1. Open your AttackForge SharePoint project (or other agreed upon file transfer system) and download the following file:

`afe-server_202X-XX-XXTXX-XX.zip`

> **NOTE:** The X's will be replaced with the new version information

2. Copy this file to your AttackForge application folder on your AttackForge server e.g. `<PATH-TO-ATTACKFORGE>/afe/app`
3. Decrypt and extract the file using the previously supplied decryption key. You should see the following files after the ZIP extraction:

* `afe-server_202X-XX-XXTXX-XX.run`
* `config.json`

4. Replace the new `config.json` with the existing version in `<PATH-TO-ATTACKFORGE>/afe/app/custom`

### Step 3: Apply latest application update, build new images and launch new containers

1. Open a terminal on your AttackForge Server.
2. Navigate to the AttackForge application directory e.g. `<PATH-TO-ATTACKFORGE>/afe/app`
3. Make *afe-server\_202X-XX-XXTXX-XX.run* executable:

`chmod u+x afe-server_202X-XX-XXTXX-XX.run`

4. Run *afe-server\_202X-XX-XXTXX-XX.run* to build the new application source files:

`./afe-server_202X-XX-XXTXX-XX.run`

5. Run *rebuild.run* to build the new application images and launch new application containers:

`./rebuild.run`

6. App should now be updated to the latest version. You can confirm this by logging in and going to `Administration > About` and check the build date:

<figure><img src="https://372186556-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M8s1QY2Q6YTHB4a6DMu%2Fuploads%2FUPxUdgY7VjDeQFd8j9Hw%2FScreenshot%202026-09-05%20at%2010.02.46%E2%80%AFam.png?alt=media&amp;token=7b3eb3d2-2bb2-49db-87c9-76821ce8a9b2" alt=""><figcaption></figcaption></figure>

## Updating NodeJS

### Step 1: Perform a backup of your AttackForge environment

This may include performing a full VM snapshot of your AttackForge server, and any other associated infrastructure and components based on your deployment configuration.

### Step 2: Download the latest NodeJS image and copy it to your AttackForge Server

1. Open your AttackForge SharePoint project (or other agreed upon file transfer system) and download the following file:

`node_XX.XX.X-XXX.tar`

> **NOTE:** The X's will be replaced with the new version information - for example node\_24.21.0-bookworm.tar

2. Copy this file to your AttackForge application folder on your AttackForge server e.g. `<PATH-TO-ATTACKFORGE>/afe/app`

### Step 3: Load and configure the new NodeJS image

1. Open a terminal on your AttackForge Server.
2. Navigate to the AttackForge application directory e.g. `<PATH-TO-ATTACKFORGE>/afe/app`
3. Load the new image, ensuring to replace the `X`'s with the new image version details:

`docker load -i node_XX.XX.X-XXX`&#x20;

> **EXAMPLE:** `docker load -i node_24.21.0-bookworm`

2. Confirm the new image has loaded correctly in Docker. You should see the image showing:

`docker images | grep node`

3. Open the file `afe-server.Dockerfile` in a text editor. The file is located in `<PATH-TO-ATTACKFORGE>/afe/app/custom`.&#x20;
4. Update the following entry at the top/start of the file, ensuring to replace the `X`'s with the new image version details, then save the file:

`FROM node:XX.XX.X-XXX`

> **EXAMPLE:** `FROM node:24.21.0-bookworm`

### Step 4: Load and configure the new NodeJS image

1. Open a terminal on your AttackForge Server.
2. Navigate to the AttackForge application directory e.g. `<PATH-TO-ATTACKFORGE>/afe/app`
3. Run *afe-server\_202X-XX-XXTXX-XX.run* to build the new application source files with the new Docker config, ensuring to replace the `X`'s with the latest AttackForge version details in your app directory:

`./afe-server_202X-XX-XXTXX-XX.run`

4. Run *rebuild.run* to build the new application images and launch new application containers:

`./rebuild.run`

5. App should now be updated to the latest NodeJS version.

## Updating NGINX

### Step 1: Perform a backup of your AttackForge environment

This may include performing a full VM snapshot of your AttackForge server, and any other associated infrastructure and components based on your deployment configuration.

### Step 2: Download the latest NGINX image and copy it to your AttackForge Server

1. Open your AttackForge SharePoint project (or other agreed upon file transfer system) and download the following file:

`nginx_X.XX.X-XXX.tar`

> **NOTE:** The X's will be replaced with the new version information - for example nginx\_1.31.5-trixie.tar

2. Copy this file to your AttackForge application folder on your AttackForge server e.g. `<PATH-TO-ATTACKFORGE>/afe/app`

### Step 3: Load and configure the new NGINX image

1. Open a terminal on your AttackForge Server.
2. Navigate to the AttackForge application directory e.g. `<PATH-TO-ATTACKFORGE>/afe/app`
3. Load the new image, ensuring to replace the `X`'s with the new image version details:

`docker load -i nginx_X.XX.X-XXX`&#x20;

> **EXAMPLE:** `docker load -i nginx_1.31.5-trixie`

2. Confirm the new image has loaded correctly in Docker. You should see the image showing:

`docker images | grep nginx`

3. Open the file `afe-client.Dockerfile` in a text editor. The file is located in `<PATH-TO-ATTACKFORGE>/afe/app/custom`.&#x20;
4. Update the following entry at the top/start of the file, ensuring to replace the `X`'s with the new image version details, then save the file:

`FROM nginx:X.XX.X-XXX`

> **EXAMPLE:** `FROM nginx:1.31.5-trixie`

### Step 4: Load and configure the new NGINX image

1. Open a terminal on your AttackForge Server.
2. Navigate to the AttackForge application directory e.g. `<PATH-TO-ATTACKFORGE>/afe/app`
3. Run *afe-server\_202X-XX-XXTXX-XX.run* to build the new application source files with the new Docker config, ensuring to replace the `X`'s with the latest AttackForge version details in your app directory:

`./afe-server_202X-XX-XXTXX-XX.run`

4. Run *rebuild.run* to build the new application images and launch new application containers:

`./rebuild.run`

5. App should now be updated to the latest NGINX version.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://support.attackforge.com/enterprise/self-hosted-deployment.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
