#! /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