Skip to content

Open-source status and monitoring platform for modern infrastructures.

License

Notifications You must be signed in to change notification settings

skygenesisenterprise/aether-status

Aether Status

License: MIT TypeScript Next.js Tailwind CSS Rust PRs Welcome Build Status Coverage

A modern, open-source status and monitoring platform for modern infrastructures. Built with Next.js and designed to provide real-time insights into your service health.

πŸš€ Features

  • Real-time Monitoring: Track service status with automatic health checks
  • Beautiful Dashboard: Clean, responsive interface inspired by modern status pages
  • Service Groups: Organize services into logical groups for better management
  • Historical Data: View uptime statistics and incident history
  • Dark Mode: Full dark mode support with system preference detection
  • TypeScript: Fully typed for better development experience
  • Mobile Responsive: Optimized for all device sizes

πŸ› οΈ Tech Stack

  • Frontend: Next.js 16, React 19, TypeScript
  • Styling: Tailwind CSS v4 with CSS variables
  • Backend: Rust API (planned)
  • Deployment: Vercel, Docker support

πŸ“¦ Installation

Prerequisites

  • Node.js 18+
  • pnpm (recommended) or npm/yarn

Setup

  1. Clone the repository:
git clone https://github.com/skygenesisenterprise/aether-status.git
cd aether-status
  1. Install dependencies:
pnpm install
  1. Start the development server:
pnpm dev
  1. Open http://localhost:3000 in your browser.

πŸ—οΈ Project Structure

aether-status/
β”œβ”€β”€ app/                    # Next.js App Router
β”‚   β”œβ”€β”€ components/         # React components
β”‚   β”‚   β”œβ”€β”€ OverallStatus.tsx
β”‚   β”‚   β”œβ”€β”€ ServiceCard.tsx
β”‚   β”‚   β”œβ”€β”€ ServiceGroup.tsx
β”‚   β”‚   β”œβ”€β”€ StatusBadge.tsx
β”‚   β”‚   └── StatusPage.tsx
β”‚   β”œβ”€β”€ hooks/              # Custom React hooks
β”‚   β”œβ”€β”€ lib/                # Utility functions
β”‚   β”œβ”€β”€ types/              # TypeScript type definitions
β”‚   β”œβ”€β”€ layout.tsx          # Root layout
β”‚   └── page.tsx            # Home page
β”œβ”€β”€ api/                    # Rust API backend
β”œβ”€β”€ public/                 # Static assets
└── .storybook/            # Storybook configuration

🎯 Core Components

Service Status Types

  • operational: Service is running normally
  • degraded: Service is running with performance issues
  • partial_outage: Some functionality is unavailable
  • major_outage: Service is completely down
  • maintenance: Service is under maintenance

Key Components

  • StatusPage: Main dashboard component
  • OverallStatus: Global status indicator
  • ServiceGroup: Groups of related services
  • ServiceCard: Individual service status display
  • StatusBadge: Status indicator with color coding

πŸ”§ Configuration

Environment Variables

Create a .env.local file in the root directory:

NEXT_PUBLIC_API_URL=http://localhost:8080
NEXT_PUBLIC_REFRESH_INTERVAL=30000

Service Configuration

Services are configured through the API. Each service requires:

{
  id: string
  name: string
  description: string
  status: ServiceStatus
  url?: string
  group?: string
  lastChecked: Date
  responseTime?: number
  uptime?: number
}

πŸš€ Deployment

Vercel (Recommended)

  1. Push your code to GitHub
  2. Connect your repository to Vercel
  3. Configure environment variables
  4. Deploy automatically

Docker

# Build the image
docker build -t aether-status .

# Run the container
docker run -p 3000:3000 aether-status

Manual Build

pnpm build
pnpm start

πŸ“Š API Integration

The frontend is designed to work with a REST API that provides:

  • GET /api/services: List all services
  • GET /api/services/:id: Get service details
  • GET /api/incidents: List recent incidents
  • GET /api/status: Get overall system status

🎨 Customization

Theming

The application uses CSS variables for theming. Override these in your CSS:

:root {
  --primary-color: #3b82f6;
  --background: #ffffff;
  --foreground: #000000;
}

Logo and Branding

Update the logo and branding in the StatusPage component:

<StatusPage
  title="Your Status Page"
  description="Monitor your services"
  logo="/your-logo.png"
  groups={serviceGroups}
/>

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Workflow

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Make your changes
  4. Run tests: pnpm lint
  5. Commit your changes: git commit -m 'Add amazing feature'
  6. Push to the branch: git push origin feature/amazing-feature
  7. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

πŸ“ž Support


Aether Status - Keeping your services transparent and reliable. πŸš€

About

Open-source status and monitoring platform for modern infrastructures.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

Packages

No packages published

Contributors 2

  •  
  •