Installation

AIM can be deployed in multiple ways depending on your infrastructure requirements. Choose the deployment method that best fits your needs.

System Requirements

Minimum Requirements

  • CPU: 2 vCPUs (x86_64 or ARM64)
  • Memory: 4 GB RAM
  • Storage: 20 GB SSD
  • Database: PostgreSQL 14+
  • Cache: Redis 6+ (optional)

Production Deployment: For production environments, we recommend using our Docker Compose or Kubernetes deployment methods with at least 8 GB RAM and 4 vCPUs.

Docker Compose (Recommended)

The easiest way to get started with AIM is using Docker Compose. This method includes all required services pre-configured.

1. Clone the repository
git clone https://github.com/opena2a-org/agent-identity-management.git
cd agent-identity-management
2. Configure environment variables
cp .env.example .env
# Edit .env with your configuration
nano .env
3. Start the services
docker compose up -d

AIM will be available at http://localhost:3001

Kubernetes

For production deployments at scale, we provide Kubernetes manifests and Helm charts.

Using Helm
# Add the OpenA2A Helm repository
helm repo add opena2a https://charts.opena2a.org
helm repo update

# Install AIM
helm install aim opena2a/aim \
  --namespace aim \
  --create-namespace \
  --values values.yaml
Using kubectl
# Apply the manifests
kubectl apply -f infrastructure/k8s/namespace.yaml
kubectl apply -f infrastructure/k8s/

Manual Installation

For development or custom deployments, you can install AIM components manually.

Backend (Go)

# Install Go 1.23+
cd apps/backend

# Install dependencies
go mod download

# Run migrations
go run cmd/migrate/main.go up

# Start the server
go run cmd/server/main.go

Frontend (Next.js)

# Install Node.js 18+
cd apps/web

# Install dependencies
npm install

# Build for production
npm run build

# Start the server
npm start

Configuration

Required Environment Variables

# Database
POSTGRES_HOST=localhost
POSTGRES_PORT=5432
POSTGRES_USER=aim_user
POSTGRES_PASSWORD=secure_password
POSTGRES_DB=aim

# Redis (optional but recommended)
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_PASSWORD=

# Security
JWT_SECRET=your-secret-key-min-32-chars
ENCRYPTION_KEY=your-encryption-key

# API
API_PORT=8080
API_HOST=0.0.0.0

# Frontend
NEXT_PUBLIC_API_URL=http://localhost:8080

Verify Installation

After installation, verify that AIM is running correctly:

Health Check
# Check API health
curl http://localhost:8080/health

# Expected response:
{
  "status": "healthy",
  "version": "1.0.0",
  "services": {
    "database": "connected",
    "redis": "connected"
  }
}

Success! If you see the healthy status, AIM is installed and running correctly. You can now proceed to Quick Start to register your first agent.

Troubleshooting

Database Connection Failed

Ensure PostgreSQL is running and the connection details are correct.

psql -h localhost -U aim_user -d aim

Port Already in Use

Check if another service is using the same port:

lsof -i :8080  # Check API port lsof -i :3001  # Check frontend port

Docker Compose Issues

View logs to diagnose issues:

docker compose logs -f