Go to file
2022-06-14 22:16:42 +02:00
.github/workflows New Version of TrueTool 2022-06-14 22:04:51 +02:00
includes ignore some useless shellcheck feedback 2022-06-14 22:16:42 +02:00
.pre-commit-config.yaml New Version of TrueTool 2022-06-14 22:04:51 +02:00
LICENSE Initial commit 2022-01-16 15:11:49 +01:00
README.md New Version of TrueTool 2022-06-14 22:04:51 +02:00
truetool.sh fix mistakes with include pathing 2022-06-14 22:12:33 +02:00

truetool

A easy tool for frequently used TrueNAS SCALE CLI utilities.

Table of contents:


Synopsis

TrueTool is a commandline tool, designed to enable some features of TrueNAS SCALE that are either not-enabled by default or not-available in the Web-GUI. It also offers a few handy shortcuts for commonly required chores, like: Enabling Apt or Helm

Arguments

Flag Example Parameter Description
--delete-backup --delete-backup None Opens a menu to delete backups
Useful if you need to delete old system backups or backups from other scripts
--restore --restore None Restore TrueTool specific ix-applications dataset snapshot
--mount --mount None Initiates mounting feature
Choose between unmounting and mounting PVC data
--dns --dns None list all of your applications DNS names and their web ports
--list-backups --list-backups None Prints a list of backups available
--helm-enable --helm-enable None Enables Helm command access on SCALE
--apt-enable --apt-enable None Enables Apt command access on SCALE
--no-color --no-color None Disables showing colors in terminal output, usefull for SCALE Email output
-U -U None Update applications, ignoring major version changes
-u -u None Update applications, do NOT update if there was a major version change
-b -b 14 Integer Backup ix-appliactions dataset
Creates backups up to the number you've chosen
-i -i nextcloud -i sonarr String Applications listed will be ignored during updating
List one application after another as shown in the example
-v -v None Verbose Output
Look at the bottom of this page for an example
-t -t 150 Integer Set a custom timeout to be used with either:
-m
Time the script will wait for application to be "STOPPED"
or
-(u|U)
Time the script will wait for application to be either "STOPPED" or "ACTIVE"
-s -s None Sync Catalogs prior to updating
-p -p None Prune old/unused docker images


How to Install

Create a Scripts Dataset

In this example we created a scripts dataset on the Truenas SCALE system, feel free to use another folder.

Open a Terminal

Change Directory to your scripts folder

cd /mnt/pool/scripts

Git Clone truetool

git clone https://github.com/truecharts/truetool.git

Change Directory to truetool folder

cd truetool

From here, you can just run truetool with bash truetool.sh -ARGUMENTS


How to Update

TrueTool updates itself automatically.


Update with your Cron Job

Here, we will update the script prior to running it, incase there is a bugfix, or any new additions to the script

Cron Job Command

bash /mnt/pool/scripts/truetool/truetool.sh -b 14 -rsup


Creating a Cron Job

  1. TrueNAS SCALE GUI
  2. System Settings
  3. Advanced
  4. Cron Jobs
    1. Click Add
Name Value Reason
Description TrueTool Update apps This is up to you, put whatever you think is a good description in here
Command bash /PATH/TO/truetool_DIRECTORY/truetool.sh --no-color -b 14 -sup This is the command you will be running on your schedule, example: bash /mnt/speed/scripts/truetool/truetool.sh -b 14 -rsup
Run As User root Running the script as root is REQUIRED. You cannot access all of the kubernetes functions without this user.
Schedule Up to you, example: 0400 Again up to you
Hide Standard Output False or Unticked It's best to keep an eye on updates and enable this to recieve email reports
Hide Standard Error False or Unticked We definately want to see what errors occured during updating
Enabled True or Ticked This will Enable the script to run on your schedule


Additional Information

TrueTool vs HeavyScript

TrueTool and HeavyScript are based, in essence, based on the the original (python based) TrueUpdate and TrueTool. Then Support-Manager for TrueCharts, HeavyBullets8, ported this to Bash and started adding some additional logic and options for tasks we frequently needed our users to do, such as mounting PVC's.

After a month or so, the TrueCharts Team officially started refactoring this expanded bash-port. Due to personal reasons, HeavyBullets by then decided to seperate from TrueCharts after merging the TrueCharts refactor into his own work. The beauty of OpenSource.

From this point onwards the HeavyScript and TrueTool diverged a bit. We internally review changes within our staff team, to verify we somewhat stick to best-practices. This means, in some cases, we decided not to port certain features from HeavyScript and did decide to add features we think are usefull and safe. But this also means we can give guarantees TrueTool works optimally with our Catalog of TrueNAS SCALE Apps, as well as official Apps.

Users from HeavyScript can safely start using TrueTool, as we've made precautions to ensure the backups take over smoothly. We, however, do not advice using HeavyScript with TrueCharts Apps. Not because it's a bad App, but because we offer an alternative that is validated by our Staff.