All Projects → easingthemes → Ssh Deploy

easingthemes / Ssh Deploy

Licence: mit
GitHub Action for deploying code via rsync over ssh

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Ssh Deploy

kuzgun
simple, ssh based deployment tool
Stars: ✭ 16 (-94.12%)
Mutual labels:  ssh, deployment, continuous-deployment
Devtron
Software Delivery Workflow For Kubernetes
Stars: ✭ 130 (-52.21%)
Mutual labels:  deployment, continuous-deployment
Snowflake
Graphical SFTP client and terminal emulator with helpful utilities
Stars: ✭ 1,676 (+516.18%)
Mutual labels:  deployment, ssh
Capistrano
Remote multi-server automation tool
Stars: ✭ 12,035 (+4324.63%)
Mutual labels:  deployment, ssh
Rsync
In the process of being transitioned to a node.js action.
Stars: ✭ 53 (-80.51%)
Mutual labels:  deployment, ssh
Hapistrano
Deploy tool for Haskell applications, like Capistrano for Rails
Stars: ✭ 91 (-66.54%)
Mutual labels:  deployment, continuous-deployment
Build
Netlify Build runs the build command, Build Plugins and bundles Netlify Functions.
Stars: ✭ 135 (-50.37%)
Mutual labels:  deployment, continuous-deployment
Kubectl Plugins
A Collection of Plugins for kubectl Integration (exec as any user, context switching, etc).
Stars: ✭ 340 (+25%)
Mutual labels:  deployment, ssh
ci-docker-image
A Docker Image meant for use with CI/CD pipelines
Stars: ✭ 23 (-91.54%)
Mutual labels:  deployment, continuous-deployment
build-plugin-template
Template repository to create new Netlify Build plugins.
Stars: ✭ 26 (-90.44%)
Mutual labels:  deployment, continuous-deployment
workflow-webhook
A Github workflow action to call a webhook with payload data from the event. Support for JSON or URL encoded endpoints.
Stars: ✭ 90 (-66.91%)
Mutual labels:  deployment, continuous-deployment
Accompli
An easy to use and extendable deployment tool for (PHP) projects.
Stars: ✭ 9 (-96.69%)
Mutual labels:  deployment, ssh
Lightning Sites
☁️ Lightning deployment for your ~/Sites folders
Stars: ✭ 8 (-97.06%)
Mutual labels:  deployment, continuous-deployment
Slimjim
SlimJim is a simple auto update script utilizing Slim (a PHP micro-framework), incron (inotify cron system), and GitHub/BitBucket post-receive-hook
Stars: ✭ 98 (-63.97%)
Mutual labels:  deployment, continuous-deployment
Flubucore
A cross platform build and deployment automation system for building projects and executing deployment scripts using C# code.
Stars: ✭ 695 (+155.51%)
Mutual labels:  deployment, continuous-deployment
Inertia
✈️ Effortless, self-hosted continuous deployment for small teams and projects
Stars: ✭ 133 (-51.1%)
Mutual labels:  deployment, continuous-deployment
Sshdeploy
A command-line tool that enables quick build and run deployments over SSH.
Stars: ✭ 131 (-51.84%)
Mutual labels:  ssh, continuous-deployment
Deployr
A simple golang application to automate the deployment of software releases.
Stars: ✭ 282 (+3.68%)
Mutual labels:  deployment, ssh
Rocket
Automated software delivery as fast and easy as possible 🚀
Stars: ✭ 217 (-20.22%)
Mutual labels:  deployment, continuous-deployment
portainer-stack-utils
CLI client for Portainer
Stars: ✭ 66 (-75.74%)
Mutual labels:  deployment, continuous-deployment

ssh deployments

Deploy code with rsync over ssh, using NodeJS.

NodeJS version is more than a minute faster than simple Docker version.

This GitHub Action deploys specific directory from GITHUB_WORKSPACE to a folder on a server via rsync over ssh, using NodeJS.

This action would usually follow a build/test action which leaves deployable code in GITHUB_WORKSPACE, eg dist;

Configuration

Pass configuration with env vars

1. SSH_PRIVATE_KEY [required]

Private key part of an SSH key pair. The public key part should be added to the authorized_keys file on the server that receives the deployment.

More info for SSH keys: https://www.ssh.com/ssh/public-key-authentication

The keys should be generated using the PEM format. You can use this command

ssh-keygen -m PEM -t rsa -b 4096
2. REMOTE_HOST [required]

eg: mydomain.com

3. REMOTE_USER [required]

eg: myusername

4. REMOTE_PORT (optional, default '22')

eg: '59184'

5. ARGS (optional, default '-rltgoDzvO')

For any initial/required rsync flags, eg: -avzr --delete

6. SOURCE (optional, default '')

The source directory, path relative to $GITHUB_WORKSPACE root, eg: dist/

7. TARGET (optional, default '/home/REMOTE_USER/')

The target directory

8. EXCLUDE (optional, default '')

path to exclude separated by ,, ie: /dist/, /node_modules/

Usage

!!! Please use latest version, Readme file is just an example, eg: [email protected]

  - name: Deploy to Staging server
    uses: easingthemes/[email protected]
    env:
      SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }}
      ARGS: "-rltgoDzvO"
      SOURCE: "dist/"
      REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
      REMOTE_USER: ${{ secrets.REMOTE_USER }}
      TARGET: ${{ secrets.REMOTE_TARGET }}
      EXCLUDE: "/dist/, /node_modules/"

Example usage in workflow

name: Node CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/[email protected]
    - name: Install Node.js
      uses: actions/[email protected]
      with:
        node-version: '10.x'
    - name: Install npm dependencies
      run: npm install
    - name: Run build task
      run: npm run build --if-present
    - name: Deploy to Server
      uses: easingthemes/[email protected]
      env:
          SSH_PRIVATE_KEY: ${{ secrets.SERVER_SSH_KEY }}
          ARGS: "-rltgoDzvO --delete"
          SOURCE: "dist/"
          REMOTE_HOST: ${{ secrets.REMOTE_HOST }}
          REMOTE_USER: ${{ secrets.REMOTE_USER }}
          TARGET: ${{ secrets.REMOTE_TARGET }}
          EXCLUDE: "/dist/, /node_modules/"

Disclaimer

Check your keys. Check your deployment paths. And use at your own risk.

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].