Deployment Progress 60% Complete
Intro
Prereqs
Install
Deploy
Config
CI/CD

Overview

Aevum Encyclopedia supports multiple deployment strategies to fit your infrastructure needs. Whether you're spinning up a single-node development instance or orchestrating a multi-region production cluster, our deployment tooling handles the complexity.

💡

Quick Deploy

If you just want to test the platform, use our one-command deploy: aevum deploy --quick. This provisions a staging-ready instance in under 5 minutes on any supported cloud provider.

Deployment Options

Choose the deployment method that best suits your requirements:

🐳

Docker / Kubernetes

Containerized deployment with Docker Compose or Helm charts

🖥️

On-Premise

Bare-metal or VM deployment with full data sovereignty control

🌐

Edge / CDN

Edge-optimized deployment for ultra-low latency content delivery

Prerequisites Check

Before deploying, ensure your environment meets the following requirements. Run the diagnostic tool to verify:

bash
# Run the environment check tool
$ aevum check-env --verbose

# Output:
 Node.js v18.17+ detected
 PostgreSQL 15+ available
 Redis 7+ available
 Docker Engine 24+ detected
 Minimum 16GB RAM available
 Recommended: 32GB RAM for production
 Network ports 8080, 5432, 6379 accessible

# Result: Environment ready for deployment

System Requirements

d>
Component Minimum Recommended (Prod) Notes
CPU 4 cores 16+ cores x86_64 or ARM64
RAM 8 GB 32+ GB For AI services
Storage 100 GB SSD 1 TB NVMe Index storage grows
PostgreSQL 13+ 15+ Shared buffers: 4GB+
Redis 6+ 7+ Cluster mode for HA
Elasticsearch 8+ 8.10+ Heap: 50% RAM

Quick Start

Get a fully functional Aevum Encyclopedia instance running in three steps:

  1. Initialize the deployment

    Create a new deployment project with our CLI wizard. This generates all configuration files, Docker Compose manifests, and environment templates.

  2. Configure your environment

    Set environment-specific variables including database credentials, API keys, and CDN settings. The wizard provides sensible defaults.

  3. Launch the services

    Start all services with a single command. The CLI orchestrates the startup sequence and health checks automatically.

Docker Compose Deployment

The simplest way to deploy Aevum Encyclopedia is using Docker Compose. This single file defines all services and their relationships:

yaml
# docker-compose.yml — Aevum Encyclopedia Stack
version: "3.9"

services:
  # Main application server
  app:
    image: registry.aevum.io/encyclopedia:latest
    ports:
      - "8080:8080"
    environment:
      - DATABASE_URL=postgresql://aevum:password@db:5432/aevum
      - REDIS_URL=redis://cache:6379
      - ELASTICSEARCH_URL=http://search:9200
      - NODE_ENV=production
    depends_on:
      - db
      - cache
      - search
    restart: unless-stopped

  # PostgreSQL database
  db:
    image: postgres:15-alpine
    volumes:
      - pg_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=aevum
      - POSTGRES_USER=aevum
      - POSTGRES_PASSWORD=password

  # Redis cache layer
  cache:
    image: redis:7-alpine
    command: redis-server --appendonly yes
    volumes:
      - redis_data:/data

  # Elasticsearch for search
  search:
    image: elasticsearch:8.10.0
    environment:
      - discovery.type=single-node
      - ES_JAVA_OPTS="-Xms512m -Xmx512m"

volumes:
  pg_data: {}
  redis_data: {}
  es_data: {}

Start the Stack

Once your docker-compose.yml is ready, launch everything with: docker compose up -d. All services will start and the application will be available at http://localhost:8080.

Cloud Deployment

For production deployments, we recommend using our infrastructure-as-code templates. Each provider has a dedicated deployment module:

Amazon Web Services

Deploy using Terraform or the AWS Console with our pre-built CloudFormation template:

bash
# AWS deployment using the Aevum CLI
$ aevum deploy aws \
  --region us-east-1 \
  --environment production \
  --instance-type r6g.xlarge \
  --min-nodes 2 \
  --max-nodes 10 \
  --database aurora-postgresql \
  --cdn cloudfront

