truestuff/start-all-charts.sh

112 lines
2.3 KiB
Bash
Executable File

#! /usr/bin/env bash
set -e
get_charts() {
midclt call chart.release.query | jq -r '
.[]
| select( .status == "STOPPED" )
| .id
'
}
get_charts_by_category() {
local CATEGORY="${1}"
midclt call chart.release.query | jq -r '
.[]
| select ( .chart_metadata.annotations."truecharts.org/catagories" == "- '"$CATEGORY"'\n" )
| .id
'
}
start_chart_category() {
local CATEGORY="${1}"
printf "Starting apps by category: %s\n" "$CATEGORY"
get_charts_by_category "$CATEGORY" | while read chart; do
start_chart $chart
done
wait_for_idle_queue
}
start_chart() {
local CHART="${1}"
printf 'Starting charts: %s... ' "$CHART"
midclt call chart.release.scale "$CHART" '{"replica_count": 1}'
printf '\n'
}
count_unfinished_jobs() {
midclt call core.get_jobs | jq -r '.[] | select( .time_finished == null )' | wc -l
}
wait_for_idle_queue() {
while [[ "$( count_unfinished_jobs )" -gt 0 ]]; do
printf '.'
sleep 2
done
printf '\n'
}
safe_start_chart() {
wait_for_idle_queue
start_chart "${1}"
}
wait_for_idle_queue
start_chart cloudflareddns
start_chart_category network
start_chart_category networking
start_chart_category authentication
start_chart uptime-kuma
safe_start_chart plex-pms
safe_start_chart unifi
start_chart homepage
start_chart it-tools
start_chart haste
safe_start_chart shlink
start_chart shlink-frontend
safe_start_chart ferdi
start_chart hammond
start_chart monica
start_chart languagetool
safe_start_chart paperless-ng
safe_start_chart gitea
safe_start_chart immich
safe_start_chart syncthing
start_chart nzbget
start_chart deluge
start_chart prowlarr
safe_start_chart lunasea
safe_start_chart jdownloader
safe_start_chart calibre
safe_start_chart bazarr
safe_start_chart sonarr
safe_start_chart radarr
safe_start_chart tdarr
# start_chart deepstack
# start_chart docker-compose
# start_chart firefox-syncserver
# start_chart gerev
# start_chart grocy
# start_chart homarr
# start_chart jellyfin
# start_chart jellyseerr
# start_chart mango
# start_chart plex-auto-languages
# start_chart portainer
# start_chart qbittorrent
# start_chart scratch-map
# start_chart silverbullet
# start_chart stash
# start_chart trilium-notes
# start_chart wger
# start_chart whoami
wait_for_idle_queue