Skip to content

Latest commit

 

History

History
98 lines (74 loc) · 5.16 KB

File metadata and controls

98 lines (74 loc) · 5.16 KB
layout title nav_order permalink
default
Home
1
/

Plugin Development Documentation for Unraid®

Welcome to the community-maintained documentation for building plugins for Unraid® OS.

{: .note }

Unraid® is a registered trademark of Lime Technology, Inc. This documentation is not affiliated with, endorsed by, or sponsored by Lime Technology, Inc.

Unraid® Plugins page showing installed plugins

{: .warning }

This is unofficial documentation maintained by the community. While we strive for accuracy, please verify critical information against official sources and existing plugins.

Quick Start

New to plugin development? Start here:

  1. [Introduction to Plugins]({% link docs/introduction.md %}) - What are plugins and how do they work?
  2. [Your First Plugin]({% link docs/getting-started.md %}) - Step-by-step tutorial
  3. [PLG File Reference]({% link docs/plg-file.md %}) - The plugin installer format
  4. [Page Files]({% link docs/page-files.md %}) - Creating web UI pages

Documentation Sections

Getting Started

  • [Introduction]({% link docs/introduction.md %}) - Plugin system overview
  • [File System Layout]({% link docs/filesystem.md %}) - Where files go and why
  • [PLG File Reference]({% link docs/plg-file.md %}) - Plugin installer XML format
  • [Page Files]({% link docs/page-files.md %}) - Web UI development
  • [Event System]({% link docs/events.md %}) - Responding to system events

Core Concepts

  • [Dynamix Framework]({% link docs/core/dynamix-framework.md %}) - The $Dynamix global array
  • [Plugin Settings Storage]({% link docs/core/plugin-settings-storage.md %}) - .cfg files and parse_plugin_cfg()
  • [CSRF Tokens]({% link docs/core/csrf-tokens.md %}) - Form security requirements
  • [nchan/WebSocket]({% link docs/core/nchan-websocket.md %}) - Real-time updates
  • [Notifications System]({% link docs/core/notifications-system.md %}) - User alerts
  • [Cron Jobs]({% link docs/core/cron-jobs.md %}) - Scheduled tasks
  • [rc.d Scripts]({% link docs/core/rc-d-scripts.md %}) - Service management
  • [Multi-language Support]({% link docs/core/multi-language-support.md %}) - Translations

UI Development

  • [Form Controls]({% link docs/ui/form-controls.md %}) - Standard form elements
  • [JavaScript Patterns]({% link docs/ui/javascript-patterns.md %}) - jQuery and AJAX
  • [Icons and Styling]({% link docs/ui/icons-and-styling.md %}) - Font Awesome and CSS
  • [Tab Pages]({% link docs/ui/tab-pages.md %}) - Multi-tab interfaces
  • [Dashboard Tiles]({% link docs/ui/dashboard-tiles.md %}) - Custom dashboard tiles

Advanced Topics

  • [Docker Integration]({% link docs/advanced/docker-integration.md %}) - Container management
  • [Array/Disk Access]({% link docs/advanced/array-disk-access.md %}) - Disk and share info
  • [User Scripts Integration]({% link docs/advanced/user-scripts-integration.md %}) - Working with User Scripts
  • [Debugging Techniques]({% link docs/advanced/debugging-techniques.md %}) - Logging and troubleshooting
  • [Package Management]({% link docs/advanced/package-management.md %}) - Building .txz packages
  • [Update Mechanisms]({% link docs/advanced/update-mechanisms.md %}) - Version checking and updates

Security & Best Practices

  • [Input Validation]({% link docs/security/input-validation.md %}) - Sanitizing user input
  • [File Permissions]({% link docs/security/file-permissions.md %}) - Correct permissions
  • [Error Handling]({% link docs/security/error-handling.md %}) - Graceful failures

Reference

  • [Plugin Command]({% link docs/plugin-command.md %}) - CLI tool usage
  • [Build and Packaging]({% link docs/build-and-packaging.md %}) - CI/CD pipelines
  • [Example Plugins]({% link docs/examples.md %}) - Learn from real plugins
  • [PHP Functions Reference]({% link docs/reference/php-functions-reference.md %}) - Available helpers
  • [File Path Reference]({% link docs/reference/file-path-reference.md %}) - Important directories
  • [Event Types Reference]({% link docs/reference/event-types-reference.md %}) - All event hooks

Why This Documentation?

As noted in this forum thread, official documentation for Unraid® plugin development is scattered and incomplete. Most developers learn by:

  • Reverse engineering existing plugins
  • Asking questions in forums
  • Trial and error

This project aims to consolidate that knowledge into a single, well-organized resource.

Contributing

This documentation is open source! Found an error? Want to add content?

Resources