my-homelab-configs/scripts/artifact-cache

45 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
STACK_DIR="${REPO_ROOT}/infra/artifact-cache"
DEBIAN_IP="${LAB_DEBIAN_LAN_IP:-192.168.100.73}"
APT_PORT="${APT_CACHE_PORT:-3142}"
REGISTRY_PORT="${REGISTRY_CACHE_PORT:-5001}"
case "${1:-status}" in
status)
echo "Artifact cache stack: ${STACK_DIR}"
if command -v docker >/dev/null 2>&1 && [ -d "$STACK_DIR" ]; then
(cd "$STACK_DIR" && docker compose ps) || true
else
echo "docker compose unavailable; cannot inspect local cache stack"
fi
;;
up)
cd "$STACK_DIR"
docker compose up -d
;;
down)
cd "$STACK_DIR"
docker compose down
;;
instructions)
cat <<EOF
APT proxy:
echo 'Acquire::http::Proxy "http://${DEBIAN_IP}:${APT_PORT}";' | sudo tee /etc/apt/apt.conf.d/01homelab-cache
Docker Hub pull-through cache:
docker pull ${DEBIAN_IP}:${REGISTRY_PORT}/library/debian:bookworm
Stack:
cd ${STACK_DIR}
docker compose up -d
EOF
;;
*)
echo "Usage: ./jeannie artifact-cache {status|up|down|instructions}" >&2
exit 1
;;
esac