From 60cbadbe28ec7cbc363b07d2f8d4a6ae0fe464b6 Mon Sep 17 00:00:00 2001 From: MicJ Date: Mon, 2 Dec 2024 14:49:55 -0500 Subject: [PATCH 1/8] PD-1626 Add Redis Password Characters and User Clarification Information This commit adds the characters not allowed in Redis passwords, and clarifies information about the TrueNAS users added as an administrator for the app, and adds content linking this article to with the Nextcloud plugin article in /solutions/integrations/nextcloud.md article. It updates the content in two snippet files. --- .../StableApps/InstallNextCloudMedia.md | 18 +++++++++++------- .../apps/BeforeYouBeginAddNewAppUser.md | 2 +- .../apps/InstallWizardStorageACLConfig.md | 17 ++++++++--------- 3 files changed, 20 insertions(+), 17 deletions(-) diff --git a/content/TruenasApps/StableApps/InstallNextCloudMedia.md b/content/TruenasApps/StableApps/InstallNextCloudMedia.md index e74b57160b..ced6552d57 100644 --- a/content/TruenasApps/StableApps/InstallNextCloudMedia.md +++ b/content/TruenasApps/StableApps/InstallNextCloudMedia.md @@ -19,7 +19,12 @@ keywords: Nextcloud is a drop-in replacement for many popular cloud services, including file sharing, calendar, groupware, and more. One of its more common uses for the home environment is serving as a media backup, and organizing and sharing service. This procedure demonstrates how to set up Nextcloud on TrueNAS, and configure it to support hosting a wider variety of media file previews, including High Efficiency Image Container (HEIC), MP4, and MOV files. -The instructions in this article apply to TrueNAS 22.10.0 and later. + +TrueNAS offers one deployment option for setting up Nextcloud, a Linux Debian-based TrueNAS version application available in TrueNAS releases 24.10 and later. +The instructions in this article apply to these TrueNAS 24.10 and later releases. + +TrueNAS offered a FreeBSD-based TrueNAS Nextcloud plugin in releases 13.0 and 13, but it is no longer available in TrueNAS 13.0 and is soon to be unavailable in 13.3. Refer to release notes for more information on upcoming and current changes. +For more information on the FreeBSD-based Nextcloud plugin, see [Nextcloud]({{< relref "/content/solutions/integrations/nextcloud.md" >}}). {{< include file="/static/includes/AppsUnversioned.md" >}} @@ -54,8 +59,8 @@ Before you install the Nextcloud app: To configure the dataset ACL permissions from the **Datasets** screen, either select the **Set ACL for this dataset** option when prompted after adding the dataset or select the dataset row, and then click **Edit** on the **Permissions** widget to open the **Edit ACL** screen. When adding the parent dataset, after entering the name, select the **Generic** dataset preset. - Select the option to edit the ACL, set the **owner** and **group** to **admin** or the name of your administration user account and click **Apply Owner** and **Apply Group**. - Next add an ACE entries for the **netdata** and **www-data** users and give them full permissions. + Select the option to edit the ACL, set the **owner** and **group** to **admin** or the name of your administration user account, and click **Apply Owner** and **Apply Group**. + Next, add an ACE entry for the **netdata** and **www-data** users and give them full permissions. Click **Save Access Control List**. {{< trueimage src="/images/SCALE/Apps/AddNextcloudParentDatasetNetdataUserACL.png" alt="Add Nextcloud Parent Dataset ACL Permissions" id="Add Nextcloud Parent Dataset ACL Permissions" >}} @@ -74,11 +79,10 @@ Before you install the Nextcloud app: {{< /expand >}} - {{< include file="/static/includes/apps/BeforeYouBeginAddNewAppUser.md" >}} * Set up a Nextcloud account. - If you have an existing Nextcloud account, you enter the credentials for that users in the installation wizard. + If you have an existing Nextcloud account, you enter the credentials for that user in the installation wizard. If do not have an existing Nextcloud account you can create the account from the application install wizard. ### Installing the Nextcloud App @@ -115,7 +119,7 @@ The **Data Directory Path** is pre-populated with the correct path. {{< trueimage src="/images/SCALE/Apps/InstallNextcloudConfig2.png" alt="Enter Host and Other Config Settings" id="Enter Host and Other Config Settings" >}} Enter a password in **Redis Password** to create a new credential or enter the existing password if you already have Redis configured in your Nextcloud account. -Enter a password in **Database Password** to create a new credential for the Nextcloud database or enter the existing password if you already have the Nextcloud account database configured. +Enter a password in **Database Password** to create a new credential for the Nextcloud database or enter the existing password if you already have the Nextcloud account database configured. Nextcloud does not URL encode in some places so do not use the ampersand (&), at (@), hashtag (#), or percent (%) characters in the Redis password. Accept the remaining defaults in the **Nextcloud Configuration** section, but if setting up a cron job schedule, select **Enabled** under **Cron** to show the settings to allow you to schedule a cron job. @@ -193,7 +197,7 @@ Nextcloud has three APT package options: You must add both the **ffmpeg** and **smbclient** packages to deploy this app. You can use **ocrmypdf** as well if needed, but you must also select the **Tesseract Language Code** to use. Options are **chi-sim** for Simplified Chinese or **eng** for English. -For more information on tesseract languages to install for OCRmypdf, see [here](https://tesseract-ocr.github.io/tessdoc/Data-Files-in-different-versions.html) for a list of language codes. Typing a wrong language code blocks the container from starting. Only takes effect if ocrmypdf is selected. +For more information on tesseract languages to install for OCRmypdf, see [here](https://tesseract-ocr.github.io/tessdoc/Data-Files-in-different-versions.html) for a list of language codes. Typing the wrong language code blocks the container from starting. Only takes effect if ocrmypdf is selected. Click **Add** to the right of **APT Packages** for each option you want or need to add. {{< /expand >}} diff --git a/static/includes/apps/BeforeYouBeginAddNewAppUser.md b/static/includes/apps/BeforeYouBeginAddNewAppUser.md index 8079a97763..686843ab14 100644 --- a/static/includes/apps/BeforeYouBeginAddNewAppUser.md +++ b/static/includes/apps/BeforeYouBeginAddNewAppUser.md @@ -1,4 +1,4 @@ * (Optional) Create a new user account to manage this application. - If creating a new user account to manage this application or using an [administrator]({{< relref "ManageLocalUsersSCALE.md" >}}) account, enable sudo permissions for that account, and add the user to the dataset ACL permissions. \ No newline at end of file + If creating a new user account to manage this application or using an existing TrueNAS [administrator]({{< relref "ManageLocalUsersSCALE.md" >}}) account, enable sudo permissions for that TrueNAS user account, and add the user ID to the dataset ACL permissions when setting up app storage volumes in the Install app wizard. \ No newline at end of file diff --git a/static/includes/apps/InstallWizardStorageACLConfig.md b/static/includes/apps/InstallWizardStorageACLConfig.md index d085677433..cb875bafba 100644 --- a/static/includes/apps/InstallWizardStorageACLConfig.md +++ b/static/includes/apps/InstallWizardStorageACLConfig.md @@ -12,24 +12,23 @@ Set **ID Type** to **Entry is for a USER** or **Entry is for a GROUP**. If you configured a group in TrueNAS that you want to give access to instead of a single user, set the ID to the group option and enter the GID for that group. Enter the UID as one of the following: -* The default apps user, which are: +* The default app user: * **568** for apps in all trains if the app can run as any non-root user. * **999** for all postgres storage volumes. * **0** if running as root. * **473** for MinIO app in the stable train. * The run-as-user UID set as a default for the app. - The run-as user shows on the details screen in the **Run As Content** widget, and on the **Installed** application screen after the app is deployed. - You can also refer to the tutorial for the app, or look in the questions.yaml file in the GitHub repository for the application to find this UID/GID. -* The new user UID for a TrueNAS user created to serve as the app administrator. + The run-as user shows on the app details screen in the **Run As Content** widget, and on the **Installed** application screen after the app deploys. + You can refer to the tutorial for the app, or look in the questions.yaml file found in the GitHub repository for the application to find this UID/GID. +* The user ID for the new or existing TrueNAS user added to serve as the administrator for the app. -If the app shows **User and Group Configuration** settings, the default UID shows on the screen. If not, choose the run-as UID. +If the app shows **User and Group Configuration** settings, the default UID shows on the screen. If not, choose the run-as user ID found in the **Run As Content** widget. -All postgres storage volumes use the default user ID **999**, not as the run-as user. +Use the default user ID **999** for all postgres storage volumes, not the run-as user. -If you create a new user to serve as the app administration user, enter the UID for this user in addition to the run-as user ID. -Always add the run-as user with full control permissions except for postgres storage volumes. +If you created a new TrueNAS user to serve as the app administration user, add an entry record and enter the UID for this user in addition to the run-as user ID. -Select the ID type from the dropdown list, enter the UID (or GID if you select the group ID type) for the app administration user, and then set the **Access** permissions level to **FULL CONTROL**. +When adding the ACL entry for the run-as user, default user, and/or optional TrueNAS app administrator user, and postgres user ID, set the **Access** permissions level to **FULL CONTROL**. {{< /expand >}} Select **Force Flag** to apply the ACL even if the path has existing data. This allows you to update the app when an update is available. \ No newline at end of file From 30d80cf864935f55a115dd238ed7ebc703dd4532 Mon Sep 17 00:00:00 2001 From: MicJ Date: Mon, 2 Dec 2024 16:04:26 -0500 Subject: [PATCH 2/8] PD-1626 Update Plex and Nextcloud Tutorials This commit creates a new snippet BeforeYouBeginAddAppDatasets.md for the create dataset bullet point, and removes the add user and add dataset bullet points from the BeforeYouBeginStableApps.,md snippet. It adds html code for indented paragraphs with the tags to get the expand to indent, and replaces the markdown emphasis with HTML tags. It updates the Plex tutorial to use the new snippet. --- .../StableApps/InstallNextCloudMedia.md | 56 +++++++++---------- content/TruenasApps/StableApps/PlexApp.md | 16 ++---- .../apps/BeforeYouBeginAddAppDatasets.md | 6 ++ .../apps/BeforeYouBeginAddNewAppUser.md | 6 +- .../includes/apps/BeforeYouBeginStableApps.md | 10 +--- 5 files changed, 45 insertions(+), 49 deletions(-) create mode 100644 static/includes/apps/BeforeYouBeginAddAppDatasets.md diff --git a/content/TruenasApps/StableApps/InstallNextCloudMedia.md b/content/TruenasApps/StableApps/InstallNextCloudMedia.md index ced6552d57..d76d600aae 100644 --- a/content/TruenasApps/StableApps/InstallNextCloudMedia.md +++ b/content/TruenasApps/StableApps/InstallNextCloudMedia.md @@ -33,51 +33,49 @@ Before you install the Nextcloud app: {{< include file="/static/includes/apps/BeforeYouBeginStableApps.md" >}} -{{< include file="/static/includes/apps/BeforeYouBeginAddAppCertificate.md" >}} - -

