Parity
No description available
Install / Use
/learn @shreyaspapi/ParityREADME
Parity: Unraid Client
A modern, feature-rich mobile app for monitoring and managing your Unraid servers
Features • Installation • API Permissions • Documentation • Contributing • Support
</div>Screenshots
<p align="center"> <img src="screenshots/iOS/1.PNG" width="18%" alt="Dashboard" /> <img src="screenshots/iOS/2.PNG" width="18%" alt="Servers" /> <img src="screenshots/iOS/3.PNG" width="18%" alt="Docker" /> <img src="screenshots/iOS/4.PNG" width="18%" alt="VMs" /> <img src="screenshots/iOS/5.PNG" width="18%" alt="Settings" /> </p>Overview
Parity is an open-source, cross-platform mobile application that brings comprehensive Unraid server management to your iOS and Android devices. Built with React Native and Expo, it provides real-time monitoring, intuitive controls, and powerful notifications—all wrapped in a beautiful, native mobile interface.
Why Parity?
While Unraid 7.2+ offers a responsive web interface, Parity delivers a superior mobile experience with:
- Native Push Notifications - Get instant alerts for critical events
- Optimized Mobile UX - Purpose-built for touch interfaces
- Biometric Security - Face ID/Touch ID support
- Real-time Monitoring - Live server metrics at your fingertips
- Dark Mode - Beautiful light and dark themes
- Offline Support - View cached data when disconnected
- Multi-Server - Manage multiple Unraid servers from one app
Features
Real-Time Monitoring
- System Dashboard - CPU, RAM, network, disk I/O, and temperatures
- Array Status - Disk health, parity status, and capacity monitoring
- Smart Notifications - Get alerted to issues before they become critical
Docker Management
- View all containers with status and resource usage
- Start, stop, and restart containers
- Monitor container logs
- Quick access to container WebUIs
Virtual Machine Control
- View VM status and resource allocation
- Start, stop, pause, and resume VMs
- Monitor VM resource usage
Intelligent Notifications
- Critical alerts (disk failures, high temps, server offline)
- Warning notifications (high resource usage, container crashes)
- Configurable quiet hours
- Per-server notification settings
Security & Privacy
- API key-based authentication
- Encrypted credential storage
- Biometric authentication support (Face ID, Touch ID, Fingerprint)
- No telemetry or data collection
- Local-only data storage
Installation
Prerequisites
- Node.js 18+ (Download)
- pnpm (recommended) or npm/yarn
npm install -g pnpm - Expo CLI
npm install -g expo-cli - Unraid Server with OS v6.12+ (v7.2+ recommended)
Setup
-
Clone the repository
git clone https://github.com/yourusername/parity.git cd parity -
Install dependencies
pnpm install -
Start the development server
pnpm start -
Run on your device
- iOS: Press
ior scan the QR code with the Camera app - Android: Press
aor scan with the Expo Go app - Web: Press
wto open in browser (limited functionality)
- iOS: Press
Unraid Server Configuration
-
Generate an API key on your Unraid server:
unraid-api apikey --create -
Save the API key - You'll need it to connect the app
-
Ensure the Unraid API is running:
systemctl status unraid-api -
Configure firewall (if needed) to allow connections on port 3001
Required API Permissions
When creating your API key, you need to grant the following permissions for Parity to function properly:
✅ Required Permissions
| Permission | Description | Used For |
|------------|-------------|----------|
| info | System Information | Dashboard: CPU, memory, OS info, uptime, hostname, kernel version |
| metrics | System Metrics | Real-time CPU & RAM usage charts |
| array | Array Status | Disk health, parity status, array capacity, boot device info |
| shares | Share Information | Display share sizes and usage |
| vars | Server Variables | Server name and Unraid version |
| registration | License Info | Display license type and status |
| docker | Docker Management | List containers, view status, start/stop containers |
| vms | VM Management | List virtual machines, view status, start/stop VMs |
| notifications | Notifications | View and manage server notifications |
⚠️ Optional Control Permissions
These permissions enable control features. Without them, you can still monitor but not control:
| Permission | Description | Used For |
|------------|-------------|----------|
| array.setState | Array Control | Start/Stop the array from the app |
| docker.start | Start Containers | Start Docker containers |
| docker.stop | Stop Containers | Stop Docker containers |
| vm.start | Start VMs | Start virtual machines |
| vm.stop | Stop VMs | Stop virtual machines |
Creating an API Key with All Required Permissions
Option 1: Full Access (Recommended for personal use)
unraid-api apikey --create --name "Parity App" --description "Mobile app access"
Option 2: Specific Permissions (For restricted access)
unraid-api apikey --create --name "Parity App" \
--scope info \
--scope metrics \
--scope array \
--scope shares \
--scope vars \
--scope registration \
--scope docker \
--scope vms \
--scope notifications
Troubleshooting Permission Issues
If you see errors like "Permission denied" or certain features don't work:
-
Check your API key permissions:
unraid-api apikey --list -
Delete and recreate with proper permissions:
unraid-api apikey --delete --name "Parity App" unraid-api apikey --create --name "Parity App" -
Verify API is running:
systemctl status unraid-api systemctl restart unraid-api # If needed
Usage
First-Time Setup
- Launch the app
- Enter your server details:
- Server Name: A friendly name (e.g., "Home Server")
- Server IP/Hostname: Your Unraid server address (e.g.,
192.168.1.100:3001) - API Key: The key generated in the previous step
- Tap "Connect" to validate and save
Dashboard
The main dashboard displays:
- System uptime and Unraid version
- Real-time CPU and RAM usage
- Network activity
- Array status
- Active containers and VMs
Pull down to refresh or enable auto-refresh in settings.
Managing Servers
- Tap the server name in the header to switch between servers
- Add multiple servers in Settings → Manage Servers
- Remove or edit server configurations anytime
Notifications
Configure notifications in Settings → Notifications:
- Choose which alert types to receive
- Set quiet hours for Do Not Disturb
- Customize notification sounds
Architecture
Parity follows a clean, modular architecture:
src/
├── components/ # Reusable UI components
│ └── ui/ # Base design system components
├── config/ # App configuration
├── gql/ # GraphQL types and utilities
├── graphql/ # GraphQL queries and mutations
├── hooks/ # Custom React hooks
├── lib/ # Third-party integrations (Apollo Client)
├── providers/ # Context providers (Auth, Theme, Apollo)
├── screens/ # Screen components
├── services/ # Business logic layer
├── types/ # TypeScript type definitions
└── utils/ # Helper functions
Key Technologies
- React Native & Expo - Cross-platform mobile framework
- TypeScript - Type-safe development
- Apollo Client - GraphQL data management
- GraphQL Code Generator - Auto-generate TypeScript types
- AsyncStorage - Secure local storage
- Expo Router - File-based navigation
Documentation
- Product Requirements Document - Complete product vision and specifications
- Architecture Guide - Technical architecture deep-dive
- Contributing Guide - How to contribute to Parity
- API Reference - Unraid GraphQL API integration
- Troubleshooting - Common issues and solutions
- Changelog - Version history and updates
Development
Available Scripts
pnpm start # Start Expo development server
pnpm android # Run on Android device/emulator
pnpm ios # Run on iOS simulator
pnpm web # Run in web browser
pnpm lint # Run ESLint
pnpm codegen # Generate GraphQL TypeScript types
GraphQL Code Generation
To generate TypeScript types from your Unraid GraphQL schema:
-
Set environment variables:
export UNRAID_SCHEMA_URL=http://YOUR_IP:3001/graphql export API_KEY=your_api_key -
Run code generation:
pnpm codegen
Testing
# Run unit tests (coming soon)
pnpm test
# Run integration tests (coming soon)
pnpm test:integration
Building for Production
iOS
# Build with EAS
eas build --platform ios
#
Related Skills
node-connect
344.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
99.2kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.4kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.4kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
