> ## Content Index
> Fetch the complete content index at: https://blog.fabrixly.com/llms.txt
> Use this file to discover other available public pages before exploring further.

# Deployment Guide — Fabrixly-IDS
- URL: https://blog.fabrixly.com/deployment-guide-2/
- Published: 2026-07-07T14:10:29.000Z
- Updated: 2026-07-07T14:38:06.000Z
- Author: Fabrixly
- Tags: Documentation, Deployment, Fabrixly-IDS

# Fabrixly IDS Deployment Guide

## Prerequisites

- Docker installed
- Kubernetes cluster (minikube, EKS, GKE, AKS, etc.)
- Helm 3.x installed
- kubectl configured

---

## Docker Build & Push

### 1\. Build Images

```bash
# Build backend
docker build -t fabrixly-ids/backend:latest .

# Build console
cd console
docker build -t fabrixly-ids/console:latest .
cd ..

```

### 2\. Tag for Registry

```bash
# For Docker Hub
docker tag fabrixly-ids/backend:latest yourusername/fabrixly-ids-backend:1.0.0
docker tag fabrixly-ids/console:latest yourusername/fabrixly-ids-console:1.0.0

# For AWS ECR
docker tag fabrixly-ids/backend:latest 123456789.dkr.ecr.us-east-1.amazonaws.com/fabrixly-ids-backend:1.0.0
docker tag fabrixly-ids/console:latest 123456789.dkr.ecr.us-east-1.amazonaws.com/fabrixly-ids-console:1.0.0

```

### 3\. Push to Registry

```bash
# Docker Hub
docker push yourusername/fabrixly-ids-backend:1.0.0
docker push yourusername/fabrixly-ids-console:1.0.0

# AWS ECR (login first)
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 123456789.dkr.ecr.us-east-1.amazonaws.com
docker push 123456789.dkr.ecr.us-east-1.amazonaws.com/fabrixly-ids-backend:1.0.0
docker push 123456789.dkr.ecr.us-east-1.amazonaws.com/fabrixly-ids-console:1.0.0

```

---

## Helm Deployment

### 1\. Update Dependencies

```bash
cd helm/fabrixly-ids
helm dependency update

```

### 2\. Create Secrets File

```bash
# For Development
cp helm/fabrixly-ids/values-secrets-development.yaml helm/fabrixly-ids/my-secrets.yaml

# For Production - Copy template and fill in real values
cp helm/fabrixly-ids/values-secrets-production.yaml.example helm/fabrixly-ids/values-secrets-production.yaml

# Generate secure secrets for production
echo "SESSION_SECRET: $(openssl rand -base64 32)"
echo "JWT_SECRET: $(openssl rand -base64 32)"
echo "DB_PASSWORD: $(openssl rand -base64 24)"
echo "POSTGRES_PASSWORD: $(openssl rand -base64 24)"

# Edit the file with your actual secrets
nano helm/fabrixly-ids/values-secrets-production.yaml

# IMPORTANT: Add to .gitignore
echo "values-secrets-production.yaml" >> helm/fabrixly-ids/.gitignore
echo "my-secrets.yaml" >> helm/fabrixly-ids/.gitignore

```

### 3\. Customize Values

Edit `helm/fabrixly-ids/values.yaml`:

```yaml
global:
  domain: your-domain.com

backend:
  image:
    repository: yourusername/fabrixly-ids-backend
    tag: "1.0.0"
  
  env:
    ISSUER: "https://your-domain.com/oidc"
    DB_HOST: "postgresql-service"  # Matches PostgreSQL service name
    SMTP_HOST: "smtp.yourprovider.com"

console:
  image:
    repository: yourusername/fabrixly-ids-console
    tag: "1.0.0"

ingress:
  hosts:
    - host: your-domain.com
      paths:
        - path: /oidc
          pathType: Prefix
          backend: backend
        - path: /api
          pathType: Prefix
          backend: backend
        - path: /
          pathType: Prefix
          backend: console
  tls:
    - secretName: fabrixly-ids-tls
      hosts:
        - your-domain.com

```

