Contributing to Apps
We welcome community user contributions, issue reporting, and suggestions for new features and apps to create the best possible TrueNAS app user experience!
Application maintenance is independent of TrueNAS version release cycles. App version information, features, configuration options, and installation behavior during access might vary from those in documented tutorials.
TrueNAS apps show the Update badge and button on any deployed application instance on the Installed application screen when a new version is available. Users can apply the update(s) individually or collectively and at a convenient time based on needs.
To see currently available apps, go to Apps and click Discover Apps or visit the TrueNAS Apps repository on GitHub.
Users can submit changes to an existing application catalogs through the following methods:
The Apps catalog is open for contributions! For instructions on how to locally develop and test new applications, see the contributors guide on GitHub.
Questions on the development of applications? Please head over to the discussions page to ask questions and collaborate with other App Developers.
To request an application or general Apps service feature change, go to the TrueNAS Community Forum, and click Feature Request. Read the About the Feature Requests category - README First topic, then click Open Draft on the top right of the screen. Populate the new request form with the relevant information for each section, Problem/Justification, Impact, and User Story. The form guides you on populating these sections. Click Create Topic to add your suggestion to the list of topics.
Users vote and comment on these suggestions. TrueNAS team members actively monitor this channel and discusses the feasibility of each request both internally and in the forum posts.
If approved and requested to submit a PR to add the new application, submit a PR against the TrueNAS/Community repository. Include the relevant files in the PR, including a ReadMe.txt file with any installation notes for TrueNAS developers.
Community members can now submit content directly to the TrueNAS Apps Market repository.
For more information about submitting a pull request on GitHub, see the Updating Content at the TrueNAS Contributions Guide.
Here’s a version styled more appropriately for Hugo documentation — clean, semantic, and easy to scan, without icons or unnecessary embellishment:
To contribute new or updated application documentation, follow the appropriate steps for your task:
- Fork the
truenas/apps-web
repository. - When your edits are ready, submit a pull request (PR) against the
main
branch.
- Open the relevant
.md
file in thecontent/catalog/
directory of your fork. - Make and commit your changes in your branch.
- Create a new
.md
file in thecontent/resources/
directory. - Follow the front matter format used in existing examples.
- Save images in the
static/images/
directory and reference them with standard Markdown syntax.
- Add app resources for users to access from the app’s Resources section.
- Create resource cards to link to documentation or external content.
- Embed YouTube videos to appear in the Resources section of the app article.
- Use the Edit page button in the upper right corner of an app article to propose changes directly from the site (when available).
- Explore the
content/
andstatic/
directories in the repository for examples of complete entries and tutorials.
When opening a PR, briefly describe the purpose of your change and what it introduces. This helps reviewers quickly understand the context and impact of your contribution.
The Resources section of each app page helps readers find helpful documentation and community materials related to that app. Contributors can create Apps Market repository pull requests to add links to internal docs, official project pages, tutorials, blog posts, or videos to support different use cases and learning styles.
Resource cards present links to app documentation and resources directly from Catalog page of the associated app. Create cards to direct readers to internal documentation, such as when submitting a new contribution, or external resources, such as community posts, blogs, or project-maintained documentation for an app.
Create resource cards using the doc-card shortcode.
Open the /content/catalog file for the app you want to edit and locate the Resources section. Insert a new shortcode call in the docs-sections division using the syntax:
{{< doc-card title="TITLE" link="PATH" descr="DESCRIPTION" doctype="TYPE" kind="KIND" >}}
Where:
Variable | Required | Description |
---|---|---|
TITLE | ✅ | The visible name of the resource, typically the page or article title. |
PATH | ✅ | The URL or internal path to the resource. For internal docs, use a relative path like /resources/app-name-file/ ; for external links, use the full URL. |
DESCRIPTION | ✅ | A short summary that appears beneath the title on the card. This should briefly explain what the user can expect from the linked resource. |
TYPE | ❌ | The documentation type label shown on the card. Use tutorial , how-to , reference , or foundations for internal docs. Leave blank for external links unless the type is known. See Labeling Resources for more information. |
KIND | ❌ | The origin of the resource. Use official for iX documentation, project for upstream sources, community for user-created content, blog for blog posts, and post for informal sources like forums or Reddit. See Labeling Resources for more information. |
To help readers quickly identify the purpose and origin of each resource, use the doctype and kind attributes when creating resource cards. These labels appear as small badges on each card and help distinguish between types of documentation (like tutorials or references) and the source of the material (such as official docs, community posts, or upstream project pages). Use the tables below to select the most appropriate labels for each resource. Leave either value blank if no label applies.
Doc Type | Description |
---|---|
tutorial | Hands-on introduction for new users or those looking to deepen their knowledge. |
how-to | Step-by-step guides covering key operations and common tasks. |
reference | Description of UI screens and fields, including technical information like requirements and specifications. |
foundations | Overviews and deeper dives into key topics, concepts, and clarifications. |
Kind | Description |
---|---|
project | Documentation hosted or maintained by the upstream app project. |
official | Documentation created and maintained by the TrueNAS team. |
community | Documentation maintained by members of the TrueNAS community. |
post | Informal community sources, such as forum threads, Reddit posts, or Discord chats. |
blog | Personal or company-authored posts that share experiences, tips, or insights about the app. |
You can embed certain types of outside resources, such as YouTube videos, within the Resources section of an app page. To do this, use the Hugo Youtube shortcode containing the resource ID from the original source.
For example, to embed a YouTube video located at https://www.youtube.com/watch?v=abcd_1234, enter the shortcode {{< youtube abcd_1234 >}}
. In this scenario, youtube is the shortcode name, and abcd_1234 is the original resource ID from the YouTube video.
Use this guide when contributing a new tutorial for an application available through the TrueNAS Apps catalog. It covers required front matter formatting, how to customize the official tutorial template, writing and formatting standards, and how to integrate snippet files that explain common configuration steps.
To correctly format the front matter of a new
---
title: "APP_NAME Deployment"
description: "Provides installation instructions for the APP_NAME application in TrueNAS."
related_app: "/catalog/APP_NAME"
GeekdocShowEdit: true
geekdocEditPath: "edit/main/content/resources/FILE-NAME.md"
tags:
- apps
---
Including a title, short description, and tag(s) ensures consistency and visibility across all apps content.
Feel free to change standard article content by adding or removing sections to fit the app installation process.
Change the front matter
Standard text emphasis:
Apply Bold to UI elements seen on the screen, including field, button, and navigation option names. Use double asterisks preceding and following the name or text string to make it bold. Do not use bold in code strings.
Apply Italics to any variable. Use single asterisks preceding and following the name or text string to make it italics. If using a variable in a code example, use the HTML tags (<i></i>) and not the Markdown tags.
Apply HTML file tags (
<file></file>
) when entering a path to a file or file name, for example<file>iso</file>
, which renders asiso .Apply HTML keyboard tags (
<kbd></kbd>
) to keys on a keyboard, for example<kbd>Enter</kbd>
, which renders as Enter.
When entering commands, command strings, or code blocks:
Apply backticks(
``
) or HTML<code></code>
tags to format command strings or output, for example`string`
or<code>string</code>
, which render asstring
.Apply HTML
<code></code>
tags to strings with variables.Do not enclose variables in angle or square brackets as these can also be part of command syntax.
Do not enter variables in all caps unless the command requires entering the value in all caps.
To create a code block, either use three backticks (```
) on the line before and after the content block, or use the HTML code tags.
When creating your articles you can use the library of snippets that contain explanations of settings and configuration instructions for the various app Install Wizard settings in your submitted content. The Technical Documentation team maintains these snippets, but you can submit change requests for these files just as with full articles if you find content that needs updating or changing.
The tutorial template includes the shortcode that calls these files into the app wizard sections of the Stable Apps and Enterprise Apps tutorials in the Documentation Hub.
To use snippets where the template does not have one, enter the include file shortcode where you want to call another snippet.
The shortcode to call snippet files is {{<include file="/static/includes/apps/snippetFileName.md">}}
, where snippetFileName.md is the name of the snippet file.
The following table shows the current list of snippet files.
Click Edit page at the top of the Documentation Hub article to suggest changes to an existing article.
Refer to the Updating Content article on the Docs Hub for more details.
Ready to move on? Continue your TrueNAS Apps journey below.
Learn more about initial setup, securing apps, contributing apps and resources, and more.
How to find, install, and manage applications in TrueNAS.
Browse the full catalog of applications available in TrueNAS!
View featured applications, the most deployed, and the newest applications available in TrueNAS.