SkillAgentSearch skills...

Parity

No description available

Install / Use

/learn @shreyaspapi/Parity
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<div align="center">

Parity: Unraid Client

A modern, feature-rich mobile app for monitoring and managing your Unraid servers

License: MIT Expo React Native TypeScript

FeaturesInstallationAPI PermissionsDocumentationContributingSupport

</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

  1. Clone the repository

    git clone https://github.com/yourusername/parity.git
    cd parity
    
  2. Install dependencies

    pnpm install
    
  3. Start the development server

    pnpm start
    
  4. Run on your device

    • iOS: Press i or scan the QR code with the Camera app
    • Android: Press a or scan with the Expo Go app
    • Web: Press w to open in browser (limited functionality)

Unraid Server Configuration

  1. Generate an API key on your Unraid server:

    unraid-api apikey --create
    
  2. Save the API key - You'll need it to connect the app

  3. Ensure the Unraid API is running:

    systemctl status unraid-api
    
  4. 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:

  1. Check your API key permissions:

    unraid-api apikey --list
    
  2. Delete and recreate with proper permissions:

    unraid-api apikey --delete --name "Parity App"
    unraid-api apikey --create --name "Parity App"
    
  3. Verify API is running:

    systemctl status unraid-api
    systemctl restart unraid-api  # If needed
    

Usage

First-Time Setup

  1. Launch the app
  2. 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
  3. 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


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:

  1. Set environment variables:

    export UNRAID_SCHEMA_URL=http://YOUR_IP:3001/graphql
    export API_KEY=your_api_key
    
  2. 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

View on GitHub
GitHub Stars139
CategoryDevelopment
Updated3d ago
Forks8

Languages

TypeScript

Security Score

90/100

Audited on Mar 29, 2026

No findings