Adding a certificate is optional but if you want to use a certificate for this application, either create a new self-signed CA and certificate or import an existing CA and create the certificate for Nextcloud. A certificate is not required to deploy the application.

- -* Go to **Datasets** and select the pool or dataset where you want to place the Nextcloud dataset. - For example, */tank/apps/nextcloud* or */tank/nextcloud*. - You can use either an existing pool or [create a new one]({{< relref "CreatePoolWizard.md" >}}). +{{< include file="/static/includes/apps/BeforeYouBeginAddAppDatasets.md" >}} - [Create the three dataset(s)]({{< relref "DatasetsSCALE.md" >}}) before beginning the app installation process. - Nextcloud uses **html** for app data, **data** for user data, and **postgres_data** for the database data storage volume. +
Create the three dataset(s) before beginning the app installation process. + Nextcloud uses html for app data, data for user data, and postgres_data for the database data storage volume. Earlier versions of the Nextcloud app relied on four datasets. If upgrading with an existing deployment of this application the app is migrated to the new configuration. You can organize these datasets under a parent dataset to keep them separated from datasets for other potential applications. - For example, create the *nextcloud* dataset and nest each dataset under it. + For example, create the nextcloud dataset and nest each dataset under it. If you organize the Nextcloud required datasets under a parent dataset you must configure ACL permissions for it. - Use the **Generic** dataset preset when creating the parent dataset! - When you add the **postgres_data** dataset, it must have a **POSIX** ACL. + Use the Generic dataset preset when creating the parent dataset! + When you add the postgres_data dataset, it must have a POSIX ACL.
- {{< expand "Configure Nextcloud Datasets and ACLs" "v" >}} - You must configure the ACLs permissions for two datasets while on the **Datasets** screen: the parent dataset (i.e., the *nextcloud* dataset) and the **postgres_data** dataset. - You can configure ACL permissions for the Nextcloud **html** and **data** datasets when prompted or configure them in the app installation wizard as described in the installation section. +
{{< expand "Configure Nextcloud Datasets and ACLs" "v" >}} + You must configure the ACLs permissions for two datasets while on the >Datasets screen: the parent dataset (i.e., the nextcloud dataset) and the postgres_data dataset. + You can configure ACL permissions for the Nextcloud html and data datasets when prompted or configure them in the app installation wizard as described in the installation section. - To configure the dataset ACL permissions from the **Datasets** screen, either select the **Set ACL for this dataset** option when prompted after adding the dataset or select the dataset row, and then click **Edit** on the **Permissions** widget to open the **Edit ACL** screen. + To configure the dataset ACL permissions from the Datasets screen, either select the Set ACL for this dataset option when prompted after adding the dataset or select the dataset row, and then click Edit on the Permissions widget to open the Edit ACL screen. - When adding the parent dataset, after entering the name, select the **Generic** dataset preset. - Select the option to edit the ACL, set the **owner** and **group** to **admin** or the name of your administration user account, and click **Apply Owner** and **Apply Group**. - Next, add an ACE entry for the **netdata** and **www-data** users and give them full permissions. - Click **Save Access Control List**. + When adding the parent dataset, after entering the name, select the Generic dataset preset. + Select the option to edit the ACL, set the owner and group to admin or the name of your administration user account, and click Apply Owner and Apply Group. + Next, add an ACE entry for the netdata and www-dat users and give them full permissions. + Click Save Access Control List. {{< trueimage src="/images/SCALE/Apps/AddNextcloudParentDatasetNetdataUserACL.png" alt="Add Nextcloud Parent Dataset ACL Permissions" id="Add Nextcloud Parent Dataset ACL Permissions" >}} - When adding the **postgres_data** dataset, enter the dataset name and then click **Advanced Options** to show the advanced dataset settings. - Scroll down to the **ACL Type** and select **POSIX** from the dropdown list, and then click **Save**. - Only the **postgres_data** dataset requires the POSIX ACL type setting. + When adding the postgres_data dataset, enter the dataset name and then click Advanced Options to show the advanced dataset settings. + Scroll down to the ACL Type and select POSIX from the dropdown list, and then click Save. + Only the postgres_data dataset requires the POSIX ACL type setting. {{< trueimage src="/images/SCALE/Apps/SetPostgres_dataACLtoPOSIX.png" alt="Set postgres_data Dataset ACL Type" id="Set postgres_data Dataset ACL Type" >}} - Click **Set ACL for this dataset** to open the **Edit ACL** screen. - Set the **owner** and **group** to **netdata** and click **Apply Owner** and **Apply Group**, and then with that ACL entry highlighted, assign full control permissions before you save the ACL. - Click **Save Access Control List**. + Click Set ACL for this dataset to open the Edit ACL screen. + Set the owner and group to netdata and click Apply Owner and Apply Group, and then with that ACL entry highlighted, assign full control permissions before you save the ACL. + Click Save Access Control List. {{< trueimage src="/images/SCALE/Apps/AddPostgres_DataACLPermissions.png" alt="Add Nextcloud postgres_data Dataset ACL Permissions" id="Add Nextcloud postgres_data Dataset ACL Permissions" >}} - {{< /expand >}} + {{< /expand >}}
+ +{{< include file="/static/includes/apps/BeforeYouBeginAddAppCertificate.md" >}} + +

