Skip to content

ObsidianIRC/unrealircd-webpanel-2

Repository files navigation

Modern UnrealIRCd Admin Panel

A modern, responsive administration panel for UnrealIRCd servers built with React, TypeScript, Tailwind CSS, and Go.

πŸš€ Features

Frontend

  • Modern UI: Built with React 18, TypeScript, and Tailwind CSS
  • Responsive Design: Works seamlessly on desktop, tablet, and mobile devices
  • Dark/Light Theme: Full theme switching support
  • Real-time Updates: WebSocket integration for live network statistics
  • Component Library: Using Shadcn/UI for consistent, accessible components

Backend

  • Go API Server: High-performance REST API built with Go
  • WebSocket Support: Real-time data streaming to frontend
  • RPC Bridge: Connects to UnrealIRCd via RPC (ready for integration)
  • CORS Enabled: Proper cross-origin resource sharing configuration

Network Management

  • Dashboard: Real-time network overview with statistics and charts
  • User Management: View and manage connected users
  • Channel Management: Monitor IRC channels
  • Server Administration: Manage server bans, operators, and settings
  • Plugin Management: Install and configure plugins
  • Logs: Real-time log viewing
  • Role Management: User permissions and access control

πŸ“‹ Requirements

Frontend

  • Node.js 18+ or Bun
  • Modern web browser with ES2020 support

Backend

  • Go 1.21+
  • UnrealIRCd 6.0+ with RPC module enabled

πŸ› οΈ Installation

Frontend Development

  1. Install dependencies:
cd unrealircd-admin-panel
bun install
  1. Start the development server:
bun run dev

The frontend will be available at http://localhost:5173

Backend Development

  1. Navigate to the backend directory:
cd backend
  1. Initialize Go modules and download dependencies:
go mod tidy
  1. Start the API server:
go run main.go

The API will be available at http://localhost:8080

πŸ” Authentication

Demo Credentials:

  • Username: admin
  • Password: admin

In production, replace the mock authentication with your actual authentication system.

πŸ—οΈ Architecture

Frontend Stack

  • React 18: Modern React with hooks and functional components
  • TypeScript: Full type safety and better developer experience
  • Tailwind CSS: Utility-first CSS framework
  • Shadcn/UI: High-quality React components
  • Recharts: Beautiful, responsive charts
  • React Router: Client-side routing
  • Sonner: Toast notifications

Backend Stack

  • Go: High-performance backend language
  • Gorilla Mux: HTTP router and URL matcher
  • Gorilla WebSocket: WebSocket implementation
  • CORS: Cross-origin resource sharing middleware

πŸ“ Project Structure

unrealircd-admin-panel/
β”œβ”€β”€ src/                          # Frontend source code
β”‚   β”œβ”€β”€ components/              # React components
β”‚   β”‚   β”œβ”€β”€ layout/             # Layout components (header, sidebar)
β”‚   β”‚   └── ui/                 # Shadcn/UI components
β”‚   β”œβ”€β”€ contexts/               # React contexts (auth, theme)
β”‚   β”œβ”€β”€ hooks/                  # Custom React hooks
β”‚   β”œβ”€β”€ pages/                  # Application pages
β”‚   └── lib/                    # Utility functions
β”œβ”€β”€ backend/                     # Go backend
β”‚   β”œβ”€β”€ main.go                 # Main server file
β”‚   └── go.mod                  # Go module definition
β”œβ”€β”€ public/                     # Static assets
└── .same/                      # Development tracking

πŸ”Œ API Endpoints

Network Information

  • GET /api/network/stats - Network statistics
  • GET /api/network/health - Network health status

User Management

  • GET /api/users - List connected users

Real-time Updates

  • WS /ws - WebSocket connection for live updates

🎨 Design Features

  • Modern Interface: Clean, professional design inspired by modern admin dashboards
  • Data Visualization: Interactive charts for network traffic and statistics
  • Responsive Layout: Adaptive design that works on all screen sizes
  • Accessibility: WCAG compliant components with proper ARIA labels
  • Theme Support: Light and dark mode with system preference detection

πŸ”„ Real-time Features

  • Live network statistics updates
  • Real-time user connection/disconnection notifications
  • Server status monitoring
  • Activity feed with recent events

πŸ›‘οΈ Security Features

  • JWT-based authentication (ready for implementation)
  • Role-based access control
  • CORS protection
  • Input validation and sanitization

πŸš€ Deployment

Frontend (Static Build)

bun run build

Deploy the dist/ folder to your web server or CDN.

Backend (Production)

cd backend
go build -o unrealircd-admin-panel main.go
./unrealircd-admin-panel

πŸ“ˆ Future Enhancements

  • Full UnrealIRCd RPC integration
  • Advanced user actions (kick, ban, etc.)
  • Channel management interface
  • Server ban management with filters
  • Plugin marketplace
  • Configuration file editor
  • Audit logging
  • Multi-server support
  • Mobile app (React Native)

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

πŸ“„ License

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

πŸ†˜ Support

For support and questions:

  • Open an issue on GitHub
  • Check the UnrealIRCd documentation
  • Join the UnrealIRCd community

πŸ™ Acknowledgments

  • Original UnrealIRCd WebPanel team
  • Shadcn for the excellent UI components
  • The React and Go communities

About

UnrealIRCd Admin Web Panel 2.0

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published