# Provisioning resources...
# ✓ VPC created: vpc-0a1b2c3d4e5f
# ✓ ECS Cluster: aevum-prod
# ✓ RDS Aurora Cluster: aevum-db-prod
# ✓ CloudFront Distribution: d-abc123
# ✓ Health checks passed

# Aevum Encyclopedia is now live at:
# https://encyclopedia.yourdomain.com

Google Cloud Platform

bash
# GCP deployment
$ aevum deploy gcp \
  --project my-encyclopedia-proj \
  --zone us-central1-a \
  --machine-type e2-standard-4 \
  --database cloudsql-postgres \
  --managed-cdn true

# Deploying to Google Cloud Run...
# ✓ Service: aevum-app [us-central1]
# ✓ Cloud SQL: aevum-db
# ✓ Memorystore Redis: aevum-cache
# ✓ Deployed successfully!

Environment Configuration

Aevum Encyclopedia uses a layered configuration system. Values are resolved in this order (highest priority first):

  1. Runtime flags — Command-line arguments passed at startup
  2. Environment variables — OS-level or container environment
  3. .env file — Per-environment dotenv files
  4. Defaults — Built-in sensible defaults

Required Environment Variables

Variable Description Example
AEVUM_SECRET_KEY Encryption key for JWT tokens openssl rand -base64 32
DATABASE_URL PostgreSQL connection string postgresql://user:pass@host:5432/db
REDIS_URL Redis connection string redis://localhost:6379/0
ELASTICSEARCH_URL Elasticsearch endpoint http://localhost:9200
AI_API_KEY Key for AI-powered features sk-xxxxxxxxxxxx
SMTP_URL Email service endpoint smtp://user:pass@mailgun.org
⚠️

Security Warning

Never commit .env files to version control. Use our aevum encrypt command to store sensitive configuration in encrypted format.

Environment-Specific Configs

Use the dev, staging, or prod profiles to load environment-specific settings:

bash
# Start with production configuration
$ aevum start --env production

# Or set the environment variable
$ AEVUM_ENV=production aevum start

# List available environment profiles
$ aevum env list
  ✓ dev      — Local development
  ✓ staging  — Pre-production testing
  ✓ prod     — Production deployment

Health Checks & Verification

After deployment, verify that all services are healthy:

bash
# Run the health check suite
$ aevum health --all

# Service Health Report
┌─────────────────┬──────────┬───────────────┬──────────┐
│ Service         │ Status   │ Response Time │ Version  │
├─────────────────┼──────────┼───────────────┼──────────┤
│ API Server      │ ✓ UP     │ 12ms          │ 3.2.0    │
│ PostgreSQL      │ ✓ UP     │ 3ms           │ 15.4     │
│ Redis           │ ✓ UP     │ 1ms           │ 7.2      │
│ Elasticsearch   │ ✓ UP     │ 8ms           │ 8.10.0   │
│ AI Service      │ ✓ UP     │ 45ms          │ 2.1.0    │
│ Worker Queue    │ ✓ UP     │ —             │ 3.2.0    │
└─────────────────┴──────────┴───────────────┴──────────┘

All 6 services are healthy.

Rollback & Recovery

If a deployment doesn't go as planned, use our built-in rollback mechanism:

bash
# Rollback to the previous stable version
$ aevum rollback --to previous

# Rollback to a specific version
$ aevum rollback --to 3.1.5

# View deployment history
$ aevum deployments list
  [latest]  3.2.0  — Deployed 2025-01-15 14:30 UTC
  [prev]    3.1.5  — Deployed 2025-01-10 09:15 UTC
  [older]   3.1.0  — Deployed 2025-01-05 16:45 UTC
🚨

Database Migrations

Rollbacks that cross migration boundaries require manual intervention. Always test migrations in staging before applying to production. Use aevum db migrate --dry-run to preview changes.

What's Next?

Now that your instance is deployed, continue to the next step to configure your instance for your specific use case: