Files
dropshell-templates/scrutiny/start.sh
j 757b47cf06
All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 8s
Update scrutiny/start.sh
2026-01-15 11:10:06 +13:00

68 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# shellcheck disable=SC1091
source "${AGENT_PATH}/common.sh"
_check_required_env_vars "CONTAINER_NAME" "IMAGE_REGISTRY" "IMAGE_REPO" "IMAGE_TAG"
# Set defaults
WEB_PORT="${WEB_PORT:-8080}"
INFLUXDB_PORT="${INFLUXDB_PORT:-8086}"
DEVICES="${DEVICES:-sda}"
PRIVILEGED_MODE="${PRIVILEGED_MODE:-false}"
COLLECTOR_CRON_SCHEDULE="${COLLECTOR_CRON_SCHEDULE:-0 0 * * *}"
# Build device arguments array
DEVICE_ARGS=()
if [ "$PRIVILEGED_MODE" = "true" ]; then
DEVICE_ARGS+=("--privileged")
else
for dev in $DEVICES; do
# Auto-prepend /dev/ if not already a path
if [[ "$dev" != /* ]]; then
dev="/dev/$dev"
fi
if [ -e "$dev" ]; then
DEVICE_ARGS+=("--device=$dev")
else
echo "Warning: Device $dev does not exist, skipping"
fi
done
if [ ${#DEVICE_ARGS[@]} -eq 0 ]; then
_die "No valid devices found. Check DEVICES setting or enable PRIVILEGED_MODE."
fi
fi
# Remove existing container if stopped
if _is_container_exists "$CONTAINER_NAME"; then
if _is_container_running "$CONTAINER_NAME"; then
echo "Container ${CONTAINER_NAME} is already running"
exit 0
fi
_remove_container "$CONTAINER_NAME"
fi
# Run docker directly with proper quoting
docker run -d \
--restart unless-stopped \
--name "${CONTAINER_NAME}" \
-p "${WEB_PORT}:8080" \
-p "${INFLUXDB_PORT}:8086" \
-v "${CONTAINER_NAME}_config:/opt/scrutiny/config" \
-v "${CONTAINER_NAME}_influxdb:/opt/scrutiny/influxdb" \
-v /run/udev:/run/udev:ro \
--cap-add SYS_RAWIO \
--cap-add SYS_ADMIN \
-e "COLLECTOR_CRON_SCHEDULE=${COLLECTOR_CRON_SCHEDULE}" \
"${DEVICE_ARGS[@]}" \
"${IMAGE_REGISTRY}/${IMAGE_REPO}:${IMAGE_TAG}"
# Verify running
sleep 2
if ! _is_container_running "$CONTAINER_NAME"; then
echo "Container logs:"
docker logs "$CONTAINER_NAME" 2>&1 | tail -20
_die "Container ${CONTAINER_NAME} is not running"
fi
echo "Container ${CONTAINER_NAME} started successfully."