### 4\. Install with Helm

```bash
# Development
helm install fabrixly-ids ./helm/fabrixly-ids \
  -f values-development.yaml \
  -f values-secrets-development.yaml \
  --namespace fabrixly-ids \
  --create-namespace

# Production
helm install fabrixly-ids ./helm/fabrixly-ids \
  -f values-production.yaml \
  -f values-secrets-production.yaml \
  --namespace fabrixly-ids \
  --create-namespace

# Alternative: Using --set for secrets (not recommended for many secrets)
helm install fabrixly-ids ./helm/fabrixly-ids \
  -f values-production.yaml \
  --set backend.secrets.SESSION_SECRET="$(openssl rand -base64 32)" \
  --set backend.secrets.JWT_SECRET="$(openssl rand -base64 32)" \
  --set backend.secrets.DB_PASSWORD="yourpassword" \
  --set postgresql.auth.password="yourpassword" \
  --namespace fabrixly-ids \
  --create-namespace

```

### 5\. Verify Deployment

```bash
# Check pods
kubectl get pods -n fabrixly-ids

# Check services
kubectl get svc -n fabrixly-ids

# Check ingress
kubectl get ingress -n fabrixly-ids

# View logs
kubectl logs -f deployment/fabrixly-ids-backend -n fabrixly-ids
kubectl logs -f deployment/fabrixly-ids-console -n fabrixly-ids
kubectl logs -f statefulset/postgresql -n fabrixly-ids

```

---

## Resource Requirements Summary

### Bare Minimum (Development/Testing)

- **Backend**: 50m CPU, 128Mi RAM
- **Console**: 10m CPU, 32Mi RAM
- **PostgreSQL**: 20m CPU, 64Mi RAM, 1Gi storage
- **Total**: \~80m CPU, 224Mi RAM, 1Gi storage

### Recommended (Production)

- **Backend**: 500m CPU, 512Mi RAM (2-10 replicas)
- **Console**: 100m CPU, 128Mi RAM (2-5 replicas)
- **PostgreSQL**: 200m CPU, 256Mi RAM, 10Gi storage
- **Total**: \~800m CPU, 896Mi RAM, 10Gi storage

---

## Upgrading

```bash
# Update image tags
helm upgrade fabrixly-ids ./helm/fabrixly-ids \
  -f values-secrets.yaml \
  --set backend.image.tag=1.1.0 \
  --set console.image.tag=1.1.0 \
  --namespace fabrixly-ids

```

---

## Uninstall

```bash
helm uninstall fabrixly-ids --namespace fabrixly-ids
kubectl delete namespace fabrixly-ids

```

---

## Local Testing with Minikube

```bash
# Start minikube
minikube start

# Enable ingress
minikube addons enable ingress

# Build images in minikube's Docker
eval $(minikube docker-env)
docker build -t fabrixly-ids/backend:latest .
cd console && docker build -t fabrixly-ids/console:latest . && cd ..

# Install
helm install fabrixly-ids ./helm/fabrixly-ids \
  -f values-secrets.yaml \
  --set backend.image.pullPolicy=Never \
  --set console.image.pullPolicy=Never \
  --namespace fabrixly-ids \
  --create-namespace

# Get minikube IP
minikube ip

# Add to /etc/hosts
echo "$(minikube ip) fabrixly-ids.example.com" | sudo tee -a /etc/hosts

# Access
open http://fabrixly-ids.example.com

```

---

## Production Checklist

- Use proper domain name
- Configure TLS/SSL certificates (cert-manager)
- Set strong secrets
- Use external managed PostgreSQL
- Configure SMTP with real provider
- Set up monitoring (Prometheus/Grafana)
- Configure backup strategy
- Set resource limits/requests appropriately
- Enable HPA for autoscaling
- Configure network policies
- Review security contexts
- Set up log aggregation