Skip to content

Docker Production Deployment

This guide provides comprehensive instructions for deploying the Intrudex Server in production using Docker containers with enterprise-grade orchestration, security hardening, and high availability configurations.


Production Docker Overview

Production Container Features

The production Docker deployment includes multi-stage builds, security hardening, health checks, auto-scaling, load balancing, and comprehensive monitoring with Docker Swarm or Kubernetes orchestration.

Production Container Architecture

graph TB
    subgraph "Load Balancer Layer"
        LB[Load Balancer]
        SSL[SSL Termination]
    end

    subgraph "Container Orchestration"
        subgraph "Web Tier"
            WEB1[Web Container 1]
            WEB2[Web Container 2]
            WEB3[Web Container 3]
        end

        subgraph "Database Tier"
            DB_PRIMARY[(PostgreSQL Primary)]
            DB_REPLICA[(PostgreSQL Replica)]
        end

        subgraph "Cache Tier"
            REDIS_MASTER[(Redis Master)]
            REDIS_REPLICA[(Redis Replica)]
        end
    end

    subgraph "Infrastructure Services"
        MONITOR[Monitoring]
        LOGS[Log Aggregation]
        BACKUP[Backup Service]
        REGISTRY[Container Registry]
    end

    LB --> SSL
    SSL --> WEB1
    SSL --> WEB2
    SSL --> WEB3
    WEB1 --> DB_PRIMARY
    WEB2 --> DB_PRIMARY
    WEB3 --> DB_PRIMARY
    DB_PRIMARY --> DB_REPLICA
    WEB1 --> REDIS_MASTER
    WEB2 --> REDIS_MASTER
    WEB3 --> REDIS_MASTER
    REDIS_MASTER --> REDIS_REPLICA

    MONITOR --> WEB1
    MONITOR --> WEB2
    MONITOR --> WEB3
    LOGS --> WEB1
    LOGS --> WEB2
    LOGS --> WEB3
    BACKUP --> DB_PRIMARY
    REGISTRY --> WEB1
    REGISTRY --> WEB2
    REGISTRY --> WEB3

    style DB_PRIMARY fill:#336791
    style REDIS_MASTER fill:#dc382d
    style WEB1 fill:#3498db
    style WEB2 fill:#3498db
    style WEB3 fill:#3498db

Production Images

Docker Hub Images

The official Intrudex Docker images are available on Docker Hub:

# Server Application - Development
docker pull armoghan/intrudex-server:1.0.0-dev

# Server Application - Production
docker pull armoghan/intrudex-server:1.0.0-prod

GitHub Container Registry

Alternative images from GitHub Container Registry:

# Server Application - Development
docker pull ghcr.io/toolshive/intrudex:1.0.0-dev

# Server Application - Production
docker pull ghcr.io/toolshive/intrudex:1.0.0-prod

# Authentication required for private repositories
echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin

Running the Containers

After pulling the images, run the production container with:

docker run -d --name intrudex-server-prod \
  -p 8080:8080 \
  -e DATABASE_URL=postgres://user:password@dbhost:5432/intrudex \
  -e REDIS_URL=redis://redishost:6379/0 \
  armoghan/intrudex-server:1.0.0-prod

For GitHub Container Registry image:

docker run -d --name intrudex-server-prod \
  -p 8080:8080 \
  -e DATABASE_URL=postgres://user:password@dbhost:5432/intrudex \
  -e REDIS_URL=redis://redishost:6379/0 \
  ghcr.io/toolshive/intrudex:1.0.0-prod

Adjust environment variables and ports as needed for your setup.