From a0d2c5743c45b558bd914ea2e8539614f8c8c408 Mon Sep 17 00:00:00 2001 From: Muhammad Ibtisam <174851199+ibtisam-iq@users.noreply.github.com> Date: Thu, 9 Jul 2026 06:10:05 +0500 Subject: [PATCH 1/3] feat(dev-machine): add lychee v0.24.2 link checker - Add LYCHEE_VERSION=v0.24.2 to pinned versions block - Add PHASE 34 installer (GitHub release, amd64 binary) - Renumber final cleanup to PHASE 35 - Update welcome banner: add lychee under NETWORKING section - Update README.md: add lychee row to What's Inside table and bump phase count --- iximiuz/rootfs/dev/machine/README.md | 3 ++- .../dev/machine/scripts/install-tools.sh | 18 ++++++++++++++++-- iximiuz/rootfs/dev/machine/welcome | 2 +- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/iximiuz/rootfs/dev/machine/README.md b/iximiuz/rootfs/dev/machine/README.md index e406cb2..f1571a5 100644 --- a/iximiuz/rootfs/dev/machine/README.md +++ b/iximiuz/rootfs/dev/machine/README.md @@ -38,6 +38,7 @@ A child image built on top of [`ubuntu-24-04-rootfs`](../../ubuntu/README.md). U | helmfile | v1.5.2 | GitHub release | | helm-diff | Latest (via `helm plugin install`) | Helm plugin | | skaffold | Latest stable | Official GCS binary | +| lychee | v0.24.2 | GitHub release | | Skopeo | Latest | `apt` | | dive | v0.13.1 | GitHub release | | hadolint | v2.12.0 | GitHub release | @@ -66,7 +67,7 @@ dev/machine/ ├── welcome # Welcome banner (copied to $HOME/.welcome) └── scripts/ ├── install-docker.sh # Docker CE - official Docker apt repo - ├── install-tools.sh # Full DevOps toolchain - 34 phases + ├── install-tools.sh # Full DevOps toolchain - 35 phases ├── install-cloudflared.sh # Cloudflare Tunnel CLI ├── setup-completions.sh # System-wide bash + zsh completions └── customize-bashrc.sh # Aliases and helpers → ~/.bashrc diff --git a/iximiuz/rootfs/dev/machine/scripts/install-tools.sh b/iximiuz/rootfs/dev/machine/scripts/install-tools.sh index e1fc33d..5dcef64 100644 --- a/iximiuz/rootfs/dev/machine/scripts/install-tools.sh +++ b/iximiuz/rootfs/dev/machine/scripts/install-tools.sh @@ -39,6 +39,7 @@ SYFT_VERSION="v1.26.1" EKSCTL_VERSION="v0.226.0" ACT_VERSION="v0.2.89" HELMFILE_VERSION="v1.5.2" +LYCHEE_VERSION="v0.24.2" # ============================================================================= # PHASE 1: Base system packages @@ -508,9 +509,22 @@ rm /tmp/skaffold skaffold version # ============================================================================= -# PHASE 34: Final cleanup +# PHASE 34: lychee — fast link checker +# https://github.com/lycheeverse/lychee/releases/tag/lychee-v0.24.2 # ============================================================================= -log_phase "PHASE 34: Final cleanup" +log_phase "PHASE 34: lychee ${LYCHEE_VERSION}" + +curl -fsSL "https://github.com/lycheeverse/lychee/releases/download/lychee-${LYCHEE_VERSION}/lychee-${LYCHEE_VERSION}-x86_64-unknown-linux-gnu.tar.gz" \ + -o /tmp/lychee.tar.gz +tar -xzf /tmp/lychee.tar.gz -C /usr/local/bin lychee +chmod +x /usr/local/bin/lychee +rm /tmp/lychee.tar.gz +lychee --version + +# ============================================================================= +# PHASE 35: Final cleanup +# ============================================================================= +log_phase "PHASE 35: Final cleanup" apt-get autoremove -y apt-get clean diff --git a/iximiuz/rootfs/dev/machine/welcome b/iximiuz/rootfs/dev/machine/welcome index bc00c58..c391db0 100644 --- a/iximiuz/rootfs/dev/machine/welcome +++ b/iximiuz/rootfs/dev/machine/welcome @@ -14,7 +14,7 @@ act helmfile skaffold SECURITY trivy gitleaks cosign syft DATA & SEARCH jq yq fzf rg - NETWORKING nmap openssl ssh socat cloudflared + NETWORKING nmap openssl ssh socat cloudflared lychee DB CLIENTS mysql psql sqlite3 redis-cli mongosh Pre-defined shortcuts: From ddbb2d22304eba404dcbf0a1a682a3f4941bc4da Mon Sep 17 00:00:00 2001 From: Muhammad Ibtisam <174851199+ibtisam-iq@users.noreply.github.com> Date: Thu, 9 Jul 2026 06:23:01 +0500 Subject: [PATCH 2/3] fix(dev-machine): correct lychee asset filename in PHASE 34 The release tag is lychee-v0.24.2 but the tarball asset name does NOT repeat the version string. Correct URL: lychee-x86_64-unknown-linux-gnu.tar.gz not: lychee-v0.24.2-x86_64-unknown-linux-gnu.tar.gz Fixes 404 curl error in CI build. --- iximiuz/rootfs/dev/machine/scripts/install-tools.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iximiuz/rootfs/dev/machine/scripts/install-tools.sh b/iximiuz/rootfs/dev/machine/scripts/install-tools.sh index 5dcef64..aea05da 100644 --- a/iximiuz/rootfs/dev/machine/scripts/install-tools.sh +++ b/iximiuz/rootfs/dev/machine/scripts/install-tools.sh @@ -514,7 +514,7 @@ skaffold version # ============================================================================= log_phase "PHASE 34: lychee ${LYCHEE_VERSION}" -curl -fsSL "https://github.com/lycheeverse/lychee/releases/download/lychee-${LYCHEE_VERSION}/lychee-${LYCHEE_VERSION}-x86_64-unknown-linux-gnu.tar.gz" \ +curl -fsSL "https://github.com/lycheeverse/lychee/releases/download/lychee-${LYCHEE_VERSION}/lychee-x86_64-unknown-linux-gnu.tar.gz" \ -o /tmp/lychee.tar.gz tar -xzf /tmp/lychee.tar.gz -C /usr/local/bin lychee chmod +x /usr/local/bin/lychee From fe78b05de7497d2fd33cae67dd9314c505a86cc4 Mon Sep 17 00:00:00 2001 From: Muhammad Ibtisam <174851199+ibtisam-iq@users.noreply.github.com> Date: Thu, 9 Jul 2026 06:34:04 +0500 Subject: [PATCH 3/3] fix(dev-machine): extract lychee binary safely via temp dir The lychee tarball does not contain a file named exactly 'lychee' at the archive root, causing 'tar: lychee: Not found in archive'. Fix: extract all contents to a temp dir, then find and move the binary to /usr/local/bin/lychee regardless of its in-archive name. --- iximiuz/rootfs/dev/machine/scripts/install-tools.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/iximiuz/rootfs/dev/machine/scripts/install-tools.sh b/iximiuz/rootfs/dev/machine/scripts/install-tools.sh index aea05da..9f6037a 100644 --- a/iximiuz/rootfs/dev/machine/scripts/install-tools.sh +++ b/iximiuz/rootfs/dev/machine/scripts/install-tools.sh @@ -516,9 +516,10 @@ log_phase "PHASE 34: lychee ${LYCHEE_VERSION}" curl -fsSL "https://github.com/lycheeverse/lychee/releases/download/lychee-${LYCHEE_VERSION}/lychee-x86_64-unknown-linux-gnu.tar.gz" \ -o /tmp/lychee.tar.gz -tar -xzf /tmp/lychee.tar.gz -C /usr/local/bin lychee -chmod +x /usr/local/bin/lychee -rm /tmp/lychee.tar.gz +mkdir -p /tmp/lychee-extract +tar -xzf /tmp/lychee.tar.gz -C /tmp/lychee-extract +find /tmp/lychee-extract -maxdepth 2 -type f -name 'lychee*' | head -1 | xargs -I{} install -m 0755 {} /usr/local/bin/lychee +rm -rf /tmp/lychee.tar.gz /tmp/lychee-extract lychee --version # =============================================================================