Installation
This guide walks you through installing Alien Giraffe and getting it ready to manage secure access to your data sources.
System Requirements
Section titled “System Requirements”Minimum Requirements:
- CPU: 2 cores
- RAM: 4 GB
- Storage: 20 GB
- Operating System: Linux, macOS, or Windows with WSL2
Recommended for Production:
- CPU: 4+ cores
- RAM: 8+ GB
- Storage: 50+ GB SSD
- Operating System: Linux (Ubuntu 20.04+, RHEL 8+, Debian 11+)
Dependencies:
- Python 3.9+ (for Python installation)
- Docker 20.10+ (for container installation)
- Kubernetes 1.24+ (for Kubernetes deployment)
Installation Methods
Section titled “Installation Methods”Choose the installation method that best fits your environment:
Option 1: Python Package (Quick Start)
Section titled “Option 1: Python Package (Quick Start)”Best for development, testing, and small deployments.
Install via pip:
# Install Alien Giraffepip install alien-giraffe
# Verify installationa10e --versionInstall from source:
# Clone the repositorygit clone https://github.com/aliengiraffe/alien-giraffe.gitcd alien-giraffe
# Install in development modepip install -e .
# Verify installationa10e --versionCreate initial configuration:
# Generate default configurationa10e init
# This creates:# ~/.a10e/config.toml - Main configuration# ~/.a10e/policies/ - Policy directory (YAML/JSON)# ~/.a10e/credentials/ - Credential storage (encrypted)Option 2: Docker (Recommended)
Section titled “Option 2: Docker (Recommended)”Best for consistent deployments and easier dependency management.
Pull and run the official image:
# Pull the latest imagedocker pull aliengiraffe/alien-giraffe:latest
# Create a configuration directorymkdir -p ~/.a10e
# Generate default configurationdocker run --rm -v ~/.a10e:/config \ aliengiraffe/alien-giraffe:latest init
# Run Alien Giraffedocker run -d \ --name alien-giraffe \ -p 8080:8080 \ -v ~/.a10e:/config \ aliengiraffe/alien-giraffe:latestUsing Docker Compose:
Create a docker-compose.yaml file:
version: '3.8'
services: alien-giraffe: image: aliengiraffe/alien-giraffe:latest container_name: alien-giraffe ports: - "8080:8080" volumes: - ./config:/config - ./policies:/policies environment: - A10E_CONFIG=/config/config.toml - A10E_LOG_LEVEL=info restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/health"] interval: 30s timeout: 10s retries: 3Start the service:
# Start Alien Giraffedocker-compose up -d
# View logsdocker-compose logs -f
# Stop the servicedocker-compose downOption 3: Kubernetes (Production)
Section titled “Option 3: Kubernetes (Production)”Best for production deployments requiring high availability and scalability.
Prerequisites:
- Kubernetes cluster (1.24+)
- Helm 3.8+
- kubectl configured to access your cluster
Add the Helm repository:
# Add the Alien Giraffe Helm repositoryhelm repo add alien-giraffe https://helm.aliengiraffe.com
# Update your local Helm chart repository cachehelm repo updateCreate a values file:
Create values.yaml with your configuration:
replicaCount: 3
image: repository: aliengiraffe/alien-giraffe tag: latest pullPolicy: IfNotPresent
service: type: ClusterIP port: 8080
ingress: enabled: true className: nginx hosts: - host: a10e.company.com paths: - path: / pathType: Prefix tls: - secretName: a10e-tls hosts: - a10e.company.com
resources: requests: memory: "2Gi" cpu: "1" limits: memory: "4Gi" cpu: "2"
autoscaling: enabled: true minReplicas: 3 maxReplicas: 10 targetCPUUtilizationPercentage: 70Deploy using Helm:
# Create namespacekubectl create namespace alien-giraffe
# Install Alien Giraffehelm install alien-giraffe alien-giraffe/alien-giraffe \ --namespace alien-giraffe \ --values values.yaml
# Check deployment statuskubectl get pods -n alien-giraffe
# View logskubectl logs -n alien-giraffe -l app.kubernetes.io/name=alien-giraffeSee the full Kubernetes deployment guide for advanced configuration options.
Initial Configuration
Section titled “Initial Configuration”After installation, configure Alien Giraffe with your basic settings.
Configuration File Structure
Section titled “Configuration File Structure”The main configuration file (config.toml) contains:
# API Server Configuration[server]host = "0.0.0.0"port = 8080
[server.tls]enabled = falsecert = "/path/to/cert.pem"key = "/path/to/key.pem"
# Logging Configuration[logging]level = "info"format = "json"output = "stdout"
# Authentication[authentication.jwt]secret = "${JWT_SECRET}"expiration = "8h"
# Policy Configuration[policies]directory = "/policies"autoReload = truereloadInterval = "60s"
# Audit Logging[audit]enabled = truedestination = "file"path = "/var/log/a10e/audit.log"
[audit.rotation]maxSize = "100MB"maxAge = "90d"maxBackups = 10Environment Variables
Section titled “Environment Variables”Configure sensitive values using environment variables:
# Requiredexport A10E_JWT_SECRET="your-secret-key-here"
# Optionalexport A10E_LOG_LEVEL="info"export A10E_CONFIG="/path/to/config.toml"export A10E_POLICIES_DIR="/path/to/policies"Generate JWT Secret
Section titled “Generate JWT Secret”Create a secure JWT secret for session management:
# Generate a secure random secretopenssl rand -base64 32
# Set it as an environment variableexport A10E_JWT_SECRET="generated-secret-here"Verification
Section titled “Verification”Verify that Alien Giraffe is running correctly:
Check Service Health
Section titled “Check Service Health”# For local/Docker installationcurl http://localhost:8080/health
# Expected response:# {"status":"healthy","version":"1.0.0"}Check API Connectivity
Section titled “Check API Connectivity”# Test the API endpointcurl http://localhost:8080/api/v1/status
# Expected response:# {# "status": "running",# "version": "1.0.0",# "components": {# "policies": "loaded",# "sources": "0 configured",# "authentication": "ready"# }# }Using the CLI
Section titled “Using the CLI”# Check CLI connectivitya10e status
# Expected output:# Alien Giraffe Status# ━━━━━━━━━━━━━━━━━━━━# Version: 1.0.0# Status: Running# Policies: 0 loaded# Sources: 0 configured# Users: 1 (admin)Post-Installation Steps
Section titled “Post-Installation Steps”Create Admin User
Section titled “Create Admin User”# Create the first admin usera10e user create admin \ --email admin@company.com \ --role admin \ --password
# You'll be prompted to enter a passwordSet Up TLS (Production)
Section titled “Set Up TLS (Production)”For production deployments, enable TLS:
[server.tls]enabled = truecert = "/etc/a10e/tls/tls.crt"key = "/etc/a10e/tls/tls.key"minVersion = "1.2"Generate or obtain TLS certificates:
# Self-signed certificate (for testing only)openssl req -x509 -newkey rsa:4096 \ -keyout tls.key \ -out tls.crt \ -days 365 \ -nodes \ -subj "/CN=a10e.company.com"
# For production, use certificates from Let's Encrypt or your CAConfigure Backup Storage
Section titled “Configure Backup Storage”Set up backup storage for audit logs and configuration:
[backup]enabled = trueschedule = "0 2 * * *" # Daily at 2 AMretention = "90d"
[backup.destination]type = "s3"bucket = "a10e-backups"region = "us-west-2"Upgrade
Section titled “Upgrade”Upgrading Python Installation
Section titled “Upgrading Python Installation”# Upgrade to latest versionpip install --upgrade alien-giraffe
# Verify new versiona10e --versionUpgrading Docker Installation
Section titled “Upgrading Docker Installation”# Pull the latest imagedocker pull aliengiraffe/alien-giraffe:latest
# Stop and remove old containerdocker stop alien-giraffedocker rm alien-giraffe
# Start new containerdocker run -d \ --name alien-giraffe \ -p 8080:8080 \ -v ~/.a10e:/config \ aliengiraffe/alien-giraffe:latestUpgrading Kubernetes Deployment
Section titled “Upgrading Kubernetes Deployment”# Update Helm repositoryhelm repo update
# Upgrade to latest versionhelm upgrade alien-giraffe alien-giraffe/alien-giraffe \ --namespace alien-giraffe \ --values values.yamlTroubleshooting
Section titled “Troubleshooting”Installation Issues
Section titled “Installation Issues”Problem: pip install fails with dependency errors
# Solution: Upgrade pip and setuptoolspip install --upgrade pip setuptools
# Try installation againpip install alien-giraffeProblem: Docker container fails to start
# Check logsdocker logs alien-giraffe
# Common issues:# - Port 8080 already in use: Change port mapping# - Configuration file errors: Validate config.toml# - Permission issues: Check volume mount permissionsProblem: Kubernetes pods in CrashLoopBackOff
# Check pod logskubectl logs -n alien-giraffe -l app.kubernetes.io/name=alien-giraffe
# Check pod eventskubectl describe pod -n alien-giraffe <pod-name>
# Common issues:# - Missing secrets: Create required Kubernetes secrets# - Resource limits: Adjust resource requests/limits# - Configuration errors: Validate Helm valuesHealth Check Failures
Section titled “Health Check Failures”# Check if service is listeningnetstat -tlnp | grep 8080
# Test with verbose curlcurl -v http://localhost:8080/health
# Check firewall rulessudo iptables -L -n | grep 8080Permission Issues
Section titled “Permission Issues”# For Linux/macOS installations# Ensure correct ownership of configuration directorysudo chown -R $(whoami):$(whoami) ~/.a10echmod 700 ~/.a10echmod 600 ~/.a10e/config.tomlNext Steps
Section titled “Next Steps”Now that Alien Giraffe is installed, continue with:
- Configure Your First Data Source - Connect to PostgreSQL, S3, or other data sources
- Create Your First Policy - Define access rules for your data
- Set Up Identity Integration - Connect your identity provider
- Configure Monitoring - Set up audit logging and monitoring
For additional help:
- Components Overview - Understand core concepts
- API Reference - Explore the API
- GitHub Issues - Report problems or request features