diff --git a/script/env_setup.sh b/script/env_setup.sh index e85244d..41a7983 100644 --- a/script/env_setup.sh +++ b/script/env_setup.sh @@ -96,6 +96,7 @@ parse_json() { customer="" domain="" company_name="" +docker_user="" while [[ $# -gt 0 ]]; do case $1 in @@ -111,6 +112,10 @@ while [[ $# -gt 0 ]]; do company_name="$2" shift 2 ;; + --docker-user) + docker_user="$2" + shift 2 + ;; --json) parse_json "$2" shift 2 @@ -494,6 +499,16 @@ KEYCLOAK_ADMIN_PASSWORD=${keycloak_admin_password} SYSADMIN_AGENT_TOKEN=${sysadmin_agent_token} EOF +# Add Docker Hub section if docker_user was provided +if [[ -n "${docker_user}" ]]; then +cat >> "${ENV_DIR}/credentials.env" </dev/null || \ eval "$SCP_CMD setup.sh ${SSH_USER}@${SERVER_IP}:/tmp/" + echo " Converting line endings to Unix format..." + eval "$SSH_CMD 'sed -i \"s/\r\$//\" ${REMOTE_BASE}/scripts/env_setup.sh ${REMOTE_BASE}/scripts/setup.sh 2>/dev/null || true'" + echo "[2/6] Uploading backups script..." if ! eval "$SSH_CMD '[ -f ${REMOTE_BASE}/scripts/backups.sh ]'" 2>/dev/null; then eval "$SCP_CMD backups.sh ${SSH_USER}@${SERVER_IP}:${REMOTE_BASE}/scripts/" 2>/dev/null || \ eval "$SCP_CMD backups.sh ${SSH_USER}@${SERVER_IP}:/tmp/" + + echo " Converting line endings to Unix format..." + eval "$SSH_CMD 'sed -i \"s/\r\$//\" ${REMOTE_BASE}/scripts/backups.sh 2>/dev/null || true'" else echo " backups.sh already exists, skipping." fi @@ -315,6 +337,7 @@ if [[ "$ACTION" == "setup" ]]; then [[ -n "$CUSTOMER" ]] && ENV_ARGS="$ENV_ARGS --customer $(printf '%q' "$CUSTOMER")" [[ -n "$DOMAIN" ]] && ENV_ARGS="$ENV_ARGS --domain $(printf '%q' "$DOMAIN")" [[ -n "$COMPANY_NAME" ]] && ENV_ARGS="$ENV_ARGS --company $(printf '%q' "$COMPANY_NAME")" + [[ -n "$DOCKER_USER" ]] && ENV_ARGS="$ENV_ARGS --docker-user $(printf '%q' "$DOCKER_USER")" if [[ -n "$ENV_ARGS" ]]; then eval "$SSH_CMD \"bash ${REMOTE_BASE}/scripts/env_setup.sh $ENV_ARGS && touch ${REMOTE_BASE}/.env_installed\"" || \ @@ -338,10 +361,12 @@ if [[ "$ACTION" == "setup" ]]; then if ! eval "$SSH_CMD '[ -f ${REMOTE_BASE}/.setup_installed ]'" 2>/dev/null; then # Build setup.sh arguments SETUP_ARGS="" - [[ -n "$TOOLS" ]] && SETUP_ARGS="$SETUP_ARGS --tools '$TOOLS'" - [[ -n "$DOMAIN" ]] && SETUP_ARGS="$SETUP_ARGS --domain '$DOMAIN'" + [[ -n "$TOOLS" ]] && SETUP_ARGS="$SETUP_ARGS --tools $(printf '%q' "$TOOLS")" + [[ -n "$DOMAIN" ]] && SETUP_ARGS="$SETUP_ARGS --domain $(printf '%q' "$DOMAIN")" [[ "$SKIP_SSL" == "true" ]] && SETUP_ARGS="$SETUP_ARGS --skip-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_TOKEN" ]] && SETUP_ARGS="$SETUP_ARGS --docker-token $(printf '%q' "$DOCKER_TOKEN")" # Run setup.sh directly in foreground (connection stays alive with PermitRootLogin yes) echo "Running setup.sh (this may take 10-15 minutes)..."