Frontend application for Rukhalt Backup Management System.
- 🎨 Modern React UI with TypeScript
- ⚡ Vite for fast development
- 🎨 Tailwind CSS for styling
- 🔐 JWT authentication
- 📊 Dashboard with real-time metrics
- 📦 Backup management interface
- 🐘 PostgreSQL backup and restore
- 🖥️ VPS instance management
- 📝 Activity logs and audit trail
- Framework: React 18
- Language: TypeScript
- Build Tool: Vite
- Styling: Tailwind CSS
- HTTP Client: Axios
- State Management: React Context
- Routing: React Router
- Node.js 18+ and npm
- Docker & Docker Compose (for containerized development)
- Navigate to client directory:
cd rukhalt/client- Install dependencies:
npm install- Copy environment file:
cp .env.example .env.local- Start development server:
npm run dev- Access the application:
- Frontend: http://localhost:3000
docker compose up -dnpm run dev # Start development server
npm run build # Build for production
npm run preview # Preview production build
npm run lint # Run ESLint
npm run type-check # Run TypeScript type checkingclient/
├── src/
│ ├── components/ # Reusable components
│ ├── contexts/ # React contexts
│ ├── pages/ # Page components
│ │ ├── Dashboard/ # Dashboard page
│ │ ├── Backups/ # Backups management
│ │ ├── Instances/ # Instance management
│ │ ├── ActivityLogs/ # Audit logs
│ │ └── ...
│ ├── services/ # API services
│ ├── utils/ # Utility functions
│ ├── App.tsx # Main app component
│ └── main.tsx # Entry point
├── public/ # Static assets
├── Dockerfile # Production Docker image
├── Dockerfile.dev # Development Docker image
├── nginx.conf # Nginx configuration
└── package.json # Dependencies
Create a .env.local file:
VITE_API_URL=http://localhost:8080/api/v1npm run buildThe build output will be in the dist/ directory.
docker build -t rukhalt-client:latest .The client communicates with the Rukhalt server API. Configure the API URL in .env.local:
VITE_API_URL=http://localhost:8080/api/v1- System health overview
- Storage usage charts
- Recent backup activity
- Quick actions
- Upcoming scheduled backups
- Create on-demand backups
- Schedule automated backups
- View backup history
- Download backups
- Restore from backups
- PostgreSQL instances
- VPS instances
- Object storage instances
- Connection testing
- Credential management
- Audit trail
- User actions
- System events
- Filtering and search
- Create page component in
src/pages/ - Add route in
src/App.tsx - Update navigation in
src/components/Layout.tsx
API calls are centralized in src/services/api.ts. Add new endpoints there:
export const myNewEndpoint = async () => {
const response = await api.get('/my-endpoint');
return response.data;
};MIT