diff --git a/docs/docs.json b/docs/docs.json
index 46f5aaf70..dda9adcfc 100644
--- a/docs/docs.json
+++ b/docs/docs.json
@@ -176,16 +176,14 @@
"pages": [
"documentation/platform/gateways/overview",
"documentation/platform/gateways/gateway-deployment",
- "documentation/platform/gateways/relay-deployment",
- "documentation/platform/gateways/security",
{
- "group": "Gateway (Deprecated)",
+ "group": "Relay Deployment",
"pages": [
- "documentation/platform/gateways-deprecated/overview",
- "documentation/platform/gateways-deprecated/gateway-security",
- "documentation/platform/gateways-deprecated/networking"
+ "documentation/platform/gateways/relay-deployment/overview",
+ "documentation/platform/gateways/relay-deployment/terraform"
]
- }
+ },
+ "documentation/platform/gateways/security"
]
}
]
diff --git a/docs/documentation/platform/gateways-deprecated/gateway-security.mdx b/docs/documentation/platform/gateways-deprecated/gateway-security.mdx
deleted file mode 100644
index 93a7f662f..000000000
--- a/docs/documentation/platform/gateways-deprecated/gateway-security.mdx
+++ /dev/null
@@ -1,91 +0,0 @@
----
-title: "Gateway Security Architecture"
-sidebarTitle: "Architecture"
-description: "Understand the security model and tenant isolation of Infisical's Gateway"
----
-
-# Gateway Security Architecture
-
-The Infisical Gateway enables Infisical Cloud to securely interact with private resources using mutual TLS authentication and private PKI (Public Key Infrastructure) system to ensure secure, isolated communication between multiple tenants.
-This document explains the internal security architecture and how tenant isolation is maintained.
-
-## Security Model Overview
-
-### Private PKI System
-Each organization (tenant) in Infisical has its own private PKI system consisting of:
-
-1. **Root CA**: The ultimate trust anchor for the organization
-2. **Intermediate CAs**:
- - Client CA: Issues certificates for cloud components
- - Gateway CA: Issues certificates for gateway instances
-
-This hierarchical structure ensures complete isolation between organizations as each has its own independent certificate chain.
-
-### Certificate Hierarchy
-```
-Root CA (Organization Specific)
-├── Client CA
-│ └── Client Certificates (Cloud Components)
-└── Gateway CA
- └── Gateway Certificates (Gateway Instances)
-```
-
-## Communication Security
-
-### 1. Gateway Registration
-When a gateway is first deployed:
-
-1. Establishes initial connection using machine identity token
-2. Allocates a relay address for communication
-3. Exchanges certificates through a secure handshake:
- - Gateway receives a unique certificate signed by organization's Gateway CA along with certificate chain for verification
-
-### 2. Mutual TLS Authentication
-All communication between gateway and cloud uses mutual TLS (mTLS):
-
-- **Gateway Authentication**:
- - Presents certificate signed by organization's Gateway CA
- - Certificate contains unique identifiers (Organization ID, Gateway ID)
- - Cloud validates complete certificate chain
-
-- **Cloud Authentication**:
- - Presents certificate signed by organization's Client CA
- - Certificate includes required organizational unit ("gateway-client")
- - Gateway validates certificate chain back to organization's root CA
-
-### 3. Relay Communication
-The relay system provides secure tunneling:
-
-1. **Connection Establishment**:
- - Uses QUIC protocol over UDP for efficient, secure communication
- - Provides built-in encryption, congestion control, and multiplexing
- - Enables faster connection establishment and reduced latency
- - Each organization's traffic is isolated using separate relay sessions
-
-2. **Traffic Isolation**:
- - Each gateway gets unique relay credentials
- - Traffic is end-to-end encrypted using QUIC's TLS 1.3
- - Organization's private keys never leave their environment
-
-## Tenant Isolation
-
-### Certificate-Based Isolation
-- Each organization has unique root CA and intermediate CAs
-- Certificates contain organization-specific identifiers
-- Cross-tenant communication is cryptographically impossible
-
-### Gateway-Project Mapping
-- Gateways are explicitly mapped to specific projects
-- Access controls enforce organization boundaries
-- Project-level permissions determine resource accessibility
-
-### Resource Access Control
-1. **Project Verification**:
- - Gateway verifies project membership
- - Validates organization ownership
- - Enforces project-level permissions
-
-2. **Resource Restrictions**:
- - Gateways only accept connections to approved resources
- - Each connection requires explicit project authorization
- - Resources remain private to their assigned organization
diff --git a/docs/documentation/platform/gateways-deprecated/images/gateway-highlevel-diagram.png b/docs/documentation/platform/gateways-deprecated/images/gateway-highlevel-diagram.png
deleted file mode 100644
index 5f942bcf0..000000000
Binary files a/docs/documentation/platform/gateways-deprecated/images/gateway-highlevel-diagram.png and /dev/null differ
diff --git a/docs/documentation/platform/gateways-deprecated/networking.mdx b/docs/documentation/platform/gateways-deprecated/networking.mdx
deleted file mode 100644
index 51a81ee42..000000000
--- a/docs/documentation/platform/gateways-deprecated/networking.mdx
+++ /dev/null
@@ -1,170 +0,0 @@
----
-title: "Networking"
-description: "Network configuration and firewall requirements for Infisical Gateway"
----
-
-The Infisical Gateway requires outbound network connectivity to establish secure communication with Infisical's relay infrastructure.
-This page outlines the required ports, protocols, and firewall configurations needed for optimal gateway usage.
-
-## Network Architecture
-
-The gateway uses a relay-based architecture to establish secure connections:
-
-1. **Gateway** connects outbound to **Relay Servers** using UDP/QUIC protocol
-2. **Relay Servers** facilitate secure communication between Gateway and Infisical Cloud
-3. All traffic is end-to-end encrypted using mutual TLS over QUIC
-
-## Required Network Connectivity
-
-### Outbound Connections (Required)
-
-The gateway requires the following outbound connectivity:
-
-| Protocol | Destination | Ports | Purpose |
-|----------|-------------|-------|---------|
-| UDP | Relay Servers | 49152-65535 | Allocated relay communication (TLS) |
-| TCP | app.infisical.com / eu.infisical.com | 443 | API communication and relay allocation |
-
-### Relay Server IP Addresses
-
-Your firewall must allow outbound connectivity to the following Infisical relay servers on dynamically allocated ports.
-
-
-
- ```
- 54.235.197.91:49152-65535
- 18.215.196.229:49152-65535
- 3.222.120.233:49152-65535
- 34.196.115.157:49152-65535
- ```
-
-
- ```
- 3.125.237.40:49152-65535
- 52.28.157.98:49152-65535
- 3.125.176.90:49152-65535
- ```
-
-
- Please contact your Infisical account manager for dedicated relay server IP addresses.
-
-
-
-
- These IP addresses are static and managed by Infisical. Any changes will be communicated with 60-day advance notice.
-
-
-## Protocol Details
-
-### QUIC over UDP
-
-The gateway uses QUIC (Quick UDP Internet Connections) for primary communication:
-
-- **Port 5349**: STUN/TURN over TLS (secure relay communication)
-- **Built-in features**: Connection migration, multiplexing, reduced latency
-- **Encryption**: TLS 1.3 with certificate pinning
-
-## Understanding Firewall Behavior with UDP
-
-Unlike TCP connections, UDP is a stateless protocol, and depending on your organization's firewall configuration, you may need to adjust network rules accordingly.
-When the gateway sends UDP packets to a relay server, the return responses need to be allowed back through the firewall.
-Modern firewalls handle this through "connection tracking" (also called "stateful inspection"), but the behavior can vary depending on your firewall configuration.
-
-
-### Connection Tracking
-
-Modern firewalls automatically track UDP connections and allow return responses. This is the preferred configuration as it:
-- Automatically handles return responses
-- Reduces firewall rule complexity
-- Avoids the need for manual IP whitelisting
-
-In the event that your firewall does not support connection tracking, you will need to whitelist the relay IPs to explicitly define return traffic manually.
-
-## Common Network Scenarios
-
-### Corporate Firewalls
-
-For corporate environments with strict egress filtering:
-
-1. **Whitelist relay IP addresses** (listed above)
-2. **Allow UDP port 5349** outbound
-3. **Configure connection tracking** for UDP return traffic
-4. **Allow ephemeral port range** 49152-65535 for return traffic if connection tracking is disabled
-
-### Cloud Environments (AWS/GCP/Azure)
-
-Configure security groups to allow:
-- **Outbound UDP** to relay IPs on port 5349
-- **Outbound HTTPS** to app.infisical.com/eu.infisical.com on port 443
-- **Inbound UDP** on ephemeral ports (if not using stateful rules)
-
-## Frequently Asked Questions
-
-
-
-The gateway is designed to handle network interruptions gracefully:
-
-- **Automatic reconnection**: The gateway will automatically attempt to reconnect to relay servers every 5 seconds if the connection is lost
-- **Connection retry logic**: Built-in retry mechanisms handle temporary network outages without manual intervention
-- **Multiple relay servers**: If one relay server is unavailable, the gateway can connect to alternative relay servers
-- **Persistent sessions**: Existing connections are maintained where possible during brief network interruptions
-- **Graceful degradation**: The gateway logs connection issues and continues attempting to restore connectivity
-
-No manual intervention is typically required during network interruptions.
-
-
-
-QUIC (Quick UDP Internet Connections) provides several advantages over traditional TCP for gateway communication:
-
-- **Faster connection establishment**: QUIC combines transport and security handshakes, reducing connection setup time
-- **Built-in encryption**: TLS 1.3 is integrated into the protocol, ensuring all traffic is encrypted by default
-- **Connection migration**: QUIC connections can survive IP address changes (useful for NAT rebinding)
-- **Reduced head-of-line blocking**: Multiple data streams can be multiplexed without blocking each other
-- **Better performance over unreliable networks**: Advanced congestion control and packet loss recovery
-- **Lower latency**: Optimized for real-time communication between gateway and cloud services
-
-While TCP is stateful and easier for firewalls to track, QUIC's performance benefits outweigh the additional firewall configuration requirements.
-
-
-
-No inbound ports need to be opened. The gateway only makes outbound connections:
-
-- **Outbound UDP** to relay servers on ports 49152-65535
-- **Outbound HTTPS** to Infisical API endpoints
-- **Return responses** are handled by connection tracking or explicit IP whitelisting
-
-This design maintains security by avoiding the need for inbound firewall rules that could expose your network to external threats.
-
-
-
-If your firewall has strict UDP restrictions:
-
-1. **Work with your network team** to allow outbound UDP to the specific relay IP addresses
-2. **Use explicit IP whitelisting** if connection tracking is disabled
-3. **Consider network policy exceptions** for the gateway host
-4. **Monitor firewall logs** to identify which specific rules are blocking traffic
-
-The gateway requires UDP connectivity to function - TCP-only configurations are not supported.
-
-
-
-The gateway connects to **one relay server at a time**:
-
-- **Single active connection**: Only one relay connection is established per gateway instance
-- **Automatic failover**: If the current relay becomes unavailable, the gateway will connect to an alternative relay
-- **Load distribution**: Different gateway instances may connect to different relay servers for load balancing
-- **No manual selection**: The Infisical API automatically assigns the optimal relay server based on availability and proximity
-
-You should whitelist all relay IP addresses to ensure proper failover functionality.
-
-
-No, relay servers cannot decrypt any traffic passing through them:
-
-- **End-to-end encryption**: All traffic between the gateway and Infisical Cloud is encrypted using mutual TLS with certificate pinning
-- **Relay acts as a tunnel**: The relay server only forwards encrypted packets - it has no access to encryption keys
-- **No data storage**: Relay servers do not store any traffic or network-identifiable information
-- **Certificate isolation**: Each organization has its own private PKI system, ensuring complete tenant isolation
-
-The relay infrastructure is designed as a secure forwarding mechanism, similar to a VPN tunnel, where the relay provider cannot see the contents of the traffic flowing through it.
-
-
diff --git a/docs/documentation/platform/gateways-deprecated/overview.mdx b/docs/documentation/platform/gateways-deprecated/overview.mdx
deleted file mode 100644
index f81809f7b..000000000
--- a/docs/documentation/platform/gateways-deprecated/overview.mdx
+++ /dev/null
@@ -1,352 +0,0 @@
----
-title: "Gateway"
-sidebarTitle: "Overview"
-description: "How to access private network resources from Infisical"
----
-
-
-
-The Infisical Gateway provides secure access to private resources within your network without needing direct inbound connections to your environment.
-This method keeps your resources fully protected from external access while enabling Infisical to securely interact with resources like databases.
-Common use cases include generating dynamic credentials or rotating credentials for private databases.
-
-
- Gateway is a paid feature available under the Enterprise Tier for Infisical
- Cloud users. Self-hosted Infisical users can contact
- [sales@infisical.com](mailto:sales@infisical.com) to purchase an enterprise
- license.
-
-
-## How It Works
-
-The Gateway serves as a secure intermediary that facilitates direct communication between the Infisical server and your private network.
-It’s a lightweight daemon packaged within the Infisical CLI, making it easy to deploy and manage. Once set up, the Gateway establishes a connection with a relay server, ensuring that all communication between Infisical and your Gateway is fully end-to-end encrypted.
-This setup guarantees that only the platform and your Gateway can decrypt the transmitted information, keeping communication with your resources secure, private and isolated.
-
-## Deployment
-
-The Infisical Gateway is seamlessly integrated into the Infisical CLI under the `gateway` command, making it simple to deploy and manage.
-You can install the Gateway in all the same ways you install the Infisical CLI—whether via npm, Docker, or a binary.
-For detailed installation instructions, refer to the Infisical [CLI Installation instructions](/cli/overview).
-
-To function, the Gateway must authenticate with Infisical. This requires a machine identity configured with the appropriate permissions to create and manage a Gateway.
-Once authenticated, the Gateway establishes a secure connection with Infisical to allow your private resources to be reachable.
-
-### Get started
-
-
-
- 1. Navigate to **Organization Access Control** in your Infisical dashboard.
- 2. Create a dedicated machine identity for your Gateway.
- 3. **Best Practice:** Assign a unique identity to each Gateway for better security and management.
- 
-
-
-
- You'll need to choose an authentication method to initiate communication with Infisical. View the available machine identity authentication methods [here](/documentation/platform/identities/machine-identities).
-
-
-
- Use the Infisical CLI to deploy the Gateway. You can run it directly or install it as a systemd service for production:
-
-
-
- For production deployments on Linux, install the Gateway as a systemd service:
- ```bash
- sudo infisical gateway install --token --domain
- sudo systemctl start infisical-gateway
- ```
- This will install and start the Gateway as a secure systemd service that:
- - Runs with restricted privileges:
- - Runs as root user (required for secure token management)
- - Restricted access to home directories
- - Private temporary directory
- - Automatically restarts on failure
- - Starts on system boot
- - Manages token and domain configuration securely in `/etc/infisical/gateway.conf`
-
-
- The install command requires:
- - Linux operating system
- - Root/sudo privileges
- - Systemd
-
-
-
-
-
- The Gateway can be installed via [Helm](https://helm.sh/). Helm is a package manager for Kubernetes that allows you to define, install, and upgrade Kubernetes applications.
-
- For production deployments on Kubernetes, install the Gateway using the Infisical Helm chart:
-
- ### Install the latest Helm Chart repository
- ```bash
- helm repo add infisical-helm-charts 'https://dl.cloudsmith.io/public/infisical/helm-charts/helm/charts/'
- ```
-
- ### Update the Helm Chart repository
- ```bash
- helm repo update
- ```
-
- ### Create a Kubernetes Secret containing gateway environment variables
-
- The gateway supports all identity authentication methods through the use of environment variables.
- The environment variables must be set in the `infisical-gateway-environment` Kubernetes secret.
-
-
- #### Supported authentication methods
-
-
-
- The Universal Auth method is a simple and secure way to authenticate with Infisical. It requires a client ID and a client secret to authenticate with Infisical.
-
-
-
-
- Your machine identity client ID.
-
-
- Your machine identity client secret.
-
-
- The authentication method to use. Must be `universal-auth` when using Universal Auth.
-
-
-
-
- ```bash
- kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_AUTH_METHOD=universal-auth --from-literal=INFISICAL_UNIVERSAL_AUTH_CLIENT_ID= --from-literal=INFISICAL_UNIVERSAL_AUTH_CLIENT_SECRET=
- ```
-
-
-
- The Native Kubernetes method is used to authenticate with Infisical when running in a Kubernetes environment. It requires a service account token to authenticate with Infisical.
-
-
-
-
- Your machine identity ID.
-
-
- Path to the Kubernetes service account token to use. Default: `/var/run/secrets/kubernetes.io/serviceaccount/token`.
-
-
- The authentication method to use. Must be `kubernetes` when using Native Kubernetes.
-
-
-
-
-
- ```bash
- kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_AUTH_METHOD=kubernetes --from-literal=INFISICAL_MACHINE_IDENTITY_ID=
- ```
-
-
-
- The Native Azure method is used to authenticate with Infisical when running in an Azure environment.
-
-
-
-
- Your machine identity ID.
-
-
- The authentication method to use. Must be `azure` when using Native Azure.
-
-
-
-
- ```bash
- kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_AUTH_METHOD=azure --from-literal=INFISICAL_MACHINE_IDENTITY_ID=
- ```
-
-
- The Native GCP ID Token method is used to authenticate with Infisical when running in a GCP environment.
-
-
-
-
- Your machine identity ID.
-
-
- The authentication method to use. Must be `gcp-id-token` when using Native GCP ID Token.
-
-
-
-
- ```bash
- kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_AUTH_METHOD=gcp-id-token --from-literal=INFISICAL_MACHINE_IDENTITY_ID=
- ```
-
-
-
- The GCP IAM method is used to authenticate with Infisical with a GCP service account key.
-
-
-
-
- Your machine identity ID.
-
-
- Path to your GCP service account key file _(Must be in JSON format!)_
-
-
- The authentication method to use. Must be `gcp-iam` when using GCP IAM.
-
-
-
-
- ```bash
- kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_AUTH_METHOD=gcp-iam --from-literal=INFISICAL_MACHINE_IDENTITY_ID= --from-literal=INFISICAL_GCP_SERVICE_ACCOUNT_KEY_FILE_PATH=
- ```
-
-
-
-
- The AWS IAM method is used to authenticate with Infisical with an AWS IAM role while running in an AWS environment like EC2, Lambda, etc.
-
-
-
-
- Your machine identity ID.
-
-
- The authentication method to use. Must be `aws-iam` when using Native AWS IAM.
-
-
-
-
- ```bash
- kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_AUTH_METHOD=aws-iam --from-literal=INFISICAL_MACHINE_IDENTITY_ID=
- ```
-
-
-
- The OIDC Auth method is used to authenticate with Infisical via identity tokens with OIDC.
-
-
-
-
- Your machine identity ID.
-
-
- The OIDC JWT from the identity provider.
-
-
- The authentication method to use. Must be `oidc-auth` when using OIDC Auth.
-
-
-
-
- ```bash
- kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_AUTH_METHOD=oidc-auth --from-literal=INFISICAL_MACHINE_IDENTITY_ID= --from-literal=INFISICAL_JWT=
- ```
-
-
-
- The JWT Auth method is used to authenticate with Infisical via a JWT token.
-
-
-
-
- The JWT token to use for authentication.
-
-
- Your machine identity ID.
-
-
- The authentication method to use. Must be `jwt-auth` when using JWT Auth.
-
-
-
-
- ```bash
- kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_AUTH_METHOD=jwt-auth --from-literal=INFISICAL_JWT= --from-literal=INFISICAL_MACHINE_IDENTITY_ID=
- ```
-
-
- You can use the `INFISICAL_TOKEN` environment variable to authenticate with Infisical with a raw machine identity access token.
-
-
-
-
- The machine identity access token to use for authentication.
-
-
-
-
- ```bash
- kubectl create secret generic infisical-gateway-environment --from-literal=INFISICAL_TOKEN=
- ```
-
-
-
-
- #### Other environment variables
-
-
-
- The API URL to use for the gateway. By default, `INFISICAL_API_URL` is set to `https://app.infisical.com`.
-
-
-
-
- ### Install the Infisical Gateway Helm Chart
- ```bash
- helm install infisical-gateway infisical-helm-charts/infisical-gateway
- ```
-
- ### Check the gateway logs
- After installing the gateway, you can check the logs to ensure it's running as expected.
-
- ```bash
- kubectl logs deployment/infisical-gateway
- ```
-
- You should see the following output which indicates the gateway is running as expected.
- ```bash
- $ kubectl logs deployment/infisical-gateway
- INF Provided relay port 5349. Using TLS
- INF Connected with relay
- INF 10.0.101.112:56735
- INF Starting relay connection health check
- INF Gateway started successfully
- INF New connection from: 10.0.1.8:34051
- INF Gateway is reachable by Infisical
- ```
-
-
-
-
- For development or testing, you can run the Gateway directly. Log in with your machine identity and start the Gateway in one command:
- ```bash
- infisical gateway --token $(infisical login --method=universal-auth --client-id=<> --client-secret=<> --plain)
- ```
-
- Alternatively, if you already have the token, use it directly with the `--token` flag:
- ```bash
- infisical gateway --token
- ```
-
- Or set it as an environment variable:
- ```bash
- export INFISICAL_TOKEN=
- infisical gateway
- ```
-
-
-
- For detailed information about the gateway command and its options, see the [gateway command documentation](/cli/commands/gateway).
-
-
- Ensure the deployed Gateway has network access to the private resources you intend to connect with Infisical.
-
-
-
-
-
- To confirm your Gateway is working, check the deployment status by looking for the message **"Gateway started successfully"** in the Gateway logs. This indicates the Gateway is running properly. Next, verify its registration by opening your Infisical dashboard, navigating to **Organization Access Control**, and selecting the **Gateways** tab. Your newly deployed Gateway should appear in the list.
- 
-
-
diff --git a/docs/documentation/platform/gateways/relay-deployment.mdx b/docs/documentation/platform/gateways/relay-deployment/overview.mdx
similarity index 95%
rename from docs/documentation/platform/gateways/relay-deployment.mdx
rename to docs/documentation/platform/gateways/relay-deployment/overview.mdx
index 767cf3732..ba7689196 100644
--- a/docs/documentation/platform/gateways/relay-deployment.mdx
+++ b/docs/documentation/platform/gateways/relay-deployment/overview.mdx
@@ -1,5 +1,5 @@
---
-title: "Relay Deployment"
+title: "Overview"
description: "How to deploy Infisical Relay Servers"
---
@@ -107,13 +107,8 @@ To successfully deploy an Infisical Relay for use, follow these steps in order.
-
- Install the Infisical CLI on the server where you plan to deploy the relay. The CLI is required for relay installation and management.
-
- See the [CLI Installation Guide](/cli/overview) for instructions.
-
- This server must have a static IP address or DNS name to be identifiable by the Infisical platform.
-
+
+ Provision a server or virtual machine where you plan to deploy the relay. This server must have a static IP address or DNS name to be identifiable by the Infisical platform.
@@ -133,6 +128,8 @@ To successfully deploy an Infisical Relay for use, follow these steps in order.
+ You can deploy the Infisical Relay in various ways. This guide provides a manual setup example using the Infisical CLI. For an infrastructure-as-code approach, see our [Terraform guide](/documentation/platform/gateways/relay-deployment/terraform).
+
The Infisical CLI is used to install and start the relay in your chosen environment. The CLI provides commands for both production and development scenarios, and supports a variety of options/flags to configure your deployment.
To view all available flags and equivalent environment variables for relay deployment, see the [Relay CLI Command Reference](/cli/commands/relay).
diff --git a/docs/documentation/platform/gateways/relay-deployment/terraform.mdx b/docs/documentation/platform/gateways/relay-deployment/terraform.mdx
new file mode 100644
index 000000000..e89871cd9
--- /dev/null
+++ b/docs/documentation/platform/gateways/relay-deployment/terraform.mdx
@@ -0,0 +1,151 @@
+---
+title: "Terraform"
+description: "How to deploy Infisical Relay Servers using Terraform"
+---
+
+This guide walks you through deploying an Infisical Relay server using Terraform. Select a provider below for specific instructions.
+
+
+
+The provided configuration automates the creation of the EC2 instance, sets up the necessary security group rules, and uses a startup script to install and configure the Infisical Relay service.
+
+### Prerequisites
+
+Before you start, make sure you have the following:
+- An AWS account with permissions to create EC2 instances, Security Groups, and Elastic IPs.
+- An existing VPC and Subnet ID in your desired AWS region.
+- The AMI ID for your chosen OS (this guide uses an Ubuntu 22.04 LTS AMI).
+- Credentials for the Infisical Relay to authenticate with your Infisical instance. This guide uses a Machine Identity token, but other methods are available. You can find a full list of authentication options [here](/cli/commands/relay#available-authentication-methods).
+
+### Terraform Configuration
+
+Here is the complete Terraform configuration to deploy the Infisical Relay.
+
+```terraform
+terraform {
+ required_providers {
+ aws = {
+ source = "hashicorp/aws"
+ version = "~> 5.0"
+ }
+ }
+}
+
+provider "aws" {
+ region = "us-west-2" # Change to your desired AWS region
+}
+
+# Security Group for the Infisical Relay instance
+resource "aws_security_group" "infisical_relay_sg" {
+ name = "infisical-relay-sg"
+ description = "Allows inbound traffic for Infisical Relay and SSH"
+ vpc_id = "vpc-0c71f9c5709d88d18" # Change to your VPC ID
+
+ # Inbound: Allows the Infisical platform to securely communicate with the Relay server.
+ ingress {
+ from_port = 8443
+ to_port = 8443
+ protocol = "tcp"
+ cidr_blocks = ["0.0.0.0/0"]
+ }
+
+ # Inbound: Allows Infisical Gateway to securely communicate via the Relay.
+ ingress {
+ from_port = 2222
+ to_port = 2222
+ protocol = "tcp"
+ cidr_blocks = ["0.0.0.0/0"]
+ }
+
+ # Inbound: Allows secure shell (SSH) access for administration.
+ ingress {
+ from_port = 22
+ to_port = 22
+ protocol = "tcp"
+ cidr_blocks = ["0.0.0.0/0"] # Restrict this to your IP in production
+ }
+
+ # Outbound: Allows the Relay server to make necessary outbound connections to the Infisical platform.
+ egress {
+ from_port = 0
+ to_port = 0
+ protocol = "-1"
+ cidr_blocks = ["0.0.0.0/0"]
+ }
+
+ tags = {
+ Name = "infisical-relay-sg"
+ }
+}
+
+# Elastic IP for a static public IP address
+resource "aws_eip" "infisical_relay_eip" {
+ tags = {
+ Name = "infisical-relay-eip"
+ }
+}
+
+# EC2 instance to run Infisical Relay
+module "infisical_relay_instance" {
+ source = "terraform-aws-modules/ec2-instance/aws"
+ version = "~> 5.6"
+
+ name = "infisical-relay-example"
+ ami = "ami-065778886ef8ec7c8" # Change to your desired AMI ID
+ instance_type = "t3.micro"
+ subnet_id = "subnet-0fd2337a1c604a494" # Change to your Subnet ID
+
+ vpc_security_group_ids = [aws_security_group.infisical_relay_sg.id]
+ associate_public_ip_address = false # We are using an Elastic IP instead
+
+ user_data = <<-EOT
+ #!/bin/bash
+ set -e
+ # Install Infisical CLI
+ curl -1sLf 'https://artifacts-cli.infisical.com/setup.deb.sh' | bash
+ apt-get update && apt-get install -y infisical
+
+ # Install the relay as a systemd service.
+ # This example uses a Machine Identity token for authentication via the INFISICAL_TOKEN environment variable.
+ #
+ # Note: For production environments, you might consider fetching the token from AWS Parameter Store or AWS Secrets Manager.
+ export INFISICAL_TOKEN="your-machine-identity-token"
+ sudo -E infisical relay systemd install \
+ --name "my-relay-example" \
+ --domain "https://app.infisical.com" \
+ --host "${aws_eip.infisical_relay_eip.public_ip}"
+
+ # Start and enable the service to run on boot
+ sudo systemctl start infisical-relay
+ sudo systemctl enable infisical-relay
+ EOT
+}
+
+# Associate the Elastic IP with the EC2 instance
+resource "aws_eip_association" "eip_assoc" {
+ instance_id = module.infisical_relay_instance.id
+ allocation_id = aws_eip.infisical_relay_eip.id
+}
+```
+
+
+The provided security group rules are open to the internet (`0.0.0.0/0`) for simplicity. In a production environment, you should restrict the `cidr_blocks` to known IP addresses for enhanced security, especially for the SSH port (22).
+
+
+### How to Deploy
+
+1. **Save the configuration:** Save the code above to a file named `main.tf`.
+2. **Customize values:** Update the placeholder values in `main.tf` to match your AWS environment and Infisical credentials. You'll need to replace:
+ - `region` in the `provider` block.
+ - `vpc_id` in the `aws_security_group` resource.
+ - `ami` and `subnet_id` in the `infisical_relay_instance` module.
+ - The `INFISICAL_TOKEN` environment variable in the `user_data` script (e.g., `export INFISICAL_TOKEN="your-machine-identity-token"`).
+ - The `--domain` in the `user_data` script if you are self-hosting Infisical.
+3. **Apply the configuration:** Run the following Terraform commands in your terminal:
+ ```bash
+ terraform init
+ terraform plan
+ terraform apply
+ ```
+
+
diff --git a/docs/images/platform/gateways/assign-project.png b/docs/images/platform/gateways/assign-project.png
deleted file mode 100644
index a1ff61909..000000000
Binary files a/docs/images/platform/gateways/assign-project.png and /dev/null differ
diff --git a/docs/images/platform/gateways/create-identity-for-gateway.png b/docs/images/platform/gateways/create-identity-for-gateway.png
deleted file mode 100644
index d7ef6b02a..000000000
Binary files a/docs/images/platform/gateways/create-identity-for-gateway.png and /dev/null differ
diff --git a/docs/images/platform/gateways/dynamic-secret.png b/docs/images/platform/gateways/dynamic-secret.png
deleted file mode 100644
index bf742413e..000000000
Binary files a/docs/images/platform/gateways/dynamic-secret.png and /dev/null differ
diff --git a/docs/images/platform/gateways/edit-gateway.png b/docs/images/platform/gateways/edit-gateway.png
deleted file mode 100644
index 04ef2a7d2..000000000
Binary files a/docs/images/platform/gateways/edit-gateway.png and /dev/null differ
diff --git a/docs/images/platform/gateways/gateway-list.png b/docs/images/platform/gateways/gateway-list.png
deleted file mode 100644
index 11f8206fe..000000000
Binary files a/docs/images/platform/gateways/gateway-list.png and /dev/null differ