45 lines
1.2 KiB
Bash
Executable File
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
|