Home
Softono

Umami Dashboard

Open source MIT TypeScript
122
Stars
15
Forks
3
Issues
0
Watchers
6 months
Last Commit

 About Umami Dashboard

A modern Umami analytics dashboard to show last 24 hours.

Platforms

Web Self-hosted

Languages

TypeScript

Need Help Installing Umami Dashboard?

We provide expert installation service for this software. Our team will install, configure, and secure Umami Dashboard on your server. plans start at just $30.

Umami Dashboard

View on GitHub

Umami Dashboard

English | δΈ­ζ–‡

A modern Umami analytics dashboard providing real-time website traffic statistics and monitoring capabilities.

Features

  • πŸš€ Real-time traffic monitoring
  • πŸ“Š Multi-website statistics aggregation
  • πŸ“ˆ Historical data chart visualization
  • βš™οΈ Flexible configuration management
  • πŸ”„ Auto-refresh settings
  • πŸ’Ύ Local data storage
  • 🌍 Environment variable support

Quick Start

Start with Docker in one command:

docker run -p 3000:3000 songtianlun/umami-dashboard:latest

Then visit http://localhost:3000 to start using the dashboard.

Supported Architectures

The Docker image supports multiple architectures for maximum compatibility:

Architecture Status Example Devices
linux/amd64 βœ… Intel/AMD 64-bit servers, most PCs
linux/arm64 βœ… Apple Silicon (M1/M2/M3), AWS Graviton, Raspberry Pi 4/5 (64-bit)
linux/arm/v7 βœ… Raspberry Pi 2/3, ARM 32-bit devices

Docker will automatically pull the correct image for your platform. You can verify the architecture support:

docker manifest inspect songtianlun/umami-dashboard:latest | grep architecture

Environment Variable Configuration

For better deployment experience, this application supports pre-setting configuration through environment variables. Configuration priority is as follows:

  1. Browser Local Storage: First reads user-saved configuration from localStorage
  2. Environment Variables: If no local storage configuration exists, reads from environment variables

Supported Environment Variables

Environment Variable Description Example Value
UMAMI_SERVER_URL Umami server address https://analytics.yoursite.com
UMAMI_USERNAME Umami login username admin
UMAMI_PASSWORD Umami login password your-password
NEXT_PUBLIC_UMAMI_ANALYTICS_URL Umami analytics script URL https://umami.xxx.com/script.js
NEXT_PUBLIC_UMAMI_WEBSITE_ID Umami website ID xxx

Environment Variable Usage Examples

Docker Deployment

docker run -d \
  -p 3000:3000 \
  -e UMAMI_SERVER_URL=https://analytics.yoursite.com \
  -e UMAMI_USERNAME=admin \
  -e UMAMI_PASSWORD=your-password \
  songtianlun/umami-dashboard:latest

Docker Compose

version: '3.8'
services:
  umami-dashboard:
    image: songtianlun/umami-dashboard:latest
    ports:
      - "3000:3000"
    environment:
      - UMAMI_SERVER_URL=https://analytics.yoursite.com
      - UMAMI_USERNAME=admin
      - UMAMI_PASSWORD=your-password

Vercel Deployment

Add environment variables in Vercel project settings:

  • UMAMI_SERVER_URL
  • UMAMI_USERNAME
  • UMAMI_PASSWORD

Local Development

Create .env.local file:

UMAMI_SERVER_URL=https://analytics.yoursite.com
UMAMI_USERNAME=admin
UMAMI_PASSWORD=your-password

# Umami Analytics Script Configuration (choose one method)
# Method 1: Complete script tag (recommended)
NEXT_PUBLIC_ANALYTICS_SCRIPT='<script defer src="https://umami.frytea.com/script.js" data-website-id="f7438333-3487-4446-bdb9-c47b35016ccf"></script>'

# Method 2: Separate configuration (comment out the following two lines if using method 1)
# NEXT_PUBLIC_UMAMI_ANALYTICS_URL=https://umami.xxx.com/script.js
# NEXT_PUBLIC_UMAMI_WEBSITE_ID=xxxxxx

Development Environment Setup

1. Install Dependencies

npm install
# or
pnpm install
# or
yarn install

2. Configure Environment Variables (Optional)

Create .env.local file and add your Umami server configuration.

3. Start Development Server

npm run dev
# or
pnpm dev
# or
yarn dev

4. Open Browser

Visit http://localhost:3000 to view the application.

Configuration Management

First-time Setup

  1. Click the "Settings" button in the top right corner
  2. Fill in your Umami server information:
  3. Click "Test Connection" to verify configuration
  4. Click "Save Configuration" to complete setup

Configuration Reset

  • Click the reset button (πŸ”„) in the settings dialog
  • System will clear locally saved configuration
  • If environment variables are set, it will automatically read from environment variables
  • If no environment variables exist, all fields will be cleared

Configuration Priority

  1. User Manual Configuration: User-saved configuration in settings interface has highest priority
  2. Environment Variable Configuration: Automatically reads environment variables when no user configuration exists
  3. Empty Configuration: If none of the above exist, fields remain empty

Tech Stack

  • Frontend Framework: Next.js 14 (App Router)
  • UI Components: Shadcn/ui + Tailwind CSS
  • Chart Library: Recharts
  • State Management: React Hooks
  • Data Storage: LocalStorage + Session History
  • Type Support: TypeScript

Deployment Recommendations

Production Environment Deployment

  1. Use environment variables to set default configuration
  2. Recommend setting read-only default configuration, allowing users to override as needed
  3. Regularly backup user configuration data

Security Considerations

  • Please securely manage password information in environment variables
  • Recommend creating dedicated Umami accounts for Dashboard
  • Use HTTPS in production environments

Development Guide

Project Structure

β”œβ”€β”€ app/                    # Next.js App Router
β”‚   β”œβ”€β”€ api/umami/         # API routes
β”‚   β”œβ”€β”€ globals.css        # Global styles
β”‚   β”œβ”€β”€ layout.tsx         # Root layout
β”‚   └── page.tsx           # Main page
β”œβ”€β”€ components/            # React components
β”‚   β”œβ”€β”€ ui/               # UI base components
β”‚   β”œβ”€β”€ login-config.tsx  # Login configuration component
β”‚   └── ...
β”œβ”€β”€ hooks/                # Custom Hooks
β”œβ”€β”€ lib/                  # Utility functions
└── styles/               # Style files

Adding New Features

  1. Create new components in components/ directory
  2. Add API routes under app/api/umami/
  3. Update main page to integrate new features

License

MIT License

Contributing

Issues and Pull Requests are welcome!

Star History

Star History Chart