Cased CD

A modern, beautiful UI for ArgoCD

v0.2.18
ghcr.io/cased/cased-cd FSL-1.1

Overview

Cased CD is a completely redesigned user interface for ArgoCD, built with modern web technologies for a superior user experience. It works seamlessly with your existing ArgoCD installation - no backend modifications required.

Modern UI/UX
Clean, intuitive interface built with React and Tailwind CSS
Dark Mode
Full dark mode support with automatic system detection
Real-time Updates
Live sync status and resource health monitoring
Application Management
Create, sync, refresh, rollback, and delete applications
Resource Visualization
Tree view, network graph, list views, and pod views
Deployment History
Track all deployments with easy rollback
Multi-cluster Support
Manage applications across multiple Kubernetes clusters
Repository Management
Connect Git repositories (SSH, HTTPS, GitHub OAuth)
Cluster Management
Add and manage Kubernetes clusters
Project Management
Organize applications into projects
Account Viewing
View ArgoCD accounts and their status
No Backend Changes
Works with standard ArgoCD API (v2.0+)

Quick Start

Prerequisites

Install with Helm (Recommended)

# Add the Cased Helm repository
helm repo add cased https://cased.github.io/cased-cd
helm repo update

# Install in the same namespace as ArgoCD (usually 'argocd')
helm install cased-cd cased/cased-cd --namespace argocd

# Get the service URL
kubectl get svc cased-cd -n argocd

Install with kubectl

# Apply the manifest
kubectl apply -f https://cased.github.io/cased-cd/install.yaml -n argocd

# Access via port-forward
kubectl port-forward svc/cased-cd 8080:80 -n argocd

Then open http://localhost:8080 and log in with your ArgoCD credentials.

Important: The static install.yaml assumes ArgoCD is installed in the argocd namespace with the default service name argocd-server. If your setup is different, use Helm (which allows easy configuration) or download and edit the install.yaml before applying.

Run with Docker

docker run -d \
  -p 8080:80 \
  -e ARGOCD_SERVER=http://argocd-server.argocd.svc.cluster.local:80 \
  ghcr.io/cased/cased-cd:latest

Configuration

Custom ArgoCD Server

If ArgoCD is in a different namespace or has a custom name:

# values.yaml
argocd:
  server: "https://my-argocd-server.custom-namespace.svc.cluster.local"
  insecure: false  # Set to true for self-signed certificates

Ingress

# values.yaml
ingress:
  enabled: true
  className: "nginx"
  hosts:
    - host: cased-cd.example.com
      paths:
        - path: /
          pathType: Prefix
  tls:
    - secretName: cased-cd-tls
      hosts:
        - cased-cd.example.com

Authentication

Cased CD uses the same authentication as ArgoCD. Log in with your ArgoCD credentials:

# Get the admin password
kubectl -n argocd get secret argocd-initial-admin-secret \
  -o jsonpath="{.data.password}" | base64 -d

Security

Cased CD implements multiple layers of security:

Container Security

  • Non-root Containers - Runs as user 101 (nginx)
  • Read-only Filesystem - Minimal write permissions
  • No Data Storage - All data comes from ArgoCD API

HTTP Security Headers

  • Content-Security-Policy (CSP) - Prevents XSS attacks
  • Strict-Transport-Security (HSTS) - Forces HTTPS
  • X-Frame-Options - Prevents clickjacking
  • X-Content-Type-Options - Prevents MIME sniffing

Rate Limiting

  • Login endpoint - Protected against brute force
  • API endpoints - Rate limited per IP

Report security vulnerabilities to security@cased.com.

Requirements

Upgrade to Cased CD Enterprise

Get advanced features for production ArgoCD deployments

Learn More

Development

# Clone the repository
git clone https://github.com/cased/cased-cd.git
cd cased-cd

# Install dependencies
npm install

# Start development server (with mock API)
npm run dev:mock  # Terminal 1
npm run dev       # Terminal 2

# Build for production
npm run build

Support