🚀 Modern frontend for the Community-Scripts Proxmox VE Helper-Scripts repository
A comprehensive, user-friendly interface built with Next.js that provides access to 300+ automation scripts for Proxmox Virtual Environment management. This frontend serves as the official website for the Community-Scripts organization's Proxmox VE Helper-Scripts repository.
- 📜 Script Management: Browse, search, and filter 300+ Proxmox VE scripts
- 📱 Responsive Design: Mobile-first approach with modern UI/UX
- 🔍 Advanced Search: Fuzzy search with category filtering
- 📊 Analytics Integration: Built-in analytics for usage tracking
- 🌙 Dark/Light Mode: Theme switching with system preference detection
- ⚡ Performance Optimized: Static site generation for lightning-fast loading
- 🎨 Modern UI Components: Built with Radix UI and shadcn/ui
- 📈 Data Visualization: Charts and metrics using Chart.js
- 🔄 State Management: React Query for efficient data fetching
- 📝 Type Safety: Full TypeScript implementation
- 🚀 Static Export: Optimized for GitHub Pages deployment
- Next.js 15.2.4 - React framework with App Router
- React 19.0.0 - Latest React with concurrent features
- TypeScript 5.8.2 - Type-safe JavaScript
- Tailwind CSS 3.4.17 - Utility-first CSS framework
- Radix UI - Unstyled, accessible UI components
- shadcn/ui - Re-usable components built on Radix UI
- Framer Motion - Animation library
- Lucide React - Icon library
- TanStack Query 5.71.1 - Powerful data synchronization
- Zod 3.24.2 - TypeScript-first schema validation
- nuqs 2.4.1 - Type-safe search params state manager
- Vitest 3.1.1 - Fast unit testing framework
- React Testing Library - Simple testing utilities
- ESLint - Code linting and formatting
- Prettier - Code formatting
- Chart.js - Data visualization
- Fuse.js - Fuzzy search
- date-fns - Date utility library
- Next Themes - Theme management
- Node.js 18+ (recommend using the latest LTS version)
- npm, yarn, pnpm, or bun package manager
- Git for version control
-
Clone the repository
git clone https://github.com/community-scripts/ProxmoxVE.git cd ProxmoxVE/frontend -
Install dependencies
# Using npm npm install # Using yarn yarn install # Using pnpm pnpm install # Using bun bun install
-
Start the development server
npm run dev # or yarn dev # or pnpm dev # or bun dev
-
Open your browser
Navigate to http://localhost:3000 to see the application running.
The application uses the following environment variables:
BASE_PATH: Set to "ProxmoxVE" for GitHub Pages deployment- Analytics configuration is handled in
src/config/siteConfig.tsx
# Development
npm run dev # Start development server with Turbopack
npm run build # Build for production
npm run start # Start production server (after build)
# Code Quality
npm run lint # Run ESLint
npm run typecheck # Run TypeScript type checking
npm run format:write # Format code with Prettier
npm run format:check # Check code formatting
# Deployment
npm run deploy # Build and deploy to GitHub Pages-
Feature Development
- Create a new branch for your feature
- Follow the established TypeScript and React patterns
- Use the existing component library (shadcn/ui)
- Ensure responsive design principles
-
Code Standards
- Follow TypeScript strict mode
- Use functional components with hooks
- Implement proper error boundaries
- Write descriptive variable and function names
- Use early returns for better readability
-
Styling Guidelines
- Use Tailwind CSS utility classes
- Follow mobile-first responsive design
- Implement dark/light mode considerations
- Use CSS variables from the design system
-
Testing
- Write unit tests for utility functions
- Test React components with React Testing Library
- Ensure accessibility standards are met
- Run tests before committing
The project uses a component-driven development approach:
// Example component structure
import { cn } from "@/lib/utils";
import { Button } from "@/components/ui/button";
interface ComponentProps {
title: string;
className?: string;
}
export const Component = ({ title, className }: ComponentProps) => {
return (
<div className={cn("default-classes", className)}>
<Button>{title}</Button>
</div>
);
};The application is configured for static export in next.config.mjs:
const nextConfig = {
output: "export",
basePath: `/ProxmoxVE`,
images: {
unoptimized: true // Required for static export
}
};We welcome contributions from the community! Here's how you can help:
- Fork the repository on GitHub
- Clone your fork locally
- Create a new branch for your feature or bugfix
- Make your changes following our coding standards
- Submit a pull request with a clear description
- Follow the existing TypeScript and React patterns
- Use descriptive variable and function names
- Implement proper error handling
- Write self-documenting code with appropriate comments
- Use functional components with hooks
- Implement proper TypeScript types
- Follow accessibility best practices
- Ensure responsive design
- Use the existing design system components
- Update documentation if needed
- Update the README if you've added new features
- Request review from maintainers
- 🐛 Bug fixes: Report and fix issues
- ✨ New features: Enhance functionality
- 📚 Documentation: Improve guides and examples
- 🎨 UI/UX: Improve design and user experience
- ♿ Accessibility: Enhance accessibility features
- 🚀 Performance: Optimize loading and runtime performance
This project is licensed under the MIT License - see the LICENSE file for details.
- tteck - Original creator of the Proxmox VE Helper-Scripts
- Community-Scripts Organization - Maintaining and expanding the project
- Proxmox Community - For continuous feedback and support
- All Contributors - Thank you for your valuable contributions!
- 🌐 Live Website: https://community-scripts.github.io/ProxmoxVE/
- 💬 Discord Server: https://discord.gg/3AnUqsXnmK
- 📝 Change Log: https://github.com/community-scripts/ProxmoxVE/blob/main/CHANGELOG.md
Made with ❤️ by the Community-Scripts team and contributors