# console **Repository Path**: huwei2023/console ## Basic Information - **Project Name**: console - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-01 - **Last Updated**: 2026-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RustFS Console A modern, responsive web management console for RustFS distributed file system, built with Next.js 16 (App Router) + React 19 + TypeScript + Tailwind CSS v4 + shadcn/ui. ## โœจ Features ### Core Features - **File Browser** - Visual file/object management interface with upload, download, delete operations - **Access Keys Management** - Create and manage service account access keys - **Policy Management** - Configure and manage IAM policies for fine-grained access control - **User Management** - Create, edit, enable/disable, and delete user accounts - **User Groups Management** - Create and manage user groups to simplify permission assignment ### Advanced Features - **Import/Export** - Import and export system configurations - **Performance Monitoring** - Real-time system status, server information, and performance metrics - **Tiered Storage** - Configure and manage tiered storage policies - **Event Destinations** - Configure event destinations for event notifications - **SSE Settings** - Server-side encryption configuration - **License Management** - View and manage system license information ## ๐Ÿ› ๏ธ Tech Stack ### Core Framework - **[Next.js 16](https://nextjs.org/)** - React full-stack framework with App Router - **[React 19](https://react.dev/)** - UI library - **[TypeScript 6](https://www.typescriptlang.org/)** - Type safety ### UI & Styling - **[Tailwind CSS v4](https://tailwindcss.com/)** - Utility-first CSS framework - **[shadcn/ui](https://ui.shadcn.com/)** - High-quality component library based on Base UI - **[Remix Icon](https://remixicon.com/)** - Icon library - **[next-themes](https://github.com/pacocoursey/next-themes)** - Theme switching support ### Data Management - **[TanStack Table](https://tanstack.com/table)** - Powerful table component - **[TanStack Virtual](https://tanstack.com/virtual)** - Virtual scrolling support - **[AWS SDK v3](https://aws.amazon.com/sdk-for-javascript/)** - S3 client integration ### Other Tools - **[i18next](https://www.i18next.com/)** - Internationalization support (13 languages) - **[Recharts](https://recharts.org/)** - Chart visualization - **[Sonner](https://sonner.emilkowal.ski/)** - Toast notifications - **[date-fns](https://date-fns.org/)** / **[dayjs](https://day.js.org/)** - Date handling ## ๐Ÿ“ Project Structure ``` console/ โ”œโ”€โ”€ app/ # Next.js App Router pages and layouts โ”‚ โ”œโ”€โ”€ (auth)/ # Authentication pages โ”‚ โ””โ”€โ”€ (dashboard)/ # Dashboard pages โ”œโ”€โ”€ components/ # React components โ”‚ โ”œโ”€โ”€ ui/ # shadcn/ui base components โ”‚ โ””โ”€โ”€ ... # Business components โ”œโ”€โ”€ hooks/ # Custom React Hooks โ”œโ”€โ”€ contexts/ # React Context providers โ”œโ”€โ”€ lib/ # Utility functions and library code โ”‚ โ””โ”€โ”€ feedback/ # Global feedback APIs (toast, dialog) โ”œโ”€โ”€ types/ # TypeScript type definitions โ”œโ”€โ”€ i18n/ # Internationalization resource files โ”‚ โ””โ”€โ”€ locales/ # Multi-language files (13 languages) โ”œโ”€โ”€ config/ # Configuration files โ”œโ”€โ”€ public/ # Static assets โ””โ”€โ”€ tests/ # Test files (mirror source structure) ``` ## ๐Ÿš€ Quick Start ### Prerequisites - **Node.js** >= 22 - **pnpm** >= 11.0.0 (recommended to use the version specified in the project) - **Docker** - For running RustFS service ### Start RustFS Service The RustFS service must be started before development. Run it using Docker: ```bash # Create data directory mkdir rustfs-data # Run RustFS service docker run -p 9000:9000 -p 9001:9001 -v ./rustfs-data:/data rustfs/rustfs:1.0.0-alpha.82 ``` The service will start on the following ports: - **9000** - API port - **9001** - Console port ### Install Dependencies ```bash pnpm install ``` ### Development Mode **Note**: Before starting the development server, ensure the RustFS service is running (see "Start RustFS Service" section above). Start the development server (with hot reload): ```bash pnpm dev ``` Visit [http://localhost:3000](http://localhost:3000) to view the application. ### Build for Production ```bash pnpm build ``` ### Run Production Build ```bash pnpm start ``` ## ๐Ÿ’ป Development Guide ### Code Quality Checks Before committing code, ensure all checks pass: #### 1. Lockfile Sync Check ```bash pnpm install --frozen-lockfile ``` Ensure `pnpm-lock.yaml` is in sync with `package.json`. After modifying `package.json`, you must run `pnpm install` and commit the updated lockfile. #### 2. TypeScript Type Check ```bash pnpm type-check # or pnpm build ``` #### 3. ESLint Check ```bash pnpm lint ``` #### 4. Code Formatting Check ```bash pnpm format:check ``` #### 5. Auto-fix Formatting Issues ```bash pnpm lint:fix # or pnpm format ``` ### Naming Conventions - **Component files**: Use kebab-case (e.g., `bucket-selector.tsx`) - **Component names**: Use PascalCase (e.g., ``) - **Directory structure**: Group by feature/domain, use plural forms (e.g., `buckets/`, `users/`) - **File naming**: Don't repeat directory name in filename (e.g., `buckets/info.tsx` instead of `buckets/bucket-info.tsx`) ### UI Component Usage - **Declarative UI**: Use base components from `@/components/ui/*` - **Imperative feedback**: Use `@/lib/feedback/message` and `@/lib/feedback/dialog` for global toast and dialog prompts ### Testing When tests are configured: - Test files should be placed in `tests/` directory, mirroring source structure - Use `*.spec.ts` or `*.test.ts` naming - Run tests: `pnpm test:run` ## ๐ŸŒ Internationalization The project supports multiple languages. Currently supported languages: - ไธญๆ–‡๏ผˆ็ฎ€ไฝ“๏ผ‰(Chinese Simplified) - English (US) - Deutsch (DE) - Espaรฑol (ES) - Franรงais (FR) - Bahasa Indonesia (ID) - Italiano (IT) - ๆ—ฅๆœฌ่ชž (JP) - ํ•œ๊ตญ์–ด (KR) - Portuguรชs (BR) - ะ ัƒััะบะธะน (RU) - Tรผrkรงe (TR) - ุงู„ุนุฑุจูŠุฉ (AR-MA) Language files are located in the `i18n/locales/` directory. ## ๐Ÿ“ฆ Build & Deployment ### Environment Variables Configure necessary environment variables according to your deployment environment (e.g., API endpoints, authentication configuration). ### Build Configuration The project uses Next.js default build configuration. Custom configuration can be done via `next.config.ts`. ### Deployment The project can be deployed to any platform that supports Next.js: - **Vercel** (Recommended) - Zero-config deployment - **Docker** - Using official Next.js Docker image - **Self-hosted** - Run `pnpm build && pnpm start` ## ๐Ÿค Contributing ### Commit Guidelines - Use conventional commit messages (Conventional Commits) - Ensure all code quality checks pass before committing - Each PR should include a clear description and related issue links ### Code Review - Keep PR scope focused; coordinate large refactors in advance - Commit messages and PR titles must be in English - UI-related work should include screenshots ## ๐Ÿ“„ License Licensed under the Apache License 2.0. See [LICENSE](LICENSE) for details. ## ๐Ÿ”— Resources - [Next.js Documentation](https://nextjs.org/docs) - [React Documentation](https://react.dev/) - [Tailwind CSS Documentation](https://tailwindcss.com/docs) - [shadcn/ui Documentation](https://ui.shadcn.com/) - [TypeScript Documentation](https://www.typescriptlang.org/docs/) ## ๐Ÿ“ Development Notes - Follow the guidelines in `AGENTS.md` - Keep code simple, readable, and maintainable - Prefer using existing project tools and patterns - Consider internationalization support when adding new features - Ensure all changes pass type checking