# Unraid Plugin Builder Tool for building and testing Unraid plugins locally as well as packaging them for deployment. ## Development Workflow ### 1. Watch for Changes The watch command will automatically sync changes from the API, UI components, and web app into the plugin source: ```bash # Start watching all components pnpm run watch:all # Or run individual watchers: pnpm run api:watch # Watch API changes pnpm run ui:watch # Watch Unraid UI component changes pnpm run wc:watch # Watch web component changes ``` This will copy: - API files to `./source/dynamix.unraid.net/usr/local/unraid-api` - UI components to `./source/dynamix.unraid.net/usr/local/emhttp/plugins/dynamix.my.servers/unraid-components` - Web components to the same UI directory ### 2. Build the Plugin Once your changes are ready, build the plugin package: ```bash # Build using Docker - on non-Linux systems pnpm run docker:build-and-run # Or build with the build script pnpm run build:validate ``` This will create the plugin files in `./deploy/release/` ### 3. Serve and Install Start a local HTTP server to serve the plugin files: ```bash # Serve the plugin files pnpm run http-server ``` Then install the plugin on your Unraid development machine by visiting: `http://SERVER_NAME.local/Plugins` Then paste the following URL into the Unraid Plugins page: `http://YOUR_LOCAL_DEV_MACHINE_IP:5858/plugins/local/dynamix.unraid.net.plg` Replace `SERVER_NAME` with your development machine's hostname. ## Development Tips - Run watchers in a separate terminal while developing - The http-server includes CORS headers for local development - Check the Unraid system log for plugin installation issues ## Environment Setup 1. Initialize environment: ```bash pnpm run env:init ``` 2. Validate environment: ```bash pnpm run env:validate ``` ## Available Commands ### Build Commands - `build` - Build the plugin package - `build:validate` - Build with environment validation - `docker:build` - Build the Docker container - `docker:run` - Run the builder in Docker - `docker:build-and-run` - Build and run in Docker ### Watch Commands - `watch:all` - Watch all component changes - `api:watch` - Watch API changes - `ui:watch` - Watch UI component changes - `wc:watch` - Watch web component changes ### Server Commands - `http-server` - Serve the plugin files locally ### Environment Commands - `env:init` - Create initial .env file - `env:validate` - Validate environment setup - `env:clean` - Remove .env file ## Troubleshooting 1. **Watch not updating files** - Check that source directories exist - Verify file permissions 2. **Build failures** - Ensure .env file exists - Check Docker setup if using containerized build - Verify source files are present 3. **Installation issues** - Confirm http-server is running - Check your local IP is correct - Verify plugin file permissions