diff --git a/bin/compile b/bin/compile index 2e98dcb..4bec9d1 100755 --- a/bin/compile +++ b/bin/compile @@ -22,7 +22,7 @@ CACHE_DIR=$2 ENV_DIR=$3 BUILDPACK_DIR="$(dirname "$(dirname "$0")")" -TAILSCALE_VERSION=1.74.0 +TAILSCALE_VERSION=1.82.5 TAILSCALE_BUILD_ARCH=amd64 TAILSCALE_SOURCE_URL="https://pkgs.tailscale.com/stable/tailscale_${TAILSCALE_VERSION}_${TAILSCALE_BUILD_ARCH}.tgz" TAILSCALE_INSTALL_DIR="$BUILD_DIR/vendor/tailscale" @@ -81,4 +81,4 @@ if [ -f "$BUILD_DIR/bin/rails" ]; then mv $BUILD_DIR/bin/rake $BUILD_DIR/bin/rake_original cp "$BUILDPACK_DIR/bin/rails/rake" $BUILD_DIR/bin/ chmod +x $BUILD_DIR/bin/rake -fi \ No newline at end of file +fi diff --git a/bin/heroku-tailscale-start.sh b/bin/heroku-tailscale-start.sh index ced4bfc..0adc7b3 100755 --- a/bin/heroku-tailscale-start.sh +++ b/bin/heroku-tailscale-start.sh @@ -8,20 +8,25 @@ if [ -z "$TAILSCALE_AUTH_KEY" ]; then fi wait_for_tailscale_running() { - timeout=5 # Timeout in seconds - interval=0.5 # Interval between checks - elapsed=0 - - while [ "$elapsed" -lt "$timeout" ]; do - state=$(tailscale status -json | jq -r .BackendState) - if [ "$state" = "Running" ]; then - return 0 - fi - sleep "$interval" - elapsed=$(echo "$elapsed + $interval" | bc) - done - - return 1 + timeout=${TAILSCALE_RUNNING_TIMEOUT:-5} # Timeout in seconds + interval=0.5 # Interval between checks + + # convert to milliseconds so we can use integer math + timeout_ms=$(awk "BEGIN {print $timeout * 1000}") + interval_ms=$(awk "BEGIN {print $interval * 1000}") + + elapsed=0 + + while [ "$elapsed" -lt "$timeout_ms" ]; do + state=$(tailscale status -json | jq -r .BackendState) + if [ "$state" = "Running" ]; then + return 0 + fi + sleep "$interval" + elapsed=$((elapsed + interval_ms)) + done + + return 1 } if [ -z "$TAILSCALE_HOSTNAME" ]; then @@ -39,14 +44,12 @@ else TAILSCALE_HOSTNAME="$TAILSCALE_HOSTNAME" fi tailscaled -cleanup > /dev/null 2>&1 -(tailscaled -verbose ${TAILSCALED_VERBOSE:--1} --tun=userspace-networking --socks5-server=localhost:1055 > /dev/null 2>&1 &) +(tailscaled -verbose ${TAILSCALED_VERBOSE:--1} --tun=userspace-networking --socks5-server=localhost:1055 > /dev/null 2>&1 &) tailscale up \ - --authkey="${TAILSCALE_AUTH_KEY}?preauthorized=true&ephemeral=true" \ + --authkey="${TAILSCALE_AUTH_KEY}" \ --hostname="$TAILSCALE_HOSTNAME" \ --advertise-tags=${TAILSCALE_ADVERTISE_TAGS:-} \ - --accept-routes \ - --timeout=15s \ - ${TAILSCALE_ADDITIONAL_ARGS:---timeout=15s} + ${TAILSCALE_ADDITIONAL_ARGS:---accept-routes --timeout=15s} export ALL_PROXY=socks5://localhost:1055/