A modern web management console for RustFS distributed file system.
- Vue 3 + Nuxt 4 + TypeScript + Tailwind CSS v4
- shadcn-vue components with dark mode
- i18n support (English, Chinese, Turkish)
- Responsive design
- S3-compatible API with AWS signing
- Real-time monitoring dashboard
- Node.js >= 22.0.0
- pnpm >= 10.19.0
- RustFS backend running
git clone https://github.com/rustfs/console.git
cd console
pnpm installpnpm devServer starts at http://localhost:3000.
Create .env:
APP_NAME=RustFS
BASE_URL=/rustfs/console/
API_BASE_URL=http://localhost:9000/rustfs/admin/v3
SERVER_HOST=http://localhost:9000
S3_REGION=us-east-1
S3_ENDPOINT=http://localhost:9000Configuration is auto-detected from server config, localStorage, or browser host.
pnpm build
pnpm preview├── components/ # Vue components
├── composables/ # Reusable logic
├── pages/ # Nuxt routes
├── lib/ # API clients, utilities
├── store/ # Pinia stores
├── tests/ # Test files
└── utils/ # Utility functions
pnpm type-check # TypeScript checking
pnpm lint # Linting
pnpm lint:fix # Auto-fix formattingpnpm test # Run tests
pnpm test:run # CI mode
pnpm test:coverage # With coverageSee tests/README.md for details.
- Component files: kebab-case (
bucket-selector.vue) - Component usage: StudlyCase (
<BucketSelector />) - Composables: camelCase with
useprefix (useBucket.ts) - TypeScript: Strict mode, avoid
any - Comments: English only
- Fork and clone
- Create feature branch:
git checkout -b feature/amazing-feature - Make changes following coding standards
- Test:
pnpm type-check && pnpm lint && pnpm test:run - Commit:
git commit -m 'feat: add amazing feature'(English only) - Push and create PR
Before committing, run all checks:
# Quick check (lint, type-check, tests, build)
pnpm run check
# Full check (includes security audit)
pnpm run pre-commitOr manually:
- ✅
pnpm lintpasses - ✅
pnpm type-checkpasses - ✅
pnpm test:runpasses - ✅
pnpm buildsucceeds - ✅
pnpm audit --audit-level=moderatepasses - ✅ No debug code (
console.log) - ✅ Self-reviewed
- ✅ Commit messages in English
Tip: Run pnpm run check before every commit to catch issues early.
Follow Conventional Commits:
feat: New featuresfix: Bug fixesdocs: Documentationstyle: Formattingrefactor: Code refactoringtest: Testschore: Build/tool changes
All commit messages must be in English.
pnpm buildOutput: .output/public (static files)
FROM node:22-alpine AS builder
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN corepack enable && corepack prepare pnpm@10.19.0 --activate
RUN pnpm install --frozen-lockfile
COPY . .
RUN pnpm build
FROM nginx:alpine
COPY --from=builder /app/.output/public /usr/share/nginx/html
EXPOSE 80Apache License 2.0 - see LICENSE