tecbeckp/Unique SSH Deployer

Fast SSH/SFTP file deployment with smart sync for changed files and post-deploy support.

View on GitHub

Trust Signals

Scorecard Score
not yet scored
Maintenance Recency
Stale
License
None
namedescriptionrequireddefault
hostSSH server hostname or IP addressyes
portSSH portno22
usernameSSH usernameyes
private-keySSH private key (full content, not path). Use GitHub Secrets!yes
passphrasePassphrase for the SSH private key (if encrypted)no""
local-dirLocal folder to deploy. Must end with trailing slash.no./
server-dirRemote folder to deploy to. Must end with trailing slash.no./
state-nameName of the sync state file stored on the server to track deployments.no.ssh-deploy-sync-state.json
dry-runPreview changes without actually deploying (true/false)nofalse
dangerous-clean-slateDelete ALL existing files on the server before deploying (true/false)nofalse
excludeGlob patterns to exclude from deployment (one per line, or comma-separated). .git and node_modules are always excluded.no**/.git* **/.git*/** **/node_modules/**
log-levelLogging verbosity: minimal, standard, or verbosenostandard
timeoutConnection/operation timeout in millisecondsno30000
compressionEnable SSH compression (useful for slower networks)nofalse
upload-concurrencyNumber of concurrent file uploads (higher = faster but more resource usage)no5
pre-commandsCommands to run on server BEFORE file sync (one per line). Use for maintenance mode, backups, etc.no""
commandsCommands to run on the server AFTER file sync (one per line). Lines starting with # are ignored.no""
commands-working-dirWorking directory for remote commands. Defaults to server-dir.no""
rollback-on-failureRollback deployment if health check fails (true/false). Requires health-check-url and health-check-fail-deploy.nofalse
rollback-limitMaximum rollback states to keep on serverno3
health-check-urlURL to check after deployment (e.g., https://example.com/health). Leave empty to skip.no""
health-check-statusExpected HTTP status code for health checkno200
health-check-retriesNumber of health check retry attemptsno3
health-check-retry-delayDelay between health check retries in millisecondsno5000
health-check-fail-deployFail the entire deployment if health check fails (true/false)nofalse
webhook-urlWebhook URL for deployment notifications (Slack, Discord, or custom). Leave empty to skip.no""
webhook-typeWebhook provider: slack, discord, or customnoslack
environmentEnvironment name (e.g., production, staging, development). Used in notifications and state tracking.noproduction
namedescription
files-uploadedNumber of new files uploaded
files-replacedNumber of modified files replaced
files-deletedNumber of deleted files removed from server
files-unchangedNumber of unchanged files
bytes-transferredTotal bytes transferred
duration-msTotal deployment duration in milliseconds
total-changesTotal number of files changed (uploaded + replaced + deleted)
rolled-backWhether the deployment was rolled back (true/false)
health-check-passedWhether the health check passed (true/false/N/A)
notification-sentWhether the notification was sent successfully (true/false)
environmentEnvironment name that was deployed to