Adding a certificate is optional but if you want to use a certificate for this application, either create a new self-signed CA and certificate or import an existing CA and create the certificate for Nextcloud. A certificate is not required to deploy the application.

{{< include file="/static/includes/apps/BeforeYouBeginAddNewAppUser.md" >}} @@ -150,12 +148,12 @@ Select **Enable ACL**, and then either enter or browse to and select the **html* {{< trueimage src="/images/SCALE/Apps/InstallNextcloudStorageAppDataACLandACESettings.png" alt="Add Nextcloud Storage for AppData" id="Add Nextcloud Storage for AppData" >}} -Select **Add** to the right of **ACL Entries**, add the **33** user, and give it **FULL_CONTROL Access**. +Select **Add** to the right of **ACL Entries**, add the **33** user ID, and give it **FULL_CONTROL Access**. Select **Force Flag**. Repeat this step for the **Nextcloud User Data Storage** storage volume. After setting **Type** to **Host Path (Path that already exists on the system)** and selecting **Enable ACL**, enter or browse to and select the **data** dataset. -Select **Add** to the right of **ACL Entries** to add the **33** user, and give it **FULL_CONTROL Access**. Select **Force Flag** +Select **Add** to the right of **ACL Entries** to add the **33** user ID, and give it **FULL_CONTROL Access**. Select **Force Flag** {{< trueimage src="/images/SCALE/Apps/InstallNextcloudStorageDataACLandACESettings.png" alt="Add Nextcloud Storage Volumes" id="Add Nextcloud Storage Volumes" >}} diff --git a/content/TruenasApps/StableApps/PlexApp.md b/content/TruenasApps/StableApps/PlexApp.md index 963158545b..9ae6f27bc8 100644 --- a/content/TruenasApps/StableApps/PlexApp.md +++ b/content/TruenasApps/StableApps/PlexApp.md @@ -26,20 +26,16 @@ Before you install the Plex app: {{< include file="/static/includes/apps/BeforeYouBeginStableApps.md" >}} -* Go to **Datasets**, and select the pool or dataset where you want to add the Plex datasets. - For example, */tank/apps/plex* or */tank/plex*. - You can use either an existing pool or [create a new one]({{< relref "CreatePoolWizard.md" >}}) +{{< include file="/static/includes/apps/BeforeYouBeginAddAppDatasets.md" >}} - Create the two datasets Plex uses for storage volumes: - * **data** to use as the Plex data directory for database and metadata storage - * **config** for Plex application configuration storage. +

Create the two datasets Plex uses for storage volumes: data to use as the Plex data directory for database and metadata storage, and config for Plex application configuration storage.

- You can create a dataset or use a temporary directory option for log data. - Transcode data is not useful or meant for persistent storage, so using a temporary directory is a better option. +

You can create a dataset or use a temporary directory option for log data. + Transcode data is not useful or meant for persistent storage, so using a temporary directory is a better option.

- When creating the above datasets, select the **apps** dataset preset. +

When creating the above datasets, select the apps dataset preset. - You can set up the permissions (ACLs) for these datasets after adding them using the **Edit ACL** screen, or wait and use the **Install Plex** wizard ACL settings to add permissions. You can also edit permissions after using either method. +

You can set up the permissions (ACLs) for these datasets after adding them using the Edit ACL screen, or wait and use the Install Plex wizard ACL settings to add permissions. You can also edit permissions after using either method.

