Skip to content

TrueNAS Apps Portal code repository

License

Notifications You must be signed in to change notification settings

truenas/apps-web

Repository files navigation

apps-web

This repository contains all the raw files for building the TrueNAS Apps Portal. This site is intended for use as the online hub for information about first- and third- party applications that are available from within TrueNAS.

Method

The strategy for this site is to be as automated as possible. Home page, catalog view, and app details pages are populated with content automatically. Content is ingested from the metadata for individual apps and is thus kept consistent with the day-to-day changes in the TrueNAS project, provided the site is refreshed at regular intervals. The publicly available anonymous telemetry for TrueNAS apps is also ingested and used to measure applications' popularity.

New markdown files for app details are automatically generated from a comparison check with the primary TrueNAS apps repository: https://www.github.com/truenas/apps Automation opens pull requests to add new app markdown files that are prepopulated with the logic and pathing to dynamically fill themselves with content from the relevant app metadata and telemetry.

Static content like deployment articles follows a diataxis approach, with autopopulated catalog entries functioning as landing pages and static articles filed under "Resources" subheader for each app. Shortcodes are used to single-source common messages that apply to many content locations. This is still a work in progress with content from https://www.truenas.com/docs/truenasapps/ planned to fully redirect to this website and be further polished.

Layout

  • content/catalog contains all autogenerated and autopopulated apps detail pages.
  • content/resources holds all articles that aren't auto-generated from app metadata.
  • static/images has all the image files used in this site. Note that most images that are visible from catalog/ URLs are dynamically generated from the apps code repository and aren't stored in this repo.
  • layouts has all Hugo related html layouts and shortcodes
  • static/includes has all the single-sourced text snippets that are called within resource/ locations

Contributing

This repository accepts contributions!

An update to the https://www.truenas.com/docs/contributing/applications/ TrueNAS Contributor Guide with more details is forthcoming, but here are some brief notes:

Contributors can propose a new .md file to the content/resources location to create deeper tutorials and other direct content for an app. The file needs to follow a consistent front matter layout for better integration with the site. A pointer to the file also needs to be added to the related catalog/ entry for that particular app. Images can be proposed to the static/images/ directory and called within .md files.

Browse through the content/ and static/ locations for numerous examples of how to create and link articles to app details pages. Entries in the content/Stable-Apps/ location provide the most complete examples.

To modify a content/resources/ article that already exists directly from the published website, look for the Edit page button in the upper right corner of the article. Some articles related to Enterprise apps might not have this element, as this content is typically maintained by the TrueNAS team.