# How to Set Up Argo CD Dashboards: Local UI Administration Guide

> Learn to set up Argo CD dashboards easily with the argocd admin dashboard command. Access your local UI at http://localhost:8080 without external components.

- Repository: [Argo Project/argo-cd](https://github.com/argoproj/argo-cd)
- Tags: how-to-guide
- Published: 2026-07-14

---

**The `argocd admin dashboard` command launches a self-contained, headless Argo CD API server inside the CLI process, exposing the Web UI at `http://localhost:8080` without requiring external Argo CD components to be exposed.**

The `argoproj/argo-cd` repository includes a built-in administration dashboard designed for local troubleshooting and resource inspection. This feature runs entirely within the CLI binary, creating an ephemeral API server that proxies the Argo CD web interface directly to your local machine while leveraging your existing Kubernetes credentials.

## Prerequisites and Core Mode Configuration

The dashboard operates in **core mode**, which enables direct Kubernetes cluster access without requiring a persistent Argo CD server installation. To utilize this functionality, your local kubeconfig must have appropriate permissions to access Argo CD resources in the target cluster.

Core mode detection occurs automatically when the CLI identifies valid Kubernetes credentials. The system initializes an in-process API server that bypasses traditional authentication mechanisms, making it suitable for local development and debugging scenarios.

## Launching the Argo CD Dashboard Locally

Use the `argocd admin dashboard` command to start the local web interface. By default, the server listens on port 8080 and binds to all interfaces.

```bash

# Start the UI with default settings (localhost:8080)

argocd admin dashboard

```

Customize the binding address and port using command-line flags:

```bash

# Bind to a specific local address and custom port

argocd admin dashboard --address 127.0.0.1 --port 9090

```

If your application controller uses Redis compression, enable GZip support to ensure proper cache handling:

```bash
argocd admin dashboard --redis-compress gzip

```

The CLI outputs the accessible URL upon successful initialization: `Argo CD UI is available at http://localhost:8080`.

## Architecture and Source Code Implementation

The dashboard implementation spans multiple files in the Argo CD codebase, handling everything from command-line parsing to in-process server initialization.

### Command Initialization in dashboard.go

The entry point resides in [[`cmd/argocd/commands/admin/dashboard.go`](https://github.com/argoproj/argo-cd/blob/main/cmd/argocd/commands/admin/dashboard.go)](https://github.com/argoproj/argo-cd/blob/master/cmd/argocd/commands/admin/dashboard.go). This file defines the `dashboard` command and constructs a `DashboardConfig` structure containing the port, address, and client options. The execution flow invokes `NewDashboard().Run` to initialize the server lifecycle.

### Headless Server Detection in headless.go

Core mode logic lives in [[`cmd/argocd/commands/headless/headless.go`](https://github.com/argoproj/argo-cd/blob/main/cmd/argocd/commands/headless/headless.go)](https://github.com/argoproj/argo-cd/blob/master/cmd/argocd/commands/headless/headless.go). The function `MaybeStartLocalServer` determines whether the client operates in core mode by checking the local configuration for direct Kubernetes access. When core mode is active, the function bootstraps the in-process API server; otherwise, it returns immediately to allow connection to existing external servers.

### In-Process Server Components

When core mode triggers, `MaybeStartLocalServer` invokes `server.NewServer` with several critical configurations:

- **Kubernetes clientsets**: Initializes `appclientset`, `kubeClientset`, and `dynamicClientset` using the local kubeconfig
- **Temporary caching**: Spawns a **miniredis** instance for lightweight, ephemeral caching without external Redis dependencies
- **Application state cache**: Configures `appstatecache.NewCache` for managing application states
- **Port forwarding**: Optionally forwards ports for external services like Redis or the repo-server when required

The server configuration explicitly disables authentication (`DisableAuth: true`) and operates in plaintext mode (`Insecure: true`), streamlining local access. A signal handler manages graceful shutdown when you terminate the process with Ctrl-C.

## CI/CD and Automated Environments

Deploy the dashboard in automated pipelines by running the CLI within a Kubernetes Job. Ensure the container has network access to the target cluster and set the `ARGOCD_CORE_MODE` environment variable to enable core mode operation.

```yaml

# Example: Running the dashboard from a CI job (core mode must be enabled)

apiVersion: batch/v1
kind: Job
metadata:
  name: argo-cd-dashboard
spec:
  template:
    spec:
      containers:
      - name: argo
        image: argoproj/argocd:v3.5.0
        command: ["argocd", "admin", "dashboard", "--port", "8081"]
        env:
        - name: ARGOCD_CORE_MODE
          value: "true"
      restartPolicy: Never

```

This configuration starts the dashboard on port 8081 within the CI container, allowing pipeline steps to access the Argo CD web interface for verification or debugging tasks.

## Summary

- The `argocd admin dashboard` command runs a self-contained API server within the CLI process, eliminating the need to expose production Argo CD services
- Core mode detection in [`cmd/argocd/commands/headless/headless.go`](https://github.com/argoproj/argo-cd/blob/main/cmd/argocd/commands/headless/headless.go) automatically initializes the in-process server when valid Kubernetes credentials are present
- The implementation uses **miniredis** for temporary caching and disables authentication for streamlined local access
- Customize the dashboard binding using `--address` and `--port` flags, or enable compression support with `--redis-compress gzip`
- Official documentation resides in [[`docs/user-guide/commands/argocd_admin_dashboard.md`](https://github.com/argoproj/argo-cd/blob/main/docs/user-guide/commands/argocd_admin_dashboard.md)](https://github.com/argoproj/argo-cd/blob/master/docs/user-guide/commands/argocd_admin_dashboard.md) within the repository

## Frequently Asked Questions

### What is the difference between `argocd admin dashboard` and the full Argo CD server?

The `argocd admin dashboard` command runs a **headless, ephemeral** API server inside the CLI process itself, designed for local troubleshooting. The full Argo CD server is a persistent deployment with authentication, high availability, and multi-user support intended for production environments.

### Does the admin dashboard require authentication?

No. According to the source code in [`cmd/argocd/commands/headless/headless.go`](https://github.com/argoproj/argo-cd/blob/main/cmd/argocd/commands/headless/headless.go), the dashboard explicitly sets `DisableAuth: true` when initializing the server. This design choice prioritizes convenience for local development and debugging scenarios where the user already possesses valid Kubernetes credentials.

### Can I run the dashboard without installing Argo CD in the cluster?

Yes. The dashboard operates in **core mode**, which utilizes your local kubeconfig to communicate directly with the Kubernetes API server. It does not require an existing Argo CD installation in the target cluster, though it needs appropriate RBAC permissions to read Argo CD custom resources if they exist.

### How do I troubleshoot connection issues with the admin dashboard?

Verify that your kubeconfig has valid credentials and that `ARGOCD_CORE_MODE` is set to `"true"` if running in containerized environments. Check the CLI output for the specific listening address, and ensure the specified port is not already bound by another process. The dashboard logs indicate successful server startup when it prints the available URL.