From 62ce4ce692f550553a15ab41e34a6d9b38e8af65 Mon Sep 17 00:00:00 2001 From: Matt Date: Fri, 5 Dec 2025 16:48:43 +0100 Subject: [PATCH] Add Docker Hub authentication and fix calcom/baserow issues MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add --docker-user and --docker-token flags to start.sh and setup.sh - Docker login runs after Docker installation to bypass rate limits - Store Docker Hub username (not token) in credentials.env for reference - Fix calcom: use v5.9.8 image tag, remove obsolete version attribute - Remove baserow stack and nginx config (had template substitution issues) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- script/env_setup.sh | 15 ++++++ script/nginx/baserow.conf | 53 -------------------- script/setup.sh | 28 +++++++++-- script/stacks/baserow/docker-compose.yml | 61 ------------------------ script/stacks/calcom/docker-compose.yml | 4 +- script/start.sh | 29 ++++++++++- 6 files changed, 67 insertions(+), 123 deletions(-) delete mode 100644 script/nginx/baserow.conf delete mode 100644 script/stacks/baserow/docker-compose.yml 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)..."