### Installing the Plex App {{< hint info >}} diff --git a/static/includes/apps/BeforeYouBeginAddAppDatasets.md b/static/includes/apps/BeforeYouBeginAddAppDatasets.md new file mode 100644 index 0000000000..858e2cde24 --- /dev/null +++ b/static/includes/apps/BeforeYouBeginAddAppDatasets.md @@ -0,0 +1,6 @@ + + +* Create datasets for the storage volumes for the app. + + Go to **Datasets** and select the pool or dataset where you want to place the dataset(s) for the app. + For example, */tank/apps/appName*. \ No newline at end of file diff --git a/static/includes/apps/BeforeYouBeginAddNewAppUser.md b/static/includes/apps/BeforeYouBeginAddNewAppUser.md index 686843ab14..ea64d7cea0 100644 --- a/static/includes/apps/BeforeYouBeginAddNewAppUser.md +++ b/static/includes/apps/BeforeYouBeginAddNewAppUser.md @@ -1,4 +1,6 @@ -* (Optional) Create a new user account to manage this application. - If creating a new user account to manage this application or using an existing TrueNAS [administrator]({{< relref "ManageLocalUsersSCALE.md" >}}) account, enable sudo permissions for that TrueNAS user account, and add the user ID to the dataset ACL permissions when setting up app storage volumes in the Install app wizard. \ No newline at end of file +* (Optional) Create a new TrueNAS user account to manage this application. + When creating a new user account to manage this application or using an existing TrueNAS [administrator]({{< relref "ManageLocalUsersSCALE.md" >}}) account, enable sudo permissions for that TrueNAS user account, select **Create New Primary Group**, and add the appropriate group in the **Auxiliary Group** for the type of user you want to create. Make note of the UID for the new user to add in the installation wizard. + + Add the user ID to the dataset ACL permissions when setting up app storage volumes in the Install app wizard. \ No newline at end of file diff --git a/static/includes/apps/BeforeYouBeginStableApps.md b/static/includes/apps/BeforeYouBeginStableApps.md index 7a074ed2f6..daaa92191a 100644 --- a/static/includes/apps/BeforeYouBeginStableApps.md +++ b/static/includes/apps/BeforeYouBeginStableApps.md @@ -2,16 +2,10 @@ * Set a pool for applications to use if not already assigned. + You can use either an existing pool or [create a new one]({{< relref "CreatePoolWizard.md" >}}). Go to **Apps**. If the pool for apps is not already set, do it when prompted. TrueNAS creates the **ix-apps** (hidden) dataset in the pool set as the application pool. This dataset is internally managed, so you cannot use this as the parent when you create required application datasets. After setting the pool, the **Installed Applications** screen displays **Apps Service Running** on the top screen banner. - {{< trueimage src="/images/SCALE/Apps/AppsChooseAPoolForApps.png" alt="Choose A Pool for Apps" id="Choose A Pool for Apps" >}} - -* (Optional) Create a new TrueNAS user to serve as the administrator for the app. - - You can use the default user or add a new user. - When you [create a new user]({{< relref "ManageLocalUsersSCALE.md#creating-user-accounts" >}}) select **Create New Primary Group**, and add the appropriate group in the **Auxiliary Group** for the type of user you want to create. Make note of the UID for the new user to add in the installation wizard. - -* Create the required dataset(s). \ No newline at end of file + {{< trueimage src="/images/SCALE/Apps/AppsChooseAPoolForApps.png" alt="Choose A Pool for Apps" id="Choose A Pool for Apps" >}} \ No newline at end of file From 1a0c993c2d8c9c604fe51e123d69f844822befd3 Mon Sep 17 00:00:00 2001 From: MicJ Date: Thu, 5 Dec 2024 11:24:37 -0500 Subject: [PATCH 3/8] PD-1626 Add New Snippet This commit adds the new BeforeYouBeginRunAsUser.md snippet, and reorganizes the Before You Begin section. --- .../StableApps/InstallNextCloudMedia.md | 9 ++++++--- .../SCALE/Apps/NextcloudDetailsScreen.png | Bin 0 -> 127585 bytes .../includes/apps/BeforeYouBeginRunAsUser.md | 7 +++++++ 3 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 static/images/SCALE/Apps/NextcloudDetailsScreen.png create mode 100644 static/includes/apps/BeforeYouBeginRunAsUser.md diff --git a/content/TruenasApps/StableApps/InstallNextCloudMedia.md b/content/TruenasApps/StableApps/InstallNextCloudMedia.md index d76d600aae..ca80915227 100644 --- a/content/TruenasApps/StableApps/InstallNextCloudMedia.md +++ b/content/TruenasApps/StableApps/InstallNextCloudMedia.md @@ -32,6 +32,11 @@ For more information on the FreeBSD-based Nextcloud plugin, see [Nextcloud]({{< Before you install the Nextcloud app: {{< include file="/static/includes/apps/BeforeYouBeginStableApps.md" >}} +{{< include file="/static/includes/apps/BeforeYouBeginRunAsUser.md" >}} + +
{{< trueimage src="/images/SCALE/Apps/NextcloudDetailsScreen.png" alt="Nextcloud App Details Screen" id="Nextcloud App Details Screen" >}}
+ +{{< include file="/static/includes/apps/BeforeYouBeginAddNewAppUser.md" >}} {{< include file="/static/includes/apps/BeforeYouBeginAddAppDatasets.md" >}} @@ -77,8 +82,6 @@ Before you install the Nextcloud app:

Adding a certificate is optional but if you want to use a certificate for this application, either create a new self-signed CA and certificate or import an existing CA and create the certificate for Nextcloud. A certificate is not required to deploy the application.

