Skip to content

Latest commit

 

History

History

README.md

Unraid Plugin Builder

Tool for building and testing Unraid plugins locally as well as packaging them for deployment.

Development Workflow

1. Build the Plugin

Note: Building the plugin requires Docker.

Once your changes are ready, build the plugin package:

# Start Docker container (builds dependencies automatically)
pnpm run docker:build-and-run

# Inside the container, build the plugin
pnpm build

This will:

  1. Build the API release (api/deploy/release/)
  2. Build the web standalone components (web/dist/)
  3. Start Docker container with HTTP server on port 5858
  4. Build the plugin package (when you run pnpm build)

The plugin files will be created in ./deploy/ and served automatically.

2. Install on Unraid

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

  • The HTTP server includes CORS headers for local development
  • Check the Unraid system log for plugin installation issues

Environment Setup

  1. Initialize environment:

    pnpm run env:init
  2. Validate environment:

    pnpm run env:validate

Available Commands

Build Commands

  • build - Build the plugin package (run inside Docker container)
  • docker:build - Build the Docker container
  • docker:run - Run the builder in Docker
  • docker:build-and-run - Build dependencies and start Docker container

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