jump-host-static-deploy

Deploy static frontend builds to Nginx VPSes through an SSH jump host.

Updated Mar 22, 2026
One-click install
npx skills add https://github.com/TECH-HY/SKILLS --skill jump-host-static-deploy-tech-hy
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: jump-host-static-deploy
Source: https://github.com/TECH-HY/SKILLS/tree/main/skills/jump-host-static-deploy
Command: npx skills add https://github.com/TECH-HY/SKILLS --skill jump-host-static-deploy-tech-hy

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Publishing a static site to a Linux VPS becomes error-prone when the server is only reachable through an SSH jump host or bastion, and manual file-by-file uploads risk broken or inconsistent releases. ## Core Features & Use Cases - Deterministic release workflow: Build locally, package the output into a single tar archive, upload with scp -J, and extract on the target host. - Jump host connectivity: Uses ssh -J and scp -J to reach target servers that are not directly exposed to the internet. - Verification built in: Confirms the deploy with server-local curl requests using the expected Host header, plus public URL checks. - Use Case: You have a Vite or React dashboard that must go live on an Nginx VPS reachable only through a bastion. This Skill walks the agent through building, archiving, uploading, extracting, and verifying the release with rollback-aware guardrails. ## Quick Start Use the jump-host-static-deploy skill to publish my Vite build to the Nginx server through the bastion host and verify it with the correct Host header.

Frequently Asked Questions about jump-host-static-deploy

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I deploy a static site through an SSH jump host?

Build the site locally, package the output directory into a tar archive, upload it with scp -J through the jump host, then connect with ssh -J to extract it into the Nginx web root. Verify with a server-local curl request using the expected Host header.

How to deploy a Vite or React build to an Nginx VPS?

Run the production build locally, archive the dist folder, transfer the single archive to the server, and extract it into the remote web root. Uploading one archive instead of loose files keeps the transfer predictable and fast.

Can I use this approach for Docker or server-rendered apps?

No. This workflow is designed only for static frontend builds served as files by Nginx. Container deployments, server-rendered applications, and platform-managed infrastructure need different deployment tooling.

Why does my deploy show old files or a wrong directory structure?

A common cause is extracting the archive at the wrong depth, producing a nested dist/dist path, or deleting the live root before validating the new archive. Check whether the archive contains a top-level folder before using --strip-components=1.

How do I verify an Nginx deploy when DNS or caching hides changes?

Run curl against 127.0.0.1 on the server with the expected Host header to bypass public routing and caching. Then check the public URL or direct IP response as a second confirmation.