--- title: "Akamai deployment | Darwinium" slug: "akamai-deployment" description: "Deploy Darwinium with Akamai and Linode, configure the integration, and prepare the infrastructure required for edge processing." updated: 2026-10-22T06:50:55Z published: 2026-10-22T06:50:55Z canonical: "docs.darwinium.com/akamai-deployment" --- > ## Documentation Index > Fetch the complete documentation index at: https://docs.darwinium.com/llms.txt > Use this file to discover all available pages before exploring further. # Akamai deployment ## Introduction Darwinium can be configured to proxy web traffic at any Akamai Core Data Site. This enables you to perform decisioning at the edge from within the Akamai network. Configuring Akamai requires an administrator with access to the Akamai Control Center and the ability to: - Use Property Manager for your site. - Create an Akamai Connected Cloud (Linode) personal Access token. This guide assumes familiarity with your organization's Akamai configuration. ## 1. Enable Akamai Connected Cloud (Linode) If you are not using this service already, contact your Akamai account manager in order to set up a Linode account with integrated billing with your existing account. ## 2. Generate a Linode Personal Access Token Darwinium requires a single Linode Personal Access Token (PAT) which will be used to configure Linode Kubernetes Engine (LKE) clusters and associated resources. Your PAT needs the following permissions: Go to [Profile -> API Tokens -> Create a Personal Access Token](https://cloud.linode.com/profile/tokens) Please note that the PAT needs permissions for Linodes, Firewalls and NodeBalancers as Darwinium will configure recommended firewall rules for your installation. Expiry All configuration actions performed on your Linode account by Darwinium use the PAT (including access to clusters, as we do not store your LKE clusters' kubeconfig files). This includes installing, reconfiguring and deleting clusters, as well as upgrades to Darwinium software. However, it does not include updates to journeys deployed to your Darwinium installation, which are automatically delivered securely to your clusters. You may wish to set an expiry on the Linode PAT provided to Darwinium, but you need to ensure that the PAT provided is valid when you perform any action such as those above that needs access to your Linode account. For more information about Akamai Linode token, please check [their docs](https://www.linode.com/docs/products/tools/api/guides/manage-api-tokens/). ### Permissions - Read/Write: Kubernetes - Read/Write: Linodes - Read/Write: Firewalls - Read/Write: NodeBalancers ![](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/Linode%20Stuff.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) Resources managed by Darwinium Darwinium will create LKE clusters with the defined minimum and maximum autoscaling configuration corresponding to your cluster definitions. All Darwinium clusters have labels prefixed with dwn- and a tag prefixed with dwn-managed- . The LKE platform automatically manages Linodes that are part of each cluster. Darwinium will also create a single NodeBalancer for traffic flowing to each LKE cluster, also with a tag prefixed with dwn-managed- . Two Cloud Firewalls will be created. One will be assigned to the Linodes comprising your LKE clusters. This is configured with Linode recommended rules for LKE nodes and should not be changed. The second will be assigned to the NodeBalancers for your LKE clusters. You can configure inbound rules on this second firewall to restrict inbound traffic to your Darwinium installation. When a cluster is deleted, the corresponding NodeBalancer will also be deleted. When all clusters are deleted, the Cloud Firewalls will also be deleted. Please do not edit the labels or any existing tags on Darwinium managed resources in Linode. ## 3. Configure Akamai Deployment Target in Darwinium In Darwinium portal, go to Setting and then Edge Deployment. ### Add a Target ![](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/Screenshot%202024-03-28%20at%2010.29.56.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) Click `+ Add Target` and we can set the Target Name (please note, you cannot rename Akamai targets once created) and Choose Akamai for the CDN vendor. `Linode Personal Access Token` is mandatory to let Aphex can operate with Akamai Linode API. ### Set Linode Personal Access Token ![Screenshot 2024-03-28 at 10.47.14.png](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/Screenshot%202024-03-28%20at%2010.47.14.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) Enter Linode Personal Access Token into the labelled box Click “Update user secrets”, it’ll create basic information that is necessary for next steps as following. Please confirm the creation of the new target by clicking the "Update" on the bottom right of the window. ### Configure Valid origins - linode Darwinium works as a reverse proxy inside Akamai Linode, in contrast to functioning as an edge worker on other platforms. Therefore, it uniquely needs to know where to forward requests upstream. There are various domain names used in Akamai Linode - Edge domain: This is the domain name of your website as visible to an end-user's website, which is served through Akamai edge. In HTTP terms: the host header. This is used to choose which origin to forward a request to. Alternatively you may use "Match origin from header" to choose a origin based on a different header. - Origin domain: this is your origin domain that Akamai currently forwards requests to, Darwinium will forward requests to this domain. - Sni Name: Enter the values that Akamai Linode should look for in the origin certificate's Common Name or Subject Alternate Name fields. Will default to origin name if nothing supplied. - If HTTP Response code is not being observed on events in Darwinium Portal, is possible Sni name specified here does not match the origin. - Probe Origin: optionally ensure that this origin is reachable before joining the cluster. This is particularly relevant if IP whitelisting is used. Please “Save changes” after you add or remove any origins. ![Image](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/origin(2).png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) [Embedded object](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/Group%201.svg?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) ### Configure Manage Clusters - linode You can create or remove Akamai Linode clusters in the “Manage Clusters” section. ![manage_clusters.png](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/manage_clusters.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) To create a cluster, we can “Add Cluster” and fill some basic information. ![Screenshot 2024-03-28 at 10.51.32.png](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/Screenshot%202024-03-28%20at%2010.51.32.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) - It is possible to create multiple clusters across different region, with each cluster, we suggest minimal nodes >= 3 to take full advantage of High Availability - Darwinium will configure auto-scale according to current load till the max nodes be used, so setting a relatively big enough Max nodes will make sure continued service. - The standard node type Darwinium supporting g6-dedicated-2 have 2 CPUs and 4G memory - Each node can be expected to comfortably handle at least 80TPS IP Whitelisting If your origin uses IP whitelisting, configure max and min nodes as the same, to prevent node recycling. To remove a cluster, simply click the remove button next to the clusters. ![remove.png](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/remove.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) The clusters you created or removed are not reflected on your Akamai yet. You need to click “Sync Cluster Changes” to sync the changes to your Akamai. If you change your mind, you can close the window now to discard the changes. Once you start syncing, we will: Create/Delete Linode clusters on your Akamai Install Darwinium services to your Linodes You will see messages on the screen or pop-up notifications about the current progress. You can leave the entire page anytime and come back later, the progress will resume. ![please wait.png](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/please%20wait.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) You may encounter errors. To protect your privacy, we don’t show the entire stack trace of the error, instead, we show you an error message with a UUID. Please contact support with that UUID so we can look into the details and help you out. Once the Linode cluster created and Darwinium service deployment are both completed, you’ll see a success notification. Once the “Load balancer” of the cluster has value, the cluster will now be running and ready to process requests. The Load Balancer Hostname is where a request that that needs to be processed via Darwinium should be forwarded to. ![ready to process.png](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/ready%20to%20process.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) At this point, we recommend you set up a simple journey and step with a **trigger** configured on a URL within your website in order to test the later configuration. See [Creating and Editing Steps](/v1/docs/creating-and-editing-steps) for information. ## 4. Deployment ### Update journeys.yaml Go to the Workflows tab, add the information of the new target to the journeys.yaml of the node, and configure the journeys. Once you’re done with the editing, commit and push. Use Host Alias A host alias should be used here instead of hard coded domain. They may be defined in: Node Settings > Git/Journey settings. The **alias** (eg. 'domain') is then used for the step Host in the journey file and in the valid_host_list of journeys.yaml ![update journeys yaml.png](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/update%20journeys%20yaml.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) ### Node Deployment Go back to the Admin - Nodes page, enter node deployment: ![node deployment.png](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/node%20deployment.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) You should see a build you just pushed, hit Deploy to start deploying your node with the latest journeys.ymal. Once the deployment is completed with the message “Deployment Succeeded”, your mission on the Darwinium side is all completed and the node is ready to use. ![hit deploy.png](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/hit%20deploy.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) ![deployment succeeded.png](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/deployment%20succeeded.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) ## 5. Configure Akamai Edge Open Property Manager in **Akamai Control Centre** (Go to **CDN** -> **Properties**, select appropriate Property Group and Property for your edge hostname then select an appropriate version). ### Origin Redirect Rule Create a new **Blank Rule Template** ![blank rule template](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/blank%20rule%20template.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) You may name this rule whatever you want. Inside this template add a condition to route appropriate paths to Darwinium. These paths should match the "Trigger" section of the proxy steps in your Darwinium Journey (see [Creating and Editing Steps](/v1/docs/creating-and-editing-steps)). ![match criteria](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/match%20criteria.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) Next configure your new Cluster Load Balancer Hostname as the origin for these paths. Select **+ Behavior** -> **Standard Property Behaviour** -> **Origin** to add an origin behaviour. For certificate matching, you must use your Node Subdomain from Darwinium Portal Admin -> Nodes as the Common Name to match against. Assuming Step 3 is complete, you may use Add Certificate -> Retrieve from Hostname and enter your Cluster Load Balancer Hostname to automatically pin against the correct certificate. ![origin](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/origin.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) Finally, add a behaviour to disable caching for these paths. Select **+ Behavior** -> **Standard Property Behaviour** -> **Caching**. Then select Bypass Cache. ![caching.png](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/caching.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) ### Testing Deploy your new properties to Akamai's Staging network. Follow these [these instrucitons](https://techdocs.akamai.com/api-acceleration/docs/test-stage) to test your site in a staging environment. After visiting a link with both a Darwinium Step and an entry in your rule's Criteria, visit **Investigations** -> **Query** in the Darwinium portal. Press "search" without a condition to show all events. You should see your new event displayed. ### Congratulations When your event displays correctly and your site runs as expected, deploy your edge properties to production. Congratulations, you have successfully set up Darwinium on your Akamai website. ## Request/Response Sequence Diagram The below shows the Architecture diagram for the request and response to/from an end user. ![Image](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/darwinium_akamai_request_flow_v8.svg?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D) The Darwinium call(s) will happen async by default, and will only be syncronous if the journey configuration in Darwinium Portal has set dependencies to wait for. Those are set when needing to enrich headers with Darwinium intelligence into the origin, or intervening on the requst/response based on Darwinium risk assessment. See [Understanding Dependencies](/v1/docs/understanding-dependencies) ## Further Configuration: #### Monitoring: You may wish to monitor the environment to ensure full levels of service. See [Akamai Deployment - Monitoring](/v1/docs/akamai-deployment-monitoring) #### Health Check Paths: In order to provide reliability in the unlikely event that Darwinium's proxy is unavailabile, we recommend that health checks are used to provide a fail-over path bypassing Darwinium, directly to the origin. A health check is always available at ***/__darwinium/cluster_health_check***, in addition, you may specify paths to duplicate this health check, which is available under Deployment Config -> Health Check Paths. ![Image](https://cdn.document360.io/db6f7316-640d-4099-b5a1-b01b4dbd17fc/Images/Documentation/Screenshot%202026-09-02%20at%204.56.25%E2%80%AFpm.png?sv=2026-02-06&spr=https&st=2026-11-02T10%3A41%3A03Z&se=2026-11-02T11%3A41%3A03Z&sr=c&sp=r&sig=HC%2BFfXSKmbxp5nOh2uMykq%2BvDNbFcnlrOsDxDa0%2BRWg%3D)