# Platform Deployment Comparison

## Supported Platforms

| Platform | Status | Driver | Difficulty | Recommended |
|----------|--------|--------|------------|-------------|
| **Windows Server** | ✅ Ready | ODBC Driver 18 | Easy | ⭐⭐⭐⭐⭐ Best |
| **Linux (Ubuntu/CentOS)** | ✅ Ready | FreeTDS / ODBC 18 | Medium | ⭐⭐⭐⭐ Good |
| **Docker** | ✅ Ready | Any | Easy | ⭐⭐⭐⭐ Good |
| **macOS** | ⚠️ Development Only | ODBC 18 | Hard | ⭐ Not recommended |

## Quick Comparison

### Windows Server ✅

**Pros:**
- Native Microsoft SQL Server support
- Easiest ODBC driver installation
- Official Microsoft tools
- Best performance
- Production-ready

**Cons:**
- Requires Windows Server license
- Higher resource usage

**Best For:** Production deployments, official environments

**Installation:** `deploy_windows.bat`

---

### Linux Server ✅

**Pros:**
- Lower resource usage
- Open-source friendly
- Great for Docker
- Cost-effective
- Excellent performance

**Cons:**
- Requires FreeTDS or Microsoft ODBC setup
- Slightly more configuration

**Best For:** Cloud deployments, Docker, budget-conscious

**Installation:** `QUICK_DEPLOY_LINUX.sh` + `DEPLOYMENT_LINUX.md`

---

### Docker ✅

**Pros:**
- Platform-agnostic
- Easy deployment
- Isolated environment
- Consistent across servers
- Easy updates/rollbacks

**Cons:**
- Needs Docker installed
- Network configuration complexity

**Best For:** Modern infrastructure, containerized environments

**Installation:** `docker-compose.yml` (in DEPLOYMENT_LINUX.md)

---

### macOS ⚠️

**Pros:**
- Good for development
- Native Python support

**Cons:**
- ODBC driver issues
- Not production-ready
- Complex configuration
- Microsoft limitations

**Best For:** Local development only

**Installation:** Manual setup (not recommended)

---

## Quick Start Decision Tree

```
Start
  ↓
What's your platform?
  ├─ Windows Server?
  │    ↓
  │   Deploy: deploy_windows.bat
  │   Docs: DEPLOYMENT_WINDOWS.md
  │
  ├─ Linux Server?
  │    ↓
  │   Deploy: QUICK_DEPLOY_LINUX.sh
  │   Docs: DEPLOYMENT_LINUX.md
  │
  ├─ Docker?
  │    ↓
  │   Deploy: docker-compose up
  │   Docs: DEPLOYMENT_LINUX.md (Docker section)
  │
  └─ macOS?
       ↓
      Don't deploy here.
      Use for development only.
```

## Feature Parity

All platforms support:
- ✅ All 8 API endpoints
- ✅ PDF conversion
- ✅ Document resolution
- ✅ Database queries
- ✅ Browser extension
- ✅ Same functionality

## Performance Comparison

| Metric | Windows | Linux | Docker |
|--------|---------|-------|--------|
| Connection Speed | Excellent | Excellent | Excellent |
| PDF Conversion | Fast | Fast | Fast |
| Memory Usage | Higher | Lower | Medium |
| Startup Time | Quick | Quick | Quickest |
| Reliability | Excellent | Excellent | Excellent |

**Winner:** Performance is virtually identical. Choose based on infrastructure.

## Cost Comparison

| Platform | Hardware | OS License | Total |
|----------|----------|------------|-------|
| Windows Server | VPS | ~$800/year | $$$ |
| Linux Server | VPS | Free | $ |
| Docker | Any | Container | $ |

**Winner:** Linux/Docker for cost

## Security Comparison

| Aspect | Windows | Linux | Docker |
|--------|---------|-------|--------|
| Updates | Regular | Regular | Regular |
| Patching | Easy | Easy | Easy |
| Isolation | Good | Excellent | Best |
| Firewall | Built-in | iptables/firewalld | Multiple |

**Winner:** All equally secure with proper configuration

## Recommended Deployment

### Production Environment

**Option 1: Windows Server** (Best for MSSQL)
```
Windows Server 2019/2022
+ ODBC Driver 18
+ SQL Server 2019+
= Perfect match for Aumentum
```

**Option 2: Linux + Docker** (Modern approach)
```
Ubuntu 22.04 LTS
+ Docker
+ ODBC Driver 18
= Scalable, maintainable
```

**Option 3: Linux Native** (Cost-effective)
```
CentOS/Rocky Linux 8
+ FreeTDS or ODBC 18
= Budget-friendly production
```

### Development/Testing

**Option:** Docker Desktop
```
Windows/Mac Docker
+ Pre-configured image
= Fast iteration
```

## Migration Path

```
Development (macOS)
    ↓
Testing (Docker)
    ↓
Staging (Linux)
    ↓
Production (Windows or Linux)
```

## Configuration Differences

### Windows
```python
DEFAULT_DB_CONFIG = {
    "driver": "ODBC Driver 18 for SQL Server",
}
DEFAULT_CONTENTSTORE_BASE = r"C:\Alfresco\alf_data\contentstore"
```

### Linux
```python
DEFAULT_DB_CONFIG = {
    "driver": "FreeTDS",  # or "ODBC Driver 18 for SQL Server"
}
DEFAULT_CONTENTSTORE_BASE = "/opt/alfresco/contentstore"
```

### Docker
```yaml
environment:
  - DB_DRIVER=FreeTDS
  - CONTENTSTORE_PATH=/app/contentstore
volumes:
  - ./contentstore:/app/contentstore
```

---

## Final Recommendation

**For Aumentum Registry (MSSQL):**

1. **Best Choice:** **Windows Server** - Native support, easiest setup
2. **Modern Choice:** **Linux + Docker** - Scalable, containerized
3. **Budget Choice:** **Linux + FreeTDS** - Cost-effective, open-source

All three will work perfectly. Choose based on your infrastructure and budget.

---

**See Also:**
- `DEPLOYMENT_WINDOWS.md` - Windows guide
- `DEPLOYMENT_LINUX.md` - Linux guide
- `QUICK_DEPLOY_LINUX.sh` - Linux installer
- `deploy_windows.bat` - Windows installer