-{{< include file="/static/includes/apps/BeforeYouBeginAddNewAppUser.md" >}} - * Set up a Nextcloud account. If you have an existing Nextcloud account, you enter the credentials for that user in the installation wizard. If do not have an existing Nextcloud account you can create the account from the application install wizard. @@ -90,7 +93,6 @@ For optional settings, see [Understanding App Installation Wizard Settings](#und {{< /hint >}} {{< include file="/static/includes/apps/MultipleAppInstancesAndNaming.md" >}} - {{< include file="/static/includes/apps/LocateAndOpenInstallWizard.md" >}} {{< trueimage src="/images/SCALE/Apps/InstallNextcloudScreen.png" alt="Install Nextcloud Screen" id="Install Nextcloud Screen" >}} @@ -129,6 +131,7 @@ For more information on formatting and using cron jobs, see [Managing Cron Jobs] The TrueNAS app is configured with all the required environment variables, but if you want to further customize the container, click **Add** to the right of **Additional Environment Variables** for each to enter the variable(s) and values(s). {{< /expand >}} + Enter the network configuration settings. Enter the default port, **30027**, in **WebUI Port**, or enter an available port number of your choice. See [Network Configuration](#network-configuration) below for more information on changing the default port. diff --git a/static/images/SCALE/Apps/NextcloudDetailsScreen.png b/static/images/SCALE/Apps/NextcloudDetailsScreen.png new file mode 100644 index 0000000000000000000000000000000000000000..8f75054ef20e16742efba8718ff77383f4929d9f GIT binary patch literal 127585 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 literal 0 HcmV?d00001 diff --git a/static/includes/apps/BeforeYouBeginRunAsUser.md b/static/includes/apps/BeforeYouBeginRunAsUser.md new file mode 100644 index 0000000000..9ccf4e30de --- /dev/null +++ b/static/includes/apps/BeforeYouBeginRunAsUser.md @@ -0,0 +1,7 @@ + + +* Locate the run-as user for the app. + + Take note of the run-as user for the app, shown on the app information screen in the **Run As Content** widget and in the **Application Metadata** widget on the **Installed** applications screen after the app fully deploys. + The run-as user(s) get added to the ACL permissions for each dataset used as a host path storage volume. + From a6fa9f3af1a8deed7f9609cd3198952d6a6a16e8 Mon Sep 17 00:00:00 2001 From: MicJ Date: Thu, 5 Dec 2024 11:30:04 -0500 Subject: [PATCH 4/8] PD-1626 Add Encrypted Pool for Apps warning to snippet This commit adds the warning about using an encrypted pool to the BeforeYouBeginStableApps.md snippet --- static/includes/apps/BeforeYouBeginStableApps.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/static/includes/apps/BeforeYouBeginStableApps.md b/static/includes/apps/BeforeYouBeginStableApps.md index daaa92191a..529f220545 100644 --- a/static/includes/apps/BeforeYouBeginStableApps.md +++ b/static/includes/apps/BeforeYouBeginStableApps.md @@ -2,6 +2,13 @@ * Set a pool for applications to use if not already assigned. + {{< hint type=warning title="Encrypted Pools" >}} + Do not select an encrypted pool as the app pool! + Selecting an encrypted pool can cause app issues after upgrading the system when pools and any datasets in the pool are locked. + If using the encrypted root dataset of the pool, the dataset for the containers do not mount, and the containers do not start. + To resolve issues, enter the passphrase/key to unlock datasets, and then all nested datasets can mount and start. + {{< /hint >}} + You can use either an existing pool or [create a new one]({{< relref "CreatePoolWizard.md" >}}). Go to **Apps**. If the pool for apps is not already set, do it when prompted. TrueNAS creates the **ix-apps** (hidden) dataset in the pool set as the application pool. From 5633c12dc70b9800eeca25843315db4c974ce40d Mon Sep 17 00:00:00 2001 From: MicJ Date: Thu, 5 Dec 2024 11:31:57 -0500 Subject: [PATCH 5/8] PD-1626 Update Encrypted Pool Warning text in BeforeYouBeginStableApps.md --- static/includes/apps/BeforeYouBeginStableApps.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/includes/apps/BeforeYouBeginStableApps.md b/static/includes/apps/BeforeYouBeginStableApps.md index 529f220545..9af43da014 100644 --- a/static/includes/apps/BeforeYouBeginStableApps.md +++ b/static/includes/apps/BeforeYouBeginStableApps.md @@ -6,7 +6,7 @@ Do not select an encrypted pool as the app pool! Selecting an encrypted pool can cause app issues after upgrading the system when pools and any datasets in the pool are locked. If using the encrypted root dataset of the pool, the dataset for the containers do not mount, and the containers do not start. - To resolve issues, enter the passphrase/key to unlock datasets, and then all nested datasets can mount and start. + To resolve issues, unlock the dataset(s) by entering the passphrase/key to allow all nested datasets to mount and start. {{< /hint >}} You can use either an existing pool or [create a new one]({{< relref "CreatePoolWizard.md" >}}). From 36a692b01e0e53d6c6440a11733c01d2d286525d Mon Sep 17 00:00:00 2001 From: MicJ Date: Thu, 5 Dec 2024 14:11:04 -0500 Subject: [PATCH 6/8] PD-1626 Update Plex, Nextcloud, and Snippets This commit updates the content in the Nextcloud and Plex tutorials, and copies the changes made in to snippets the PR for PD-1478. --- content/TruenasApps/StableApps/PlexApp.md | 104 +++++++----------- .../includes/apps/InstallAppsStorageConfig.md | 5 +- .../apps/LocateAndOpenInstallWizard.md | 2 - 3 files changed, 43 insertions(+), 68 deletions(-) diff --git a/content/TruenasApps/StableApps/PlexApp.md b/content/TruenasApps/StableApps/PlexApp.md index 9ae6f27bc8..7a6c0a66bf 100644 --- a/content/TruenasApps/StableApps/PlexApp.md +++ b/content/TruenasApps/StableApps/PlexApp.md @@ -25,17 +25,21 @@ Before you install the Plex app: After installing the Plex app and logging into Plex through the **Web Portal** button in TrueNAS, if you have not already configured your Plex account media server, Plex shows the configuration screens to set up the media server, add libraries, and customize your Plex account. {{< include file="/static/includes/apps/BeforeYouBeginStableApps.md" >}} +{{< include file="/static/includes/apps/BeforeYouBeginRunAsUser.md" >}} + +
{{< trueimage src="/images/SCALE/Apps/PlexDetailsScreen.png" alt="Plex App Details Screen" id="Plex App Details Screen" >}}
{{< include file="/static/includes/apps/BeforeYouBeginAddAppDatasets.md" >}} -

Create the two datasets Plex uses for storage volumes: data to use as the Plex data directory for database and metadata storage, and config for Plex application configuration storage.

+
Plex uses for storage volumes: data to use as the Plex data directory for database and metadata storage, and config for Plex application configuration storage. -

You can create a dataset or use a temporary directory option for log data. + You can create a dataset or use a temporary directory option for log data. Transcode data is not useful or meant for persistent storage, so using a temporary directory is a better option.

+ + {{< include file="/static/includes/apps/BeforeYouBeginAddAppDatasetsProcedure.md" >}} -

When creating the above datasets, select the apps dataset preset. - -

You can set up the permissions (ACLs) for these datasets after adding them using the Edit ACL screen, or wait and use the Install Plex wizard ACL settings to add permissions. You can also edit permissions after using either method.

+ You can set up the permissions (ACLs) for these datasets after adding them using the Edit ACL screen, or wait and use the Install Plex wizard ACL settings to add permissions. + You can also edit permissions after using either method.
### Installing the Plex App {{< hint info >}} @@ -63,28 +67,22 @@ While logged into your Plex account, go to the [Plex **Claim Code** web page](ht Next, either accept the default values shown or enter the IP addresses for local network connections (Ethernet or WiFi routers) you want in your Plex network. See [Setting Up Local Network](#setting-up-local-network) below for more information. -You can add devices and/or additional environment variables, but these are not necessary to deploy the app. -For more information on adding these, see [Adding Devices](#adding-devicess) below. +You can add devices and additional environment variables, but this is not required to deploy the app. +For more information, see [Adding Devices](#adding-devicess) below. -Accept the default values in both **User and Group Configuration** and **Network Configurations**. +Accept the default values in **User and Group Configuration** and **Network Configurations**. (Optional) If you created a new user to administer apps, enter that user ID in the user and group fields. See [User and Group Configuration](#user-and-group-configuration) and [Network Configuration](#network-configuration) for more details. Add your **Storage Configuration** settings. {{< expand "Configuring Plex Storage" "v" >}} -Set **Host Path (Path that already exists on the system)** in **Type** for **Plex Data Storage**. -Select **Enable ACL**, and then either enter or browse to and select the **data** dataset to populate the **Host Path** field. - -{{< trueimage src="/images/SCALE/Apps/InstallPlexStorageConfigDataACLandACE.png" alt="Add Plex Data Storage" id="Add Plex Data Storage" >}} - Select **Add** to the right of **ACL Entries** for each user or group entry you want to add. -For example, add the **568** user and **0**, and give each **FULL_CONTROL Access**. +For example, add the **568** user and **0**, and set the permission level to **FULL_CONTROL Access**. Select **Force Flag**. -Repeat the storage steps above for the **Plex Configuration** and, when using a dataset for logs, for the **Plex Logs** storage volumes. -Create a dataset for log storage to save and easily access log data. -If not, set the storage volume type to either **temporary** or **tmpfs** for both **Logs** and **Transcode** storage. +Repeat the steps above for the **Plex Configuration**. +Repeat the same steps when creating and using a dataset for the **Plex Logs** storage volumes, but if not, set the storage volume type to either **temporary** or **tmpfs** for both **Logs** and **Transcode** storage volumes. {{< /expand >}} Add any labels you want to use to organize your media files. @@ -125,23 +123,23 @@ Accept the default value in **Image** to use the container image for the TrueNAS TrueNAS shows the default IP addresses detected for your system. If these address fields are not shown in the wizard, your network is considered to be on the external network. -Either accept the default values or enter the IP addresses for local network connections (Ethernet or WiFi routers) you want in your Plex local network. +Accept the default values or enter IP addresses for local network connections (Ethernet or WiFi routers) you want to add to your Plex local network. These addresses define how Plex interacts with devices and services on your network and can optimize how your Plex media server communicates with devices in your home. -Specified addresses are considered to be on the local network when enforcing bandwidth restrictions. +Specified addresses are considered on the local network when enforcing bandwidth restrictions. If left blank, only the subnet for the server is considered to be on your local network. When the host network is not enabled, the server subnet is the network for Docker. Therefore, all connections from other clients are considered to be on the external network. If set, all other IP addresses are considered to be external to your local network. #### Adding Devices in the Container -Plex account settings allow you to add and manage devices, such as a USB TV Tunner or other similar hardware, that connect to your media server, both on the local network you define and remotely from external network connections. +Plex account settings allow you to add and manage devices, such as a USB TV tuner or similar hardware, that connect to your media server, both on the local network you define and remotely from external network connections. Adding devices in the TrueNAS Plex app passes devices through to your Plex account. Click **Add** to the right of **Devices** in the **Install Plex** wizard for each device to add. {{< trueimage src="/images/SCALE/Apps/InstallPlexConfigAddDevice.png" alt="Install Plex Add Device" id="Install Plex Add Device" >}} -Enter the name of the device in the **Host Device** and in the **Container Device** fields. For example, device */dev/dvb*. +Enter the device name in **Host Device** and **Container Device**. For example, device */dev/dvb*. #### Adding Environment Variables {{< include file="/static/includes/apps/AppInstallWizardEnvironVariablesSettings.md" >}} @@ -154,10 +152,6 @@ Refer to Plex documentation for more information on [environment variables](http {{< include file="/static/includes/apps/AppInstallWizardUserAndGroupConfig.md" >}} -The run-as user information is found on the Plex app details screen in the **Run-As Content** widget. - -{{< trueimage src="/images/SCALE/Apps/PlexDetailsScreen.png" alt="Plex App Details Screen" id="Plex App Details Screen" >}} - ### Network Configuration The default web port for Plex is **32400**. @@ -167,60 +161,44 @@ The default web port for Plex is **32400**. ### Storage Configuration TrueNAS provides options for data and configuration storage volumes: ixVolumes and host paths. -Logs and transcode data can use these same storage options or you can create directories to hold log and/or transcode data. +Logs and transcode data can use these storage options or you can create directories to hold log and transcode data. Both logs and transcode data are not intended for persistent data storage. -Logs and transcode data can be stored in the **temporary** directory option that creates a Docker volume in the hidden **ix-apps** dataset. +Logs and transcode data can use the **temporary** directory option that creates a Docker volume in the hidden **ix-apps** dataset. Transcode data chunks are streamed to a player and meant to be discarded after use, like notes on a scratchpad. -This makes the **tmpfs** directory option a better choice as it creates a Linux temporary filesystem type in RAM. +This makes the **tmpfs** directory option a better choice for this transcode data as it creates a Linux temporary filesystem type in RAM. Neither directory storage option provides easy access to stored data, so if you want to store and access log data, create a dataset called **logs**. -If opting to use datasets for all Plex storage volumes, create datasets to use with the host path option: +Plex required host path storage volumes: * **data** to use as the Plex data directory for database and metadata storage. * **config** to use as the Plex app configuration storage volume. -* **logs** if you want to save and have easy access to log data. +* **logs** optional if you want to save and have easy access to log data. -If you group these datasets under a parent dataset named *plex*, configure the [ACL permissions]({{< relref "PermissionsSCALE.md" >}}) for this parent dataset and add an ACE entry for the run-as (root or **0**) or assigned user (**568**). +If organizing datasets under a parent dataset named *plex*, configure the [ACL permissions]({{< relref "PermissionsSCALE.md" >}}) for this parent dataset and add an ACE entry for the run-as (root or **0**) or assigned user (**568**). -You can create the ACL permission using the app installation wizard or using the **Add Dataset** and **Edit ACL** screens. +See [Before You Begin](#before-you-begin) for more information on creating app datasets. {{< include file="/static/includes/apps/InstallAppsStorageConfig.md" >}} {{< include file="/static/includes/apps/AppInstallWizardTemporaryAndTmpfsDirectories.md" >}} -You can also create additional storage volumes inside the containers. -Additional storage options include the same options and the option to set up an SMB share inside the container. -See **Mounting an SMB Share** below for details. - -{{< expand "Creating App Datasets" "v" >}} -To create the Plex app datasets, go to **Datasets**, select the dataset you want to use as the parent dataset, then click **Add Dataset** to [add a dataset]({{< relref "DatasetsScale.md" >}}). -In this example, we create the Plex datasets under the parent dataset **plex**. +#### Setting Dataset ACL Permissions +You can configure ACL permissions for the required dataset in the **Install Plex** wizard, or from the **Datasets** screen any time after adding the datasets. -Enter **plex** in **Name**, and select **Apps** as the **Dataset Preset**. -Click **Advanced Options** if you want to make any other setting changes. Click **Save**. -When prompted, select **Return to Pool List** to configure permissions later after adding the other three datasets, or open the ACL editor to edit ACL permissions immediately after adding the dataset. - -Next, select the **plex** dataset, and then click **Add Dataset** to add the first child dataset. -Enter **data** in **Name** and select **Apps** as the **Dataset Preset**. -Click **Advanced Options** if you want to make any other setting changes. Click **Save**. - -Repeat this to add the **config** dataset, and if desired, also create datasets for **logs** if you want to have easy access to and recovery of log files. -Use the option to add a temporary directory on disk or in RAM for transcode data (and logs if not creating a dataset) storage rather than adding datasets. -When finished you should have the **plex** parent dataset with the child datasets under it. Our example paths are: -* */mnt/tank/plex/***data** -* */mnt/tank/plex/***config** -* */mnt/tank/plex/***logs** +{{< include file="/static/includes/apps/InstallWizardStorageACLConfig.md" >}} -{{< trueimage src="/images/SCALE/Apps/AddPlexAppDatasets.png" alt="Add Plex Dataset Storage" id="Add Plex Dataset Storage" >}} +{{< expand "Adding ACL Permissions from the Datasets Screen" "v">}} +First, select the dataset row, scroll down to the **Permissions** widget, and then click **Edit** to open the **Edit ACL** screen. +Change the **@owner** and **@group** values from **root** to the administrative user for your TrueNAS system, and click apply for each. +Next, add an ACL entry for the run-as user. +For Plex, the run-as users are **0** for **root** and **568**. Add a user entry for these users. +Save the ACL before leaving the screen. +See [Setting Up Permissions]({{< relref "PermissionsSCALE.md" >}}) and [Edit ACL Screen]({{< relref "EditACLScreens.md" >}}) for more information. {{< /expand >}} -#### ACL and ACE Settings - -{{< include file="/static/includes/apps/InstallWizardStorageACLConfig.md" >}} - -#### Mounting an SMB Share +#### Mounting an SMB Share Storage Volume TrueNAS **Additional Storage** options include the ability to mount an SMB share inside the container pod. {{< include file="/static/includes/apps/InstallWizardStorageSMBOption.md" >}} @@ -233,7 +211,7 @@ TrueNAS **Additional Storage** options include the ability to mount an SMB share {{< include file="/static/includes/apps/InstallWizardGPUPassthrough.md" >}} ## Troubleshooting Tips -Before editing Plex app settings, first stop the app, and then edit settings. After saving changes, restart the app. +Before editing Plex app settings, stop the app, and then edit settings. After saving changes, restart the app. Refer to the Plex support website and documentation for assistance with your Plex media server issues. @@ -250,9 +228,11 @@ Search the [TrueNAS forum](https://forums.truenas.com/) for Plex discussion thre ### Cannot Access Libraries or Media Files Check the dataset permissions, and verify the user accessing these files has the correct permissions. -You can edit dataset permissions by using the **Edit** button on the **Permissions** widget on the **Datasets** screen. +You can edit dataset permissions using the **Edit** button on the **Permissions** widget on the **Datasets** screen. Select the dataset, scroll down to the **Permissions** widget, and click **Edit** to open the **Edit ACL** screen. -Check the ACL entries list for the user accessing the files. If not present, click **Add ACL Entry**, select **User**, and then locate the user name on the **User** dropdown list. Assign the level of permissions you want to assign, then save the ACL changes. +Check the ACL entries list for the user accessing the files. +If not present, click **Add ACL Entry**, select **User**, and locate the user name on the **User** dropdown list. +Assign the level of permissions you want to assign, then save the ACL changes. You can also add the user in the Plex app settings. Click on the Plex app row on the **Installed** application table. Stop the app, then click **Edit**. diff --git a/static/includes/apps/InstallAppsStorageConfig.md b/static/includes/apps/InstallAppsStorageConfig.md index 5168eb31cd..4e95260d8b 100644 --- a/static/includes/apps/InstallAppsStorageConfig.md +++ b/static/includes/apps/InstallAppsStorageConfig.md @@ -15,8 +15,5 @@ Populating the **Host Path** with the dataset location and then selecting **Enab {{< include file="/static/includes/apps/AppInstallWizardACLConfiguration.md" >}} -When the app requires additional datasets, repeat the host path setting for each required dataset. -When adding additional storage volumes inside the container, click **Add** to the right of **Additional Storage** to show the storage volume fields. - -Click **Add** to show the mount and host path fields for each additional dataset and if creating storage volumes for postgres data and postgres backup. +Repeat the above for each required dataset. {{< /expand >}} \ No newline at end of file diff --git a/static/includes/apps/LocateAndOpenInstallWizard.md b/static/includes/apps/LocateAndOpenInstallWizard.md index 4f1ad0d83c..68cb6c1324 100644 --- a/static/includes/apps/LocateAndOpenInstallWizard.md +++ b/static/includes/apps/LocateAndOpenInstallWizard.md @@ -14,8 +14,6 @@ Click **Confirm** then **Agree** to close the dialog and open the application de {{< /expand >}} If not the first time installing apps the dialog does not show, click on the widget to open the app information screen. -{{< trueimage src="/images/SCALE/Apps/MiniIOS3AppInfoScreen.png" alt="Example of an App Information Screen" id="Example of an App Information Screen" >}} - Click **Install** to open the app installation wizard. Application configuration settings are grouped into several sections, each explained below in **Understanding App Installation Wizard Settings**. From 6664e9ee4e6592a6f5fd6369833795a7f44f6f87 Mon Sep 17 00:00:00 2001 From: tonyriv3 <75626853+tonyriv3@users.noreply.github.com> Date: Mon, 9 Dec 2024 13:20:25 -0500 Subject: [PATCH 7/8] Update InstallNextCloudMedia.md --- .../StableApps/InstallNextCloudMedia.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/content/TruenasApps/StableApps/InstallNextCloudMedia.md b/content/TruenasApps/StableApps/InstallNextCloudMedia.md index ca80915227..b78bf7a4fa 100644 --- a/content/TruenasApps/StableApps/InstallNextCloudMedia.md +++ b/content/TruenasApps/StableApps/InstallNextCloudMedia.md @@ -18,7 +18,7 @@ keywords: Nextcloud is a drop-in replacement for many popular cloud services, including file sharing, calendar, groupware, and more. One of its more common uses for the home environment is serving as a media backup, and organizing and sharing service. -This procedure demonstrates how to set up Nextcloud on TrueNAS, and configure it to support hosting a wider variety of media file previews, including High Efficiency Image Container (HEIC), MP4, and MOV files. +This procedure demonstrates how to set up Nextcloud on TrueNAS and configure it to support hosting a wider variety of media file previews, including High-Efficiency Image Container (HEIC), MP4, and MOV files. TrueNAS offers one deployment option for setting up Nextcloud, a Linux Debian-based TrueNAS version application available in TrueNAS releases 24.10 and later. The instructions in this article apply to these TrueNAS 24.10 and later releases. @@ -55,9 +55,9 @@ Before you install the Nextcloud app: You must configure the ACLs permissions for two datasets while on the >Datasets screen: the parent dataset (i.e., the nextcloud dataset) and the postgres_data dataset. You can configure ACL permissions for the Nextcloud html and data datasets when prompted or configure them in the app installation wizard as described in the installation section. - To configure the dataset ACL permissions from the Datasets screen, either select the Set ACL for this dataset option when prompted after adding the dataset or select the dataset row, and then click Edit on the Permissions widget to open the Edit ACL screen. + To configure the dataset ACL permissions from the Datasets screen, either select the Set ACL for this dataset option when prompted after adding the dataset or select the dataset row and then click Edit on the Permissions widget to open the Edit ACL screen. - When adding the parent dataset, after entering the name, select the Generic dataset preset. + When adding the parent dataset, select the Generic dataset preset after entering the name. Select the option to edit the ACL, set the owner and group to admin or the name of your administration user account, and click Apply Owner and Apply Group. Next, add an ACE entry for the netdata and www-dat users and give them full permissions. Click Save Access Control List. @@ -84,7 +84,7 @@ Before you install the Nextcloud app: * Set up a Nextcloud account. If you have an existing Nextcloud account, you enter the credentials for that user in the installation wizard. - If do not have an existing Nextcloud account you can create the account from the application install wizard. + If you do not have an existing Nextcloud account, you can create one using the application install wizard. ### Installing the Nextcloud App {{< hint info >}} @@ -121,7 +121,7 @@ The **Data Directory Path** is pre-populated with the correct path. Enter a password in **Redis Password** to create a new credential or enter the existing password if you already have Redis configured in your Nextcloud account. Enter a password in **Database Password** to create a new credential for the Nextcloud database or enter the existing password if you already have the Nextcloud account database configured. Nextcloud does not URL encode in some places so do not use the ampersand (&), at (@), hashtag (#), or percent (%) characters in the Redis password. -Accept the remaining defaults in the **Nextcloud Configuration** section, but if setting up a cron job schedule, select **Enabled** under **Cron** to show the settings to allow you to schedule a cron job. +Accept the remaining defaults in the **Nextcloud Configuration** section. However, if you are setting up a cron job schedule, select **Enabled** under **Cron** to show the settings that allow you to schedule a cron job. {{< expand "Nextcloud Cron Jobs" "v" >}} NextCloud cron jobs only run while the app is running. If you stop the app, the cron job(s) do not run until you start the app again. @@ -139,7 +139,7 @@ This port must match the one used in **Host** above. If you configured a certificate, select it in **Certificate ID**. A certificate is required if you want to select an external port other than the default **30027**. -Enter the storage settings for each of the datasets created for the Nextcloud app. +Enter the storage settings for each dataset you created for the Nextcloud app. {{< expand "Configuring Nextcloud Storage" "v" >}} {{< hint type=info >}} Do not select **DEPRECATED: Old Storage Structure** if you are deploying Nextcloud for the first time as this slows down the installation and is not necessary. @@ -197,7 +197,7 @@ Nextcloud has three APT package options: You must add both the **ffmpeg** and **smbclient** packages to deploy this app. -You can use **ocrmypdf** as well if needed, but you must also select the **Tesseract Language Code** to use. Options are **chi-sim** for Simplified Chinese or **eng** for English. +You can also use **ocrmypdf** if needed, but you must select the **Tesseract Language Code** to use. Options are **chi-sim** for Simplified Chinese or **eng** for English. For more information on tesseract languages to install for OCRmypdf, see [here](https://tesseract-ocr.github.io/tessdoc/Data-Files-in-different-versions.html) for a list of language codes. Typing the wrong language code blocks the container from starting. Only takes effect if ocrmypdf is selected. Click **Add** to the right of **APT Packages** for each option you want or need to add. From 47b468c75003b7d9094251eb5509e329f7463484 Mon Sep 17 00:00:00 2001 From: tonyriv3 <75626853+tonyriv3@users.noreply.github.com> Date: Mon, 9 Dec 2024 13:31:08 -0500 Subject: [PATCH 8/8] Update BeforeYouBeginStableApps.md --- static/includes/apps/BeforeYouBeginStableApps.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/static/includes/apps/BeforeYouBeginStableApps.md b/static/includes/apps/BeforeYouBeginStableApps.md index 9af43da014..14f5e7cc9e 100644 --- a/static/includes/apps/BeforeYouBeginStableApps.md +++ b/static/includes/apps/BeforeYouBeginStableApps.md @@ -5,7 +5,7 @@ {{< hint type=warning title="Encrypted Pools" >}} Do not select an encrypted pool as the app pool! Selecting an encrypted pool can cause app issues after upgrading the system when pools and any datasets in the pool are locked. - If using the encrypted root dataset of the pool, the dataset for the containers do not mount, and the containers do not start. + If using the encrypted root dataset of the pool, the dataset for the containers does not mount, and the containers do not start. To resolve issues, unlock the dataset(s) by entering the passphrase/key to allow all nested datasets to mount and start. {{< /hint >}} @@ -15,4 +15,4 @@ This dataset is internally managed, so you cannot use this as the parent when you create required application datasets. After setting the pool, the **Installed Applications** screen displays **Apps Service Running** on the top screen banner. - {{< trueimage src="/images/SCALE/Apps/AppsChooseAPoolForApps.png" alt="Choose A Pool for Apps" id="Choose A Pool for Apps" >}} \ No newline at end of file + {{< trueimage src="/images/SCALE/Apps/AppsChooseAPoolForApps.png" alt="Choose A Pool for Apps" id="Choose A Pool for Apps" >}}