All Projects → maxheld83 → Rsync

maxheld83 / Rsync

Licence: mit
In the process of being transitioned to a node.js action.

Programming Languages

shell
77523 projects
bash
514 projects

Projects that are alternatives of or similar to Rsync

kuzgun
simple, ssh based deployment tool
Stars: ✭ 16 (-69.81%)
Mutual labels:  ssh, deployment
Deployr
A simple golang application to automate the deployment of software releases.
Stars: ✭ 282 (+432.08%)
Mutual labels:  deployment, ssh
PyFiSync
Python (+ rsync or rclone) based intelligent file sync with automatic backups and file move/delete tracking.
Stars: ✭ 88 (+66.04%)
Mutual labels:  ssh, rsync
Elkarbackup
Open source backup solution for your network
Stars: ✭ 247 (+366.04%)
Mutual labels:  rsync, ssh
Butler
🎩 Command-line itch.io helper
Stars: ✭ 433 (+716.98%)
Mutual labels:  rsync, deployment
btrfs-backup
A simple, flexible script for versioned backups using btrfs and rsync
Stars: ✭ 59 (+11.32%)
Mutual labels:  rsync, bash-script
Ssh Deploy
GitHub Action for deploying code via rsync over ssh
Stars: ✭ 272 (+413.21%)
Mutual labels:  deployment, ssh
Rsync Deployments
GitHub Action for deploying code via rsync over ssh
Stars: ✭ 59 (+11.32%)
Mutual labels:  rsync, deployment
Kubectl Plugins
A Collection of Plugins for kubectl Integration (exec as any user, context switching, etc).
Stars: ✭ 340 (+541.51%)
Mutual labels:  deployment, ssh
Sync
syncs your local folder with remote folder using scp
Stars: ✭ 293 (+452.83%)
Mutual labels:  rsync, ssh
Rsync Incremental Backup
Configurable bash script to send incremental backups of your data to a local or remote target
Stars: ✭ 150 (+183.02%)
Mutual labels:  rsync, ssh
Sultan
Sultan: Command and Rule over your Shell
Stars: ✭ 625 (+1079.25%)
Mutual labels:  bash-script, ssh
Mainframer Intellij Plugin
An intellij idea plugin for mainframer project
Stars: ✭ 125 (+135.85%)
Mutual labels:  rsync, ssh
rbackup
Shell script for encrypted backups with rsync and GnuPG
Stars: ✭ 22 (-58.49%)
Mutual labels:  rsync, bash-script
Mainframer
Tool for remote builds. Sync project to remote machine, execute command, sync back.
Stars: ✭ 1,534 (+2794.34%)
Mutual labels:  rsync, ssh
Tomo
A friendly CLI for deploying Rails apps ✨
Stars: ✭ 260 (+390.57%)
Mutual labels:  deployment, ssh
Snowflake
Graphical SFTP client and terminal emulator with helpful utilities
Stars: ✭ 1,676 (+3062.26%)
Mutual labels:  deployment, ssh
Capistrano
Remote multi-server automation tool
Stars: ✭ 12,035 (+22607.55%)
Mutual labels:  deployment, ssh
Docker Sshd
Minimal Alpine Linux Docker image with sshd exposed and rsync installed
Stars: ✭ 291 (+449.06%)
Mutual labels:  rsync, ssh
Mina
Blazing fast application deployment tool.
Stars: ✭ 4,196 (+7816.98%)
Mutual labels:  ssh, deployment

GitHub Action for Deploying via rsync Over ssh

Actions Status GitHubActions View Action

Sometimes, you might want to use rsync inside GitHub actions, such as for deploying static assets to some old school webserver over ssh. This is your action.

It allows you to transfer files from your working directory (/github/workspace) to some server using rsync over ssh. Helpfully, /github/workspace includes a copy of your repository source, as well as any build artefacts left behind by previous workflow steps (= other actions you ran before).

Disclaimer

GitHub actions is still in limited public beta and advises against usage in production.

This action requires ssh private keys (see secrets), and may thus be vulnerable. The ssh authentification may need improvement (see issues).

Secrets

This action requires two secrets to authenticate over ssh:

  • SSH_PRIVATE_KEY
  • SSH_PUBLIC_KEY

You get both of these from the server you interact with.

Remember to never commit these keys, but provide them through the GitHub UI (repository settings/secrets).

Environment Variables

This action requires three environment variables used to register the target server in $HOME/.ssh/known_hosts. This is to make sure that the action is talking to a trusted server.

known_hosts verification currently fails and is overriden, see issue 1.

  • HOST_NAME (the name of the server you wish to deploy to, such as foo.example.com)
  • HOST_IP (the IP of the server you wish to deploy to, such as 111.111.11.111)
  • HOST_FINGERPRINT (the fingerprint of the server you wish to deploy to, can have different formats)

The HOST_NAME is also used in the below required arguments.

Required Arguments

rsync requires:

  • SRC: source directory, relative path from /github/workspace
  • [[email protected]]HOST::DEST: target user (optional), target server, and directory from root on that target server. Remember you can reuse the environment variable $HOST_NAME.

For action rsync options, see entrypoint.sh in the source. For more options and documentation on rsync, see https://rsync.samba.org.

Example Usage

action "Deploy with rsync" {
  uses = "maxheld83/[email protected]"
  needs = "Write sha"
  secrets = [
    "SSH_PRIVATE_KEY",
    "SSH_PUBLIC_KEY"
  ]
  env = {
    HOST_NAME = "foo.example.com"
    HOST_IP = "111.111.11.111"
    HOST_FINGERPRINT = "ecdsa-sha2-nistp256 AAAA..."
  }
  args = [
    "$GITHUB_WORKSPACE/index.html",
    "[email protected]$HOST_NAME:path/to/destination"
  ]
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].