feat: add private Docker registry support
- Add --docker-registry parameter to start.sh and setup.sh - Support login to private registries like code.letsbe.solutions - Required for pulling sysadmin-agent image from Gitea registry 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
0b6fa76816
commit
f467869cf5
|
|
@ -26,9 +26,10 @@ SKIP_SSL=false
|
||||||
ROOT_SSL=false
|
ROOT_SSL=false
|
||||||
DOMAIN=""
|
DOMAIN=""
|
||||||
|
|
||||||
# Docker Hub authentication (optional)
|
# Docker registry authentication (optional)
|
||||||
DOCKER_USER=""
|
DOCKER_USER=""
|
||||||
DOCKER_TOKEN=""
|
DOCKER_TOKEN=""
|
||||||
|
DOCKER_REGISTRY=""
|
||||||
|
|
||||||
while [[ $# -gt 0 ]]; do
|
while [[ $# -gt 0 ]]; do
|
||||||
case $1 in
|
case $1 in
|
||||||
|
|
@ -56,6 +57,10 @@ while [[ $# -gt 0 ]]; do
|
||||||
DOCKER_TOKEN="$2"
|
DOCKER_TOKEN="$2"
|
||||||
shift 2
|
shift 2
|
||||||
;;
|
;;
|
||||||
|
--docker-registry)
|
||||||
|
DOCKER_REGISTRY="$2"
|
||||||
|
shift 2
|
||||||
|
;;
|
||||||
--help|-h)
|
--help|-h)
|
||||||
echo "Usage: $0 [--tools \"tool1,tool2,...\"|\"all\"] [--domain DOMAIN] [--skip-ssl] [--root-ssl]"
|
echo "Usage: $0 [--tools \"tool1,tool2,...\"|\"all\"] [--domain DOMAIN] [--skip-ssl] [--root-ssl]"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
@ -64,8 +69,9 @@ while [[ $# -gt 0 ]]; do
|
||||||
echo " --domain Domain name for SSL email (administrator@domain)"
|
echo " --domain Domain name for SSL email (administrator@domain)"
|
||||||
echo " --skip-ssl Skip SSL certificate setup"
|
echo " --skip-ssl Skip SSL certificate setup"
|
||||||
echo " --root-ssl Include root domain in SSL certificate"
|
echo " --root-ssl Include root domain in SSL certificate"
|
||||||
echo " --docker-user Docker Hub username (optional, to bypass rate limits)"
|
echo " --docker-user Docker registry username (optional)"
|
||||||
echo " --docker-token Docker Hub Personal Access Token (optional)"
|
echo " --docker-token Docker registry password/token (optional)"
|
||||||
|
echo " --docker-registry Docker registry URL (optional, defaults to Docker Hub)"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Examples:"
|
echo "Examples:"
|
||||||
echo " $0 --tools \"all\" --domain \"example.com\""
|
echo " $0 --tools \"all\" --domain \"example.com\""
|
||||||
|
|
@ -112,10 +118,15 @@ sudo systemctl enable docker
|
||||||
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m)" -o /usr/local/bin/docker-compose
|
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-linux-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||||
sudo chmod 755 /usr/local/bin/docker-compose
|
sudo chmod 755 /usr/local/bin/docker-compose
|
||||||
|
|
||||||
# Docker Hub login (optional - to bypass rate limits)
|
# Docker registry login (optional - for private registries or to bypass rate limits)
|
||||||
if [[ -n "$DOCKER_USER" && -n "$DOCKER_TOKEN" ]]; then
|
if [[ -n "$DOCKER_USER" && -n "$DOCKER_TOKEN" ]]; then
|
||||||
|
if [[ -n "$DOCKER_REGISTRY" ]]; then
|
||||||
|
echo "Logging into Docker registry: $DOCKER_REGISTRY..."
|
||||||
|
echo "$DOCKER_TOKEN" | docker login -u "$DOCKER_USER" --password-stdin "$DOCKER_REGISTRY"
|
||||||
|
else
|
||||||
echo "Logging into Docker Hub..."
|
echo "Logging into Docker Hub..."
|
||||||
echo "$DOCKER_TOKEN" | docker login -u "$DOCKER_USER" --password-stdin
|
echo "$DOCKER_TOKEN" | docker login -u "$DOCKER_USER" --password-stdin
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
|
|
|
||||||
|
|
@ -57,9 +57,10 @@ CUSTOMER=""
|
||||||
DOMAIN=""
|
DOMAIN=""
|
||||||
COMPANY_NAME=""
|
COMPANY_NAME=""
|
||||||
|
|
||||||
# Docker Hub authentication (optional)
|
# Docker registry authentication (optional)
|
||||||
DOCKER_USER=""
|
DOCKER_USER=""
|
||||||
DOCKER_TOKEN=""
|
DOCKER_TOKEN=""
|
||||||
|
DOCKER_REGISTRY=""
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
# HELPER FUNCTIONS
|
# HELPER FUNCTIONS
|
||||||
|
|
@ -128,13 +129,16 @@ parse_json() {
|
||||||
SERVER_PASSWORD=$(echo "$json" | jq -r '.password // empty')
|
SERVER_PASSWORD=$(echo "$json" | jq -r '.password // empty')
|
||||||
SSH_KEY=$(echo "$json" | jq -r '.key // empty')
|
SSH_KEY=$(echo "$json" | jq -r '.key // empty')
|
||||||
ACTION=$(echo "$json" | jq -r '.action // empty')
|
ACTION=$(echo "$json" | jq -r '.action // empty')
|
||||||
TOOLS=$(echo "$json" | jq -r '.tools // empty')
|
# Handle tools as either array or string
|
||||||
|
TOOLS=$(echo "$json" | jq -r 'if .tools | type == "array" then .tools | join(",") elif .tools then .tools else empty end')
|
||||||
SKIP_SSL=$(echo "$json" | jq -r 'if .skip_ssl == true then "true" else "" end')
|
SKIP_SSL=$(echo "$json" | jq -r 'if .skip_ssl == true then "true" else "" end')
|
||||||
|
ROOT_SSL=$(echo "$json" | jq -r 'if .root_ssl == true then "true" else "" end')
|
||||||
CUSTOMER=$(echo "$json" | jq -r '.customer // empty')
|
CUSTOMER=$(echo "$json" | jq -r '.customer // empty')
|
||||||
DOMAIN=$(echo "$json" | jq -r '.domain // empty')
|
DOMAIN=$(echo "$json" | jq -r '.domain // empty')
|
||||||
COMPANY_NAME=$(echo "$json" | jq -r '.company_name // empty')
|
COMPANY_NAME=$(echo "$json" | jq -r '.company_name // empty')
|
||||||
DOCKER_USER=$(echo "$json" | jq -r '.docker_user // empty')
|
DOCKER_USER=$(echo "$json" | jq -r '.docker_user // empty')
|
||||||
DOCKER_TOKEN=$(echo "$json" | jq -r '.docker_token // empty')
|
DOCKER_TOKEN=$(echo "$json" | jq -r '.docker_token // empty')
|
||||||
|
DOCKER_REGISTRY=$(echo "$json" | jq -r '.docker_registry // empty')
|
||||||
|
|
||||||
# Registration token (can also be set via environment variable)
|
# Registration token (can also be set via environment variable)
|
||||||
local json_token=$(echo "$json" | jq -r '.registration_token // empty')
|
local json_token=$(echo "$json" | jq -r '.registration_token // empty')
|
||||||
|
|
@ -376,6 +380,7 @@ if [[ "$ACTION" == "setup" ]]; then
|
||||||
[[ "$ROOT_SSL" == "true" ]] && SETUP_ARGS="$SETUP_ARGS --root-ssl"
|
[[ "$ROOT_SSL" == "true" ]] && SETUP_ARGS="$SETUP_ARGS --root-ssl"
|
||||||
[[ -n "$DOCKER_USER" ]] && SETUP_ARGS="$SETUP_ARGS --docker-user $(printf '%q' "$DOCKER_USER")"
|
[[ -n "$DOCKER_USER" ]] && SETUP_ARGS="$SETUP_ARGS --docker-user $(printf '%q' "$DOCKER_USER")"
|
||||||
[[ -n "$DOCKER_TOKEN" ]] && SETUP_ARGS="$SETUP_ARGS --docker-token $(printf '%q' "$DOCKER_TOKEN")"
|
[[ -n "$DOCKER_TOKEN" ]] && SETUP_ARGS="$SETUP_ARGS --docker-token $(printf '%q' "$DOCKER_TOKEN")"
|
||||||
|
[[ -n "$DOCKER_REGISTRY" ]] && SETUP_ARGS="$SETUP_ARGS --docker-registry $(printf '%q' "$DOCKER_REGISTRY")"
|
||||||
|
|
||||||
# Run setup.sh directly in foreground (connection stays alive with PermitRootLogin yes)
|
# Run setup.sh directly in foreground (connection stays alive with PermitRootLogin yes)
|
||||||
echo "Running setup.sh (this may take 10-15 minutes)..."
|
echo "Running setup.sh (this may take 10-15 minutes)..."
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue