Go to file
2023-01-08 13:10:14 +01:00
.github chore(deps): update github-action renovatebot/github-action [skip ci] to v34.93.0 2023-01-08 13:10:14 +01:00
bin Adding in a bootstrap file for ease of installation 2022-10-03 11:09:28 -05:00
functions try to deal with globbing better... 2022-12-29 12:35:31 +01:00
includes some restructure and cleanup 2022-12-28 20:55:49 +01:00
patch/2212 some restructure and cleanup 2022-12-28 20:55:49 +01:00
.pre-commit-config.yaml New Version of TrueTool 2022-06-14 22:04:51 +02:00
bootstrap Adding in a bootstrap file for ease of installation 2022-10-03 11:09:28 -05:00
LICENSE Initial commit 2022-01-16 15:11:49 +01:00
README.md no-color option, removed, marked as deprecated, fixed typo 2023-01-03 20:27:18 +01:00
truetool.sh no-color option, removed, marked as deprecated, fixed typo 2023-01-03 20:27:18 +01:00

truetool

An easy tool for frequently used TrueNAS SCALE CLI utilities.

Please before using this tool, read this note

Table of contents:


Synopsis

TrueTool is a command line 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
--kubeapi-enable --kubeapi-enable None Enables external access to Kuberntes API port
--apt-enable --apt-enable None Enables Apt command access on SCALE
--no-color --no-color None (deprecated) 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-applications 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
-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

oneliner

curl -s https://raw.githubusercontent.com/truecharts/truetool/main/bootstrap | bash

You can now use truetool anywhere truetool -ARGUMENTS

Manual Install

Choose a folder

It's important to save the script in a folder that is persistent across TrueNAS System Updates. This saves you from reinstalling or experiencing an accidental lack-of-backups after an update.

New dataset

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

Root folder

The /root folder houses files for the root user. It's also persistent across updates and hence can be safely used for storing the script.

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.


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 -sup
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 Un-ticked It's best to keep an eye on updates and enable this to receive email reports
Hide Standard Error False or Un-ticked We definitely want to see what errors occurred 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 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 separate 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. Development of TrueTool slowed down a bit during Q3 of 2022 and HeavyScript significantly improved on the reliability of primary features while also adding some of it's own.

While previously HeavyScript and TrueTool shared a lot of code back-and-forth without much care to attribution, we've decided to more officially attribute and start using functions with all the HeavyScript improvements in-place for some of the primary features like: Backup, Restore and App-Updates. Cleanly seperating those from TrueCharts features that have neglitable involvement of HeavyScript.

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

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 useful 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.