4 Deploying
Deploy Aevum Encyclopedia to your preferred environment — cloud, on-premise, or edge. Follow this guide to get your instance up and running.
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:
Prerequisites Check
Before deploying, ensure your environment meets the following requirements. Run the diagnostic tool to verify:
# 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
| Component | Minimum | Recommended (Prod) | Notes |
|---|---|---|---|
| CPU | 4 cores | 16+ cores | x86_64 or ARM64 |
| RAM | 8 GB | 32+ GB | For AI services | d>
| 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:
-
Initialize the deployment
Create a new deployment project with our CLI wizard. This generates all configuration files, Docker Compose manifests, and environment templates.
-
Configure your environment
Set environment-specific variables including database credentials, API keys, and CDN settings. The wizard provides sensible defaults.
-
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:
# 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:
# 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
# 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):
- Runtime flags — Command-line arguments passed at startup
- Environment variables — OS-level or container environment
- .env file — Per-environment dotenv files
- 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:
# 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:
# 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:
# 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:
- Step 5: Configuration — Fine-tune AI models, content policies, and regional settings
- Step 6: CI/CD Pipelines — Automate deployments with GitHub Actions, GitLab CI, or Jenkins
- Step 7: Scaling — Horizontal scaling strategies for high-traffic deployments
- API Reference — Full documentation of all REST and GraphQL endpoints