Files
dropshell-templates/scrutiny/start.sh
j 4b1657901f
All checks were successful
Test and Publish Templates / test-and-publish (push) Successful in 9s
Update caddy/config/caddyfile/check_caddyfile.sh
2026-01-15 10:14:48 +13:00

60 lines
1.7 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:-/dev/sda}"
PRIVILEGED_MODE="${PRIVILEGED_MODE:-false}"
COLLECTOR_CRON_SCHEDULE="${COLLECTOR_CRON_SCHEDULE:-0 0 * * *}"
# Build device arguments
DEVICE_ARGS=""
if [ "$PRIVILEGED_MODE" = "true" ]; then
DEVICE_ARGS="--privileged"
else
for dev in $DEVICES; do
if [ -e "$dev" ]; then
DEVICE_ARGS="$DEVICE_ARGS --device=$dev"
else
echo "Warning: Device $dev does not exist, skipping"
fi
done
if [ -z "$DEVICE_ARGS" ]; then
_die "No valid devices found. Check DEVICES setting or enable PRIVILEGED_MODE."
fi
fi
# Build docker run command
DOCKER_RUN_CMD="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}"
# Start container
if ! _create_and_start_container "$DOCKER_RUN_CMD" "$CONTAINER_NAME"; then
_die "Failed to start container ${CONTAINER_NAME}"
fi
# 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."