From 4c58e9ec75e1803a3b939d59bf1385b82e0fe687 Mon Sep 17 00:00:00 2001 From: dopeytree Date: Sat, 18 Oct 2025 18:55:09 +0100 Subject: [PATCH 1/4] Add comprehensive developer documentation for Community Applications - Added docs/Developer/developer.md with complete guide for creating and submitting apps and plugins - Covers Docker app templates, PLG plugin development, submission process, and best practices - Includes examples, testing procedures, and moderation policies - Documents sync frequency and update processes for Community Applications store --- docs/Developer/developer.md | 156 ++++++++++++++++++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 docs/Developer/developer.md diff --git a/docs/Developer/developer.md b/docs/Developer/developer.md new file mode 100644 index 0000000000..8e7679b3c7 --- /dev/null +++ b/docs/Developer/developer.md @@ -0,0 +1,156 @@ +# Creating and Submitting Apps and Plugins to the Unraid Community Applications Store + +Community Applications (CA) is a plugin for Unraid that provides a curated catalog of Docker containers (apps) and plugins. This guide explains how developers can create, test, and submit their own apps and plugins for inclusion in CA. Submissions are moderated to ensure safety, compatibility, and a positive user experience. Follow the steps below to prepare and submit your work. + +## Prerequisites +- Install the Community Applications plugin on your Unraid system via the **Plugins** tab in the Unraid web UI. +- Create a GitHub account and enable two-factor authentication (2FA) on your repositories—this is required for security. +- Create a support thread for your app or plugin on the Unraid forums (post in any relevant section; a moderator will move it to the appropriate forum, such as Docker Containers or Plugin Support). +- For Docker apps, enable **Docker Authoring Mode** in ***Settings → Docker*** (stop the Docker service first, enable Advanced View, toggle Authoring Mode, then restart the service). +- Familiarize yourself with CA policies at [CA Application Policies](https://forums.unraid.net/topic/87144-ca-application-policies/) to avoid rejection or blacklisting. + +## Creating and Submitting Docker Apps +Docker apps are defined by XML template files that specify the container's configuration, such as ports, volumes, environment variables, and metadata. + +### Step 1: Create the Docker Template XML +1. Go to the **Docker** tab and select **Add Container**. +2. Fill in the details based on your Docker image (e.g., from Docker Hub): + - **Repository**: The Docker image name (e.g., `domistyle/idrac6`). + - **Network Type**: Typically `bridge`. + - **Privileged**: Set to `true` only if necessary (e.g., for hardware access). + - Add ports, volumes, and variables using **Add another Path, Port, Variable or Device**. + - **Ports**: Use container ports (e.g., 5800 for WebUI). Set **Host Port** to blank or optional. + - **Volumes/Paths**: Use container paths (e.g., `/config`); avoid host paths to prevent auto-creating shares. + - **Variables**: Define keys (e.g., `IDRAC_HOST`), defaults, and descriptions. + - **WebUI**: Use format like `http://[IP]:[PORT:5800]` to dynamically map host ports. + - **Icon**: URL to a PNG or JPG image (host on GitHub for reliability). + - **Overview/Description**: Provide a clear, Markdown-formatted summary (no HTML). + - **Category**: Select from official options (e.g., `Tools: Network:Management`). + - **Support**: Link to your Unraid forums support thread. + - **Project**: Link to the project's GitHub or webpage. +3. Click **Save** to generate the XML. Copy it from the displayed text (in Authoring Mode). +4. Clean the XML: + - Remove unnecessary tags (e.g., empty ``, ``). + - Use `` elements for ports, volumes, and variables (v2 format preferred over legacy v1 sections like `` or ``). + - Ensure no HTML tags; use Markdown for formatting. + +Example cleaned XML for a sample app: +``` + + + idrac6 + domistyle/idrac6 + https://hub.docker.com/r/domistyle/idrac6/ + bridge + false + https://github.com/DomiStyle/docker-idrac6/issues + https://github.com/DomiStyle/docker-idrac6/ + Allows access to the iDRAC 6 console without installing Java or messing with Java Web Start. Java is only run inside of the container and access is provided via web interface or directly with VNC. + Tools: Network:Management + http://[IP]:[PORT:5800] + https://raw.githubusercontent.com/user/repo/master/icon.png + + + + + +``` + +### Step 2: Test the Template +- Install the container on your Unraid system using the template. +- Verify ports, volumes, and variables work as expected. +- Check for errors in CA's **Statistics** section (e.g., template errors or invalid templates). + +### Step 3: Host the Template on GitHub +- Create a new GitHub repository (use "master" or "main" branch). +- Upload the XML file (name it descriptively, e.g., `my-app.xml`). +- Optionally, add a developer profile with `ca_profile.xml` in the repo root for enhanced visibility in CA searches. + +Example `ca_profile.xml`: +``` + + + https://raw.githubusercontent.com/user/repo/master/avatar.jpg + Creating Docker containers with a focus on simplicity and auto-updates. + https://www.paypal.me/user + Support my work with a donation. + https://forums.unraid.net/topic/your-support-thread/ + +``` + +### Step 4: Submit to Community Applications +1. Create a support thread on the Unraid forums. +2. Fill out the online submission form: [CA Submission Form](https://form.asana.com/?k=qtIUrf5ydiXvXzPI57BiJw&d=714739274360802). +3. Provide your GitHub repo URL, support thread link, and other details. +4. Moderators review the submission (may request fixes). Approved templates appear in CA within ~2 hours. +5. For updates, push changes to GitHub; CA syncs automatically every 2 hours. + +## Update Process and Sync Frequency +CA maintains a centralized feed of approved apps and plugins, hosted at [https://raw.githubusercontent.com/Squidly271/AppFeed/master/applicationFeed.json](https://raw.githubusercontent.com/Squidly271/AppFeed/master/applicationFeed.json). This feed is aggregated from developer GitHub repositories and updated by moderators. + +- **Sync Frequency**: CA checks and syncs with developer GitHub repositories approximately every 2 hours. Users can manually trigger a refresh in the CA interface via the **Refresh Apps** button (under the Apps tab) to pull the latest feed sooner. +- **Time for New Submissions to Appear**: After moderator approval (which can take from hours to days depending on review queue and any required fixes), the app or plugin typically becomes visible in the CA store within ~2 hours of feed update. +- **Time for Updates to Appear**: Once changes are pushed to your GitHub repository (e.g., XML updates, new versions), they propagate to the CA store within 2 hours during the next automated sync. If the update involves moderator review (e.g., significant changes to plugin code), expect additional delay for approval. +- **Local Caching**: Users' local CA instances cache the feed; manual refreshes or restarts may be needed to see updates immediately. In cases of issues (e.g., DNS or network problems), check diagnostics or forum support threads for troubleshooting. + +For plugins, new submissions or major updates trigger a manual notification and code review by moderators like @Squid, which may extend timelines beyond the automated sync. + +## Creating and Submitting Plugins +Plugins are `.plg` files (XML-based) that install software or features directly on Unraid. They have stricter moderation due to root access. + +### Step 1: Create the Plugin PLG File +- PLG files define installation steps, such as downloading binaries, setting permissions, and integrating with the Unraid UI. +- Use an existing PLG as a template (e.g., from GitHub repos). + +Example basic PLG structure: +``` + + + + + + +]> + + Short description of the plugin. + Changelog here. + + + + + +``` + +- Include scripts for installation, updates, and removal. +- Test on a local Unraid system by placing the `.plg` in `/config/plugins` on the flash drive and rebooting. + +### Step 2: Host on GitHub +- Create a GitHub repo and upload the `.plg` file. +- Add `ca_profile.xml` if desired (same as for Docker apps). + +### Step 3: Submit to Community Applications +- Plugins follow similar submission rules as Docker apps but are ineligible if better suited as Dockers. +- Create a support thread on the Unraid forums. +- Submit via PM to moderator @Squid or use the Docker submission form (adapt for plugins). +- Moderators review for security, openness (open-source preferred), and compatibility. Closed-source plugins are rarely accepted. + +## Best Practices +- **Ports**: Reference container ports in WebUI (e.g., `[PORT:8080]`) for dynamic mapping. +- **Volumes**: Avoid host paths; use container paths to let users configure. +- **Environment Variables**: Provide defaults and clear descriptions; mask passwords. +- **Icons and Descriptions**: Use reliable URLs for icons; write concise, informative descriptions with Markdown. +- **Compatibility**: Include `` for dependencies (e.g., hardware plugins). +- **Updates**: Set `false` in Docker XML to prevent auto-overwrites. +- **Security**: No HTML tags, no extra bash commands, no affiliate links. +- **Testing**: Use Authoring Mode; check CA Statistics for errors. +- **Uniqueness**: Avoid duplicates in saturated categories (e.g., media servers) unless offering unique features. + +## Policies and Moderation +- All submissions must comply with CA policies: open-source preferred, no malicious code, 2FA required. +- Blacklisting occurs for violations (e.g., security issues, repository changes). +- Appeals: PM @Squid; escalate to @SpencerJ if needed. +- Abandoned apps/plugins may be removed without notice. +- For full details, see [CA Application Policies](https://forums.unraid.net/topic/87144-ca-application-policies/). + +This documentation follows Unraid's style guide for clarity and structure. Submit updates or corrections via the Unraid forums or GitHub pull requests to relevant repos. \ No newline at end of file From 32b7c064957eec89d8a5425de85f93789328a991 Mon Sep 17 00:00:00 2001 From: dopeytree Date: Sat, 18 Oct 2025 19:38:46 +0100 Subject: [PATCH 2/4] Update Developer documentation structure and add new content --- docs/Developer/_category_.json | 4 + docs/Developer/developer.md | 156 --------------------------------- docs/Developer/docker-apps.mdx | 88 +++++++++++++++++++ docs/Developer/index.mdx | 66 ++++++++++++++ docs/Developer/plugins.mdx | 50 +++++++++++ src/components/Card/index.js | 24 ++++- 6 files changed, 231 insertions(+), 157 deletions(-) create mode 100644 docs/Developer/_category_.json delete mode 100644 docs/Developer/developer.md create mode 100644 docs/Developer/docker-apps.mdx create mode 100644 docs/Developer/index.mdx create mode 100644 docs/Developer/plugins.mdx diff --git a/docs/Developer/_category_.json b/docs/Developer/_category_.json new file mode 100644 index 0000000000..fe641539e5 --- /dev/null +++ b/docs/Developer/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Developer", + "position": 4 +} \ No newline at end of file diff --git a/docs/Developer/developer.md b/docs/Developer/developer.md deleted file mode 100644 index 8e7679b3c7..0000000000 --- a/docs/Developer/developer.md +++ /dev/null @@ -1,156 +0,0 @@ -# Creating and Submitting Apps and Plugins to the Unraid Community Applications Store - -Community Applications (CA) is a plugin for Unraid that provides a curated catalog of Docker containers (apps) and plugins. This guide explains how developers can create, test, and submit their own apps and plugins for inclusion in CA. Submissions are moderated to ensure safety, compatibility, and a positive user experience. Follow the steps below to prepare and submit your work. - -## Prerequisites -- Install the Community Applications plugin on your Unraid system via the **Plugins** tab in the Unraid web UI. -- Create a GitHub account and enable two-factor authentication (2FA) on your repositories—this is required for security. -- Create a support thread for your app or plugin on the Unraid forums (post in any relevant section; a moderator will move it to the appropriate forum, such as Docker Containers or Plugin Support). -- For Docker apps, enable **Docker Authoring Mode** in ***Settings → Docker*** (stop the Docker service first, enable Advanced View, toggle Authoring Mode, then restart the service). -- Familiarize yourself with CA policies at [CA Application Policies](https://forums.unraid.net/topic/87144-ca-application-policies/) to avoid rejection or blacklisting. - -## Creating and Submitting Docker Apps -Docker apps are defined by XML template files that specify the container's configuration, such as ports, volumes, environment variables, and metadata. - -### Step 1: Create the Docker Template XML -1. Go to the **Docker** tab and select **Add Container**. -2. Fill in the details based on your Docker image (e.g., from Docker Hub): - - **Repository**: The Docker image name (e.g., `domistyle/idrac6`). - - **Network Type**: Typically `bridge`. - - **Privileged**: Set to `true` only if necessary (e.g., for hardware access). - - Add ports, volumes, and variables using **Add another Path, Port, Variable or Device**. - - **Ports**: Use container ports (e.g., 5800 for WebUI). Set **Host Port** to blank or optional. - - **Volumes/Paths**: Use container paths (e.g., `/config`); avoid host paths to prevent auto-creating shares. - - **Variables**: Define keys (e.g., `IDRAC_HOST`), defaults, and descriptions. - - **WebUI**: Use format like `http://[IP]:[PORT:5800]` to dynamically map host ports. - - **Icon**: URL to a PNG or JPG image (host on GitHub for reliability). - - **Overview/Description**: Provide a clear, Markdown-formatted summary (no HTML). - - **Category**: Select from official options (e.g., `Tools: Network:Management`). - - **Support**: Link to your Unraid forums support thread. - - **Project**: Link to the project's GitHub or webpage. -3. Click **Save** to generate the XML. Copy it from the displayed text (in Authoring Mode). -4. Clean the XML: - - Remove unnecessary tags (e.g., empty ``, ``). - - Use `` elements for ports, volumes, and variables (v2 format preferred over legacy v1 sections like `` or ``). - - Ensure no HTML tags; use Markdown for formatting. - -Example cleaned XML for a sample app: -``` - - - idrac6 - domistyle/idrac6 - https://hub.docker.com/r/domistyle/idrac6/ - bridge - false - https://github.com/DomiStyle/docker-idrac6/issues - https://github.com/DomiStyle/docker-idrac6/ - Allows access to the iDRAC 6 console without installing Java or messing with Java Web Start. Java is only run inside of the container and access is provided via web interface or directly with VNC. - Tools: Network:Management - http://[IP]:[PORT:5800] - https://raw.githubusercontent.com/user/repo/master/icon.png - - - - - -``` - -### Step 2: Test the Template -- Install the container on your Unraid system using the template. -- Verify ports, volumes, and variables work as expected. -- Check for errors in CA's **Statistics** section (e.g., template errors or invalid templates). - -### Step 3: Host the Template on GitHub -- Create a new GitHub repository (use "master" or "main" branch). -- Upload the XML file (name it descriptively, e.g., `my-app.xml`). -- Optionally, add a developer profile with `ca_profile.xml` in the repo root for enhanced visibility in CA searches. - -Example `ca_profile.xml`: -``` - - - https://raw.githubusercontent.com/user/repo/master/avatar.jpg - Creating Docker containers with a focus on simplicity and auto-updates. - https://www.paypal.me/user - Support my work with a donation. - https://forums.unraid.net/topic/your-support-thread/ - -``` - -### Step 4: Submit to Community Applications -1. Create a support thread on the Unraid forums. -2. Fill out the online submission form: [CA Submission Form](https://form.asana.com/?k=qtIUrf5ydiXvXzPI57BiJw&d=714739274360802). -3. Provide your GitHub repo URL, support thread link, and other details. -4. Moderators review the submission (may request fixes). Approved templates appear in CA within ~2 hours. -5. For updates, push changes to GitHub; CA syncs automatically every 2 hours. - -## Update Process and Sync Frequency -CA maintains a centralized feed of approved apps and plugins, hosted at [https://raw.githubusercontent.com/Squidly271/AppFeed/master/applicationFeed.json](https://raw.githubusercontent.com/Squidly271/AppFeed/master/applicationFeed.json). This feed is aggregated from developer GitHub repositories and updated by moderators. - -- **Sync Frequency**: CA checks and syncs with developer GitHub repositories approximately every 2 hours. Users can manually trigger a refresh in the CA interface via the **Refresh Apps** button (under the Apps tab) to pull the latest feed sooner. -- **Time for New Submissions to Appear**: After moderator approval (which can take from hours to days depending on review queue and any required fixes), the app or plugin typically becomes visible in the CA store within ~2 hours of feed update. -- **Time for Updates to Appear**: Once changes are pushed to your GitHub repository (e.g., XML updates, new versions), they propagate to the CA store within 2 hours during the next automated sync. If the update involves moderator review (e.g., significant changes to plugin code), expect additional delay for approval. -- **Local Caching**: Users' local CA instances cache the feed; manual refreshes or restarts may be needed to see updates immediately. In cases of issues (e.g., DNS or network problems), check diagnostics or forum support threads for troubleshooting. - -For plugins, new submissions or major updates trigger a manual notification and code review by moderators like @Squid, which may extend timelines beyond the automated sync. - -## Creating and Submitting Plugins -Plugins are `.plg` files (XML-based) that install software or features directly on Unraid. They have stricter moderation due to root access. - -### Step 1: Create the Plugin PLG File -- PLG files define installation steps, such as downloading binaries, setting permissions, and integrating with the Unraid UI. -- Use an existing PLG as a template (e.g., from GitHub repos). - -Example basic PLG structure: -``` - - - - - - -]> - - Short description of the plugin. - Changelog here. - - - - - -``` - -- Include scripts for installation, updates, and removal. -- Test on a local Unraid system by placing the `.plg` in `/config/plugins` on the flash drive and rebooting. - -### Step 2: Host on GitHub -- Create a GitHub repo and upload the `.plg` file. -- Add `ca_profile.xml` if desired (same as for Docker apps). - -### Step 3: Submit to Community Applications -- Plugins follow similar submission rules as Docker apps but are ineligible if better suited as Dockers. -- Create a support thread on the Unraid forums. -- Submit via PM to moderator @Squid or use the Docker submission form (adapt for plugins). -- Moderators review for security, openness (open-source preferred), and compatibility. Closed-source plugins are rarely accepted. - -## Best Practices -- **Ports**: Reference container ports in WebUI (e.g., `[PORT:8080]`) for dynamic mapping. -- **Volumes**: Avoid host paths; use container paths to let users configure. -- **Environment Variables**: Provide defaults and clear descriptions; mask passwords. -- **Icons and Descriptions**: Use reliable URLs for icons; write concise, informative descriptions with Markdown. -- **Compatibility**: Include `` for dependencies (e.g., hardware plugins). -- **Updates**: Set `false` in Docker XML to prevent auto-overwrites. -- **Security**: No HTML tags, no extra bash commands, no affiliate links. -- **Testing**: Use Authoring Mode; check CA Statistics for errors. -- **Uniqueness**: Avoid duplicates in saturated categories (e.g., media servers) unless offering unique features. - -## Policies and Moderation -- All submissions must comply with CA policies: open-source preferred, no malicious code, 2FA required. -- Blacklisting occurs for violations (e.g., security issues, repository changes). -- Appeals: PM @Squid; escalate to @SpencerJ if needed. -- Abandoned apps/plugins may be removed without notice. -- For full details, see [CA Application Policies](https://forums.unraid.net/topic/87144-ca-application-policies/). - -This documentation follows Unraid's style guide for clarity and structure. Submit updates or corrections via the Unraid forums or GitHub pull requests to relevant repos. \ No newline at end of file diff --git a/docs/Developer/docker-apps.mdx b/docs/Developer/docker-apps.mdx new file mode 100644 index 0000000000..404eb7d229 --- /dev/null +++ b/docs/Developer/docker-apps.mdx @@ -0,0 +1,88 @@ +--- +title: Docker Apps +description: Guide for creating & submitting Docker applications to the Unraid Community Applications Store +sidebar_position: 2 +--- + +## Creating and Submitting Docker Apps + +Docker apps are defined by XML template files that specify the container's configuration, such as ports, volumes, environment variables, and metadata. + +## Step 1: Create the Docker Template XML + +1. Go to the **Docker** tab and select **Add Container**. +2. Fill in the details based on your Docker image (e.g., from Docker Hub): + - **Repository**: The Docker image name (e.g., `domistyle/idrac6`). + - **Network Type**: Typically `bridge`. + - **Privileged**: Set to `true` only if necessary (e.g., for hardware access). + - Add ports, volumes, and variables using **Add another Path, Port, Variable or Device**. + - **Ports**: Use container ports (e.g., 5800 for WebUI). Set **Host Port** to blank or optional. + - **Volumes/Paths**: Use container paths (e.g., `/config`); avoid host paths to prevent auto-creating shares. + - **Variables**: Define keys (e.g., `IDRAC_HOST`), defaults, and descriptions. + - **WebUI**: Use format like `http://[IP]:[PORT:5800]` to dynamically map host ports. + - **Icon**: URL to a PNG or JPG image (host on GitHub for reliability). + - **Overview/Description**: Provide a clear, Markdown-formatted summary (no HTML). + - **Category**: Select from official options (e.g., `Tools: Network:Management`). + - **Support**: Link to your Unraid forums support thread. + - **Project**: Link to the project's GitHub or webpage. +3. Click **Save** to generate the XML. Copy it from the displayed text (in Authoring Mode). +4. Clean the XML: + - Remove unnecessary tags (e.g., empty ``, ``). + - Use `` elements for ports, volumes, and variables (v2 format preferred over legacy v1 sections like `` or ``). + - Ensure no HTML tags; use Markdown for formatting. + +Example cleaned XML for a sample app: + +```xml + + + idrac6 + domistyle/idrac6 + https://hub.docker.com/r/domistyle/idrac6/ + bridge + false + https://github.com/DomiStyle/docker-idrac6/issues + https://github.com/DomiStyle/docker-idrac6/ + Allows access to the iDRAC 6 console without installing Java or messing with Java Web Start. Java is only run inside of the container and access is provided via web interface or directly with VNC. + Tools: Network:Management + http://[IP]:[PORT:5800] + https://raw.githubusercontent.com/user/repo/master/icon.png + + + + + +``` + +## Step 2: Test the Template + +- Install the container on your Unraid system using the template. +- Verify ports, volumes, and variables work as expected. +- Check for errors in CA's **Statistics** section (e.g., template errors or invalid templates). + +## Step 3: Host the Template on GitHub + +- Create a new GitHub repository (use "master" or "main" branch). +- Upload the XML file (name it descriptively, e.g., `my-app.xml`). +- Optionally, add a developer profile with `ca_profile.xml` in the repo root for enhanced visibility in CA searches. + +Example `ca_profile.xml`: + +```xml + + + https://raw.githubusercontent.com/user/repo/master/avatar.jpg + Creating Docker containers with a focus on simplicity and auto-updates. + https://www.paypal.me/user + Support my work with a donation. + https://forums.unraid.net/topic/your-support-thread/ + +``` + +## Step 4: Submit to Community Applications + +1. Create a support thread on the Unraid forums. +2. Fill out the online submission form: [CA Submission Form](https://form.asana.com/?k=qtIUrf5ydiXvXzPI57BiJw&d=714739274360802). +3. Provide your GitHub repo URL, support thread link, and other details. +4. Moderators review the submission (may request fixes). Approved templates appear in CA within ~2 hours. +5. For updates, push changes to GitHub; CA syncs automatically every 2 hours. \ No newline at end of file diff --git a/docs/Developer/index.mdx b/docs/Developer/index.mdx new file mode 100644 index 0000000000..2c06bc2e04 --- /dev/null +++ b/docs/Developer/index.mdx @@ -0,0 +1,66 @@ +--- +title: Developer Guide +description: Guide for creating and submitting apps and plugins to the Unraid Community Applications Store +sidebar_position: 1 +--- + +import Card from '@site/src/components/Card'; + +Community Applications (CA) is a plugin for Unraid that provides a curated catalog of Docker containers (apps) and plugins. This guide explains how developers can create, test, and submit their own apps and plugins for inclusion in CA. Submissions are moderated to ensure safety, compatibility, and a positive user experience. + +## Prerequisites + +- Install the Community Applications plugin on your Unraid system via the **Plugins** tab in the Unraid web UI. +- Create a GitHub account and enable two-factor authentication (2FA) on your repositories—this is required for security. +- Create a support thread for your app or plugin on the Unraid forums (post in any relevant section; a moderator will move it to the appropriate forum, such as Docker Containers or Plugin Support). +- For Docker apps, enable **Docker Authoring Mode** in ***Settings → Docker*** (stop the Docker service first, enable Advanced View, toggle Authoring Mode, then restart the service). +- Familiarize yourself with CA policies at [CA Application Policies](https://forums.unraid.net/topic/87144-ca-application-policies/) to avoid rejection or blacklisting. + +## 📚 Documentation Sections + +
+ + + Docker applications + + + + + + Unraid plugins + + +
+ +## Update Process and Sync Frequency + +CA maintains a centralized feed of approved apps and plugins, hosted at [https://raw.githubusercontent.com/Squidly271/AppFeed/master/applicationFeed.json](https://raw.githubusercontent.com/Squidly271/AppFeed/master/applicationFeed.json). This feed is aggregated from developer GitHub repositories and updated by moderators. + +- **Sync Frequency**: CA checks and syncs with developer GitHub repositories approximately every 2 hours. Users can manually trigger a refresh in the CA interface via the **Refresh Apps** button (under the Apps tab) to pull the latest feed sooner. +- **Time for New Submissions to Appear**: After moderator approval (which can take from hours to days depending on review queue and any required fixes), the app or plugin typically becomes visible in the CA store within ~2 hours of feed update. +- **Time for Updates to Appear**: Once changes are pushed to your GitHub repository (e.g., XML updates, new versions), they propagate to the CA store within 2 hours during the next automated sync. If the update involves moderator review (e.g., significant changes to plugin code), expect additional delay for approval. +- **Local Caching**: Users' local CA instances cache the feed; manual refreshes or restarts may be needed to see updates immediately. In cases of issues (e.g., DNS or network problems), check diagnostics or forum support threads for troubleshooting. + +For plugins, new submissions or major updates trigger a manual notification and code review by moderators like @Squid, which may extend timelines beyond the automated sync. + +## Best Practices + +- **Ports**: Reference container ports in WebUI (e.g., `[PORT:8080]`) for dynamic mapping. +- **Volumes**: Avoid host paths; use container paths to let users configure. +- **Environment Variables**: Provide defaults and clear descriptions; mask passwords. +- **Icons and Descriptions**: Use reliable URLs for icons; write concise, informative descriptions with Markdown. +- **Compatibility**: Include `` for dependencies (e.g., hardware plugins). +- **Updates**: Set `false` in Docker XML to prevent auto-overwrites. +- **Security**: No HTML tags, no extra bash commands, no affiliate links. +- **Testing**: Use Authoring Mode; check CA Statistics for errors. +- **Uniqueness**: Avoid duplicates in saturated categories (e.g., media servers) unless offering unique features. + +## Policies and Moderation + +- All submissions must comply with CA policies: open-source preferred, no malicious code, 2FA required. +- Blacklisting occurs for violations (e.g., security issues, repository changes). +- Appeals: PM @Squid; escalate to @SpencerJ if needed. +- Abandoned apps/plugins may be removed without notice. +- For full details, see [CA Application Policies](https://forums.unraid.net/topic/87144-ca-application-policies/). + +This documentation follows Unraid's style guide for clarity and structure. Submit updates or corrections via the Unraid forums or GitHub pull requests to relevant repos. \ No newline at end of file diff --git a/docs/Developer/plugins.mdx b/docs/Developer/plugins.mdx new file mode 100644 index 0000000000..5c77be9eb0 --- /dev/null +++ b/docs/Developer/plugins.mdx @@ -0,0 +1,50 @@ +--- +title: Plugins +description: Guide for developing & submitting Unraid plugins to the Community Applications Store +sidebar_position: 3 +--- + +## Creating and Submitting Plugins + +Plugins are `.plg` files (XML-based) that install software or features directly on Unraid. They have stricter moderation due to root access. + +## Step 1: Create the Plugin PLG File + +- PLG files define installation steps, such as downloading binaries, setting permissions, and integrating with the Unraid UI. +- Use an existing PLG as a template (e.g., from GitHub repos). + +Example basic PLG structure: + +```xml + + + + + + +]> + + Short description of the plugin. + Changelog here. + + + + + +``` + +- Include scripts for installation, updates, and removal. +- Test on a local Unraid system by placing the `.plg` in `/config/plugins` on the flash drive and rebooting. + +## Step 2: Host on GitHub + +- Create a GitHub repo and upload the `.plg` file. +- Add `ca_profile.xml` if desired (same as for Docker apps). + +## Step 3: Submit to Community Applications + +- Plugins follow similar submission rules as Docker apps but are ineligible if better suited as Dockers. +- Create a support thread on the Unraid forums. +- Submit via PM to moderator @Squid or use the Docker submission form (adapt for plugins). +- Moderators review for security, openness (open-source preferred), and compatibility. Closed-source plugins are rarely accepted. \ No newline at end of file diff --git a/src/components/Card/index.js b/src/components/Card/index.js index 6155b421bd..681724db31 100644 --- a/src/components/Card/index.js +++ b/src/components/Card/index.js @@ -1,16 +1,38 @@ import React, { CSSProperties } from 'react'; // CSSProperties allows inline styling with better type checking. import clsx from 'clsx'; // clsx helps manage conditional className names in a clean and concise manner. +import Link from '@docusaurus/Link'; + const Card = ({ className, // Custom classes for the container card style, // Custom styles for the container card children, // Content to be included within the card shadow, // Used to add shadow under your card. Expected values are: low (lw), medium (md), tall (tl) + href, // Link URL for the card + title, // Title for the card header + icon, // Icon for the card header }) => { const cardShadow = shadow ? `item shadow--${shadow}` : ''; - return ( + const cardContent = (
+ {(title || icon) && ( +
+ {icon && } + {title} +
+ )} {children}
); + + if (href) { + return ( + + {cardContent} + + ); + } + + return cardContent; }; + export default Card; \ No newline at end of file From 2971d9f88120770574ca3fa0ef04678845eae73a Mon Sep 17 00:00:00 2001 From: dopeytree Date: Sat, 18 Oct 2025 19:50:55 +0100 Subject: [PATCH 3/4] updated as per reccomened fixs --- docs/Developer/_category_.json | 2 +- docs/Developer/plugins.mdx | 6 +++--- src/components/Card/index.js | 30 ++++++++++++++++-------------- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/docs/Developer/_category_.json b/docs/Developer/_category_.json index fe641539e5..8998af15c0 100644 --- a/docs/Developer/_category_.json +++ b/docs/Developer/_category_.json @@ -1,4 +1,4 @@ { "label": "Developer", "position": 4 -} \ No newline at end of file +} diff --git a/docs/Developer/plugins.mdx b/docs/Developer/plugins.mdx index 5c77be9eb0..09091b6a5f 100644 --- a/docs/Developer/plugins.mdx +++ b/docs/Developer/plugins.mdx @@ -45,6 +45,6 @@ Example basic PLG structure: ## Step 3: Submit to Community Applications - Plugins follow similar submission rules as Docker apps but are ineligible if better suited as Dockers. -- Create a support thread on the Unraid forums. -- Submit via PM to moderator @Squid or use the Docker submission form (adapt for plugins). -- Moderators review for security, openness (open-source preferred), and compatibility. Closed-source plugins are rarely accepted. \ No newline at end of file +- Create a support thread on the Unraid forums first. +- Submit your plugin via the official [Community Applications submission form](https://forums.unraid.net/topic/38582-plug-in-ca-application-addition-request/). +- Moderators review for security, openness (open-source preferred), and compatibility. Closed-source plugins are rarely accepted. diff --git a/src/components/Card/index.js b/src/components/Card/index.js index 681724db31..ac6edc6e31 100644 --- a/src/components/Card/index.js +++ b/src/components/Card/index.js @@ -1,4 +1,4 @@ -import React, { CSSProperties } from 'react'; // CSSProperties allows inline styling with better type checking. +import React from 'react'; import clsx from 'clsx'; // clsx helps manage conditional className names in a clean and concise manner. import Link from '@docusaurus/Link'; @@ -12,27 +12,29 @@ const Card = ({ icon, // Icon for the card header }) => { const cardShadow = shadow ? `item shadow--${shadow}` : ''; - const cardContent = ( -
- {(title || icon) && ( -
- {icon && } - {title} -
- )} - {children} + + const Header = (title || icon) ? ( +
+ {icon && } + {title &&

{title}

}
- ); + ) : null; if (href) { return ( - - {cardContent} + + {Header} + {children} ); } - return cardContent; + return ( +
+ {Header} + {children} +
+ ); }; export default Card; \ No newline at end of file From 6a75203895be8ddfff30dd0728e8a5a91d91994d Mon Sep 17 00:00:00 2001 From: dopeytree Date: Sat, 18 Oct 2025 21:01:39 +0100 Subject: [PATCH 4/4] npm run lint:fix --- docs/Developer/docker-apps.mdx | 6 +++--- docs/Developer/index.mdx | 6 +++--- .../maintain-and-update/changing-the-flash-device.mdx | 2 ++ .../using-unraid-to/manage-storage/apple-time-machine.mdx | 2 ++ 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/docs/Developer/docker-apps.mdx b/docs/Developer/docker-apps.mdx index 404eb7d229..f89634db23 100644 --- a/docs/Developer/docker-apps.mdx +++ b/docs/Developer/docker-apps.mdx @@ -82,7 +82,7 @@ Example `ca_profile.xml`: ## Step 4: Submit to Community Applications 1. Create a support thread on the Unraid forums. -2. Fill out the online submission form: [CA Submission Form](https://form.asana.com/?k=qtIUrf5ydiXvXzPI57BiJw&d=714739274360802). +2. Fill out the online submission form: [CA Submission Form](https://form.asana.com/?k=qtIUrf5ydiXvXzPI57BiJw\&d=714739274360802). 3. Provide your GitHub repo URL, support thread link, and other details. -4. Moderators review the submission (may request fixes). Approved templates appear in CA within ~2 hours. -5. For updates, push changes to GitHub; CA syncs automatically every 2 hours. \ No newline at end of file +4. Moderators review the submission (may request fixes). Approved templates appear in CA within \~2 hours. +5. For updates, push changes to GitHub; CA syncs automatically every 2 hours. diff --git a/docs/Developer/index.mdx b/docs/Developer/index.mdx index 2c06bc2e04..f305193de8 100644 --- a/docs/Developer/index.mdx +++ b/docs/Developer/index.mdx @@ -21,7 +21,7 @@ Community Applications (CA) is a plugin for Unraid that provides a curated catal
- Docker applications + Docker applications @@ -37,7 +37,7 @@ Community Applications (CA) is a plugin for Unraid that provides a curated catal CA maintains a centralized feed of approved apps and plugins, hosted at [https://raw.githubusercontent.com/Squidly271/AppFeed/master/applicationFeed.json](https://raw.githubusercontent.com/Squidly271/AppFeed/master/applicationFeed.json). This feed is aggregated from developer GitHub repositories and updated by moderators. - **Sync Frequency**: CA checks and syncs with developer GitHub repositories approximately every 2 hours. Users can manually trigger a refresh in the CA interface via the **Refresh Apps** button (under the Apps tab) to pull the latest feed sooner. -- **Time for New Submissions to Appear**: After moderator approval (which can take from hours to days depending on review queue and any required fixes), the app or plugin typically becomes visible in the CA store within ~2 hours of feed update. +- **Time for New Submissions to Appear**: After moderator approval (which can take from hours to days depending on review queue and any required fixes), the app or plugin typically becomes visible in the CA store within \~2 hours of feed update. - **Time for Updates to Appear**: Once changes are pushed to your GitHub repository (e.g., XML updates, new versions), they propagate to the CA store within 2 hours during the next automated sync. If the update involves moderator review (e.g., significant changes to plugin code), expect additional delay for approval. - **Local Caching**: Users' local CA instances cache the feed; manual refreshes or restarts may be needed to see updates immediately. In cases of issues (e.g., DNS or network problems), check diagnostics or forum support threads for troubleshooting. @@ -63,4 +63,4 @@ For plugins, new submissions or major updates trigger a manual notification and - Abandoned apps/plugins may be removed without notice. - For full details, see [CA Application Policies](https://forums.unraid.net/topic/87144-ca-application-policies/). -This documentation follows Unraid's style guide for clarity and structure. Submit updates or corrections via the Unraid forums or GitHub pull requests to relevant repos. \ No newline at end of file +This documentation follows Unraid's style guide for clarity and structure. Submit updates or corrections via the Unraid forums or GitHub pull requests to relevant repos. diff --git a/docs/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx b/docs/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx index b1ff300d6b..30d3e508fe 100644 --- a/docs/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx +++ b/docs/unraid-os/system-administration/maintain-and-update/changing-the-flash-device.mdx @@ -62,6 +62,8 @@ The [forum announcement on counterfeit SanDisk drives](https://forums.unraid.net ::: +::: + --- ## Replacing your USB flash device diff --git a/docs/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx b/docs/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx index 661ca5dda1..e0813dfe3c 100644 --- a/docs/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx +++ b/docs/unraid-os/using-unraid-to/manage-storage/apple-time-machine.mdx @@ -24,6 +24,8 @@ Some users report intermittent issues with Time Machine and network shares on ma ::: +::: + ## Creating a Time Machine share :::caution[Before you begin]