Copy files and artifacts via SSH using a binary, docker or Drone CI.

Overview

drone-scp

GoDoc Build Status codecov Go Report Card Docker Pulls micro badger

Copy files and artifacts via SSH using a binary, docker or Drone CI.

Feature

  • Support routines.
  • Support wildcard pattern on source list.
  • Support send files to multiple host.
  • Support send files to multiple target folder on host.
  • Support load ssh key from absolute path or raw body.
  • Support SSH ProxyCommand.
+--------+       +----------+      +-----------+
| Laptop | <-->  | Jumphost | <--> | FooServer |
+--------+       +----------+      +-----------+

                   OR

+--------+       +----------+      +-----------+
| Laptop | <-->  | Firewall | <--> | FooServer |
+--------+       +----------+      +-----------+
192.168.1.5       121.1.2.3         10.10.29.68

Breaking changes

v1.5.0: change command timeout flag to Duration. See the following setting:

  - name: scp files
    image: appleboy/drone-scp
    settings:
      host:
        - example1.com
        - example2.com
      username: ubuntu
      password:
        from_secret: ssh_password
      port: 22
-     command_timeout: 120
+     command_timeout: 2m
      target: /home/deploy/web
      source:
        - release/*.tar.gz

Build or Download a binary

The pre-compiled binaries can be downloaded from release page. Support the following OS type.

  • Windows amd64/386
  • Linux arm/amd64/386
  • Darwin amd64/386

With Go installed

export GO111MODULE=on
go get -u -v github.com/appleboy/drone-scp

or build the binary with the following command:

export GOOS=linux
export GOARCH=amd64
export CGO_ENABLED=0
export GO111MODULE=on

go test -cover ./...

go build -v -a -tags netgo -o release/linux/amd64/drone-scp .

Docker

Build the docker image with the following commands:

make docker

Usage

There are three ways to send notification.

Usage from binary

Using public key

drone-scp --host example.com \
  --port 22 \
  --username appleboy \
  --key-path "${HOME}/.ssh/id_rsa" \
  --target /home/appleboy/test \
  --source your_local_folder_path

Using password

drone-scp --host example.com \
  --port 22 \
  --username appleboy \
+ --password xxxxxxx \
  --target /home/appleboy/test \
  --source your_local_folder_path

Using ssh-agent

Start your local ssh agent:

eval `ssh-agent -s`

Import your local public key ~/.ssh/id_rsa

ssh-add

You don't need to add --password or --key-path arguments.

drone-scp --host example.com \
  --port 22 \
  --username appleboy \
  --target /home/appleboy/test \
  --source your_local_folder_path

Send multiple source or target folder and hosts

drone-scp --host example1.com \
+ --host example2.com \
  --port 22 \
  --username appleboy \
  --password  xxxxxxx
  --target /home/appleboy/test1 \
+ --target /home/appleboy/test2 \
  --source your_local_folder_path_1
+ --source your_local_folder_path_2

Usage from docker

Using public key

docker run --rm \
  -e SCP_HOST=example.com \
  -e SCP_USERNAME=xxxxxxx \
  -e SCP_PORT=22 \
  -e SCP_KEY_PATH="${HOME}/.ssh/id_rsa"
  -e SCP_SOURCE=SOURCE_FILE_LIST \
  -e SCP_TARGET=TARGET_FOLDER_PATH \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-scp

Using password

docker run --rm \
  -e SCP_HOST=example.com \
  -e SCP_USERNAME=xxxxxxx \
  -e SCP_PORT=22 \
+ -e SCP_PASSWORD="xxxxxxx"
  -e SCP_SOURCE=SOURCE_FILE_LIST \
  -e SCP_TARGET=TARGET_FOLDER_PATH \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-scp

Using ssh-agent, start your local ssh agent:

eval `ssh-agent -s`

Import your local public key ~/.ssh/id_rsa

ssh-add

You don't need to add SCP_PASSWORD or SCP_KEY_PATH arguments.

docker run --rm \
  -e SCP_HOST=example.com \
  -e SCP_USERNAME=xxxxxxx \
  -e SCP_PORT=22 \
  -e SCP_SOURCE=SOURCE_FILE_LIST \
  -e SCP_TARGET=TARGET_FOLDER_PATH \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-scp

Send multiple source or target folder and hosts

docker run --rm \
  -e SCP_HOST=example1.com,example2.com \
  -e SCP_USERNAME=xxxxxxx \
  -e SCP_PASSWORD=xxxxxxx \
  -e SCP_PORT=22 \
  -e SCP_SOURCE=SOURCE_FILE_LIST_1,SOURCE_FILE_LIST_2 \
  -e SCP_TARGET=TARGET_FOLDER_PATH_1,TARGET_FOLDER_PATH_2 \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-scp

Usage from drone ci

Execute from the working directory:

docker run --rm \
  -e PLUGIN_HOST=example.com \
  -e PLUGIN_USERNAME=xxxxxxx \
  -e PLUGIN_PASSWORD=xxxxxxx \
  -e PLUGIN_PORT=xxxxxxx \
  -e PLUGIN_SOURCE=SOURCE_FILE_LIST \
  -e PLUGIN_TARGET=TARGET_FOLDER_PATH \
  -e PLUGIN_RM=false \
  -e PLUGIN_DEBUG=true \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-scp

You can get more information about how to use scp in drone.

Testing

Test the package with the following command:

make test
Issues
  • how to use with private ssh key?

    how to use with private ssh key?

    I'm trying this setup:

      deploy:
        image: appleboy/drone-scp
        host: example.com
        username: root
        port: 922
        key: $scp_key
        secrets:
          - source: DEPLOY_KEY
            target: scp_key
        source:
          - public
        target:
          - /srv/public
        when:
          branch: prod
          status: success
    

    but still habe some errors like: ERROR: Error response from daemon: invalid environment variable:.. etc...

    or drone-scp error: error copy file to dest: example.com, error message: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none], no supported methods remain

    EDIT: I paste my private key via drone web admin: DEPLOY_KEY + and paste output of cat /.ssh/mykey | tr -d '\n'

    EDIT2: I trying this too:

    deploy:
        image: appleboy/drone-scp
        host: example.com
        username: root
        port: 922
        key: >
          -----BEGIN RSA PRIVATE KEY-----
          MI...
          -----END RSA PRIVATE KEY-----
        source:
          - public
        target:
          - /srv/public
        when:
          branch: prod
          status: success
    

    but get: error copy file to dest: example.com, error message: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none], no supported methods remain

    opened by scippio 20
  • 'drone-scp error:  Process exited with status 1 0s exit code 1 notify 1'

    'drone-scp error: Process exited with status 1 0s exit code 1 notify 1'

    Hey,

    I'm trying to use this plugin but I get:

    2017/02/04 12:29:37 tar all files into /tmp/714504783/SKZYLBfixA.tar
    2017/02/04 12:29:37 myhost.com: scp file to server.
    2017/02/04 12:29:37 myhost.com: create folder /home/builds/artifacts
    Process exited with status 1
    drone-scp error:  Process exited with status 1
    

    I guess it fails to create the folder, any clue?

    Thanks

    opened by asaf 18
  • Weird error

    Weird error

    I am trying to download one file via SSH on my server using docker The command looks:

    - go get -u -v github.com/appleboy/drone-scp 
    - ../go/bin/drone-scp --host $IP --port 22 --username root --password $PASSWORD --target / --source ./docker-compose.yml
    

    It has been working well for quite a while but recently it shows an error:

    github.com/appleboy/drone-scp
    --
      | ../go/src/github.com/appleboy/drone-scp/main.go:25:14: cannot use []cli.Author literal (type []cli.Author) as type []*cli.Author in assignment
      | ../go/src/github.com/appleboy/drone-scp/main.go:34:22: cannot use cli.StringSliceFlag literal (type cli.StringSliceFlag) as type cli.Flag in array or slice literal:
      | cli.StringSliceFlag does not implement cli.Flag (Apply method has pointer receiver)
      | ../go/src/github.com/appleboy/drone-scp/main.go:37:10: unknown field 'EnvVar' in struct literal of type cli.StringSliceFlag
      | ../go/src/github.com/appleboy/drone-scp/main.go:39:17: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in array or slice literal:
      | cli.StringFlag does not implement cli.Flag (Apply method has pointer receiver)
      | ../go/src/github.com/appleboy/drone-scp/main.go:43:10: unknown field 'EnvVar' in struct literal of type cli.StringFlag
      | ../go/src/github.com/appleboy/drone-scp/main.go:45:17: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in array or slice literal:
      | cli.StringFlag does not implement cli.Flag (Apply method has pointer receiver)
      | ../go/src/github.com/appleboy/drone-scp/main.go:48:10: unknown field 'EnvVar' in struct literal of type cli.StringFlag
      | ../go/src/github.com/appleboy/drone-scp/main.go:50:17: cannot use cli.StringFlag literal (type cli.StringFlag) as type cli.Flag in array or slice literal:
      | cli.StringFlag does not implement cli.Flag (Apply method has pointer receiver)
      | ../go/src/github.com/appleboy/drone-scp/main.go:53:10: unknown field 'EnvVar' in struct literal of type cli.StringFlag
      | ../go/src/github.com/appleboy/drone-scp/main.go:58:10: unknown field 'EnvVar' in struct literal of type cli.DurationFlag
      | ../go/src/github.com/appleboy/drone-scp/main.go:58:10: too many errors
    

    It looks like something is broken on drone-scp side Any ideas?

    bug 
    opened by Denis-Evseev 12
  • do not include source path in target destination

    do not include source path in target destination

    I have the following configuration

        target: /usr/local/bin/
        source: release/some-binary
    

    It copies release/some-binary to /usr/local/bin/release/some-binary

    If I were using scp, I would expect that it copies release/some-binary to /usr/local/bin/some-binary and does include the source path in the target destination.

    feature 
    opened by bradrydzewski 6
  • Templates not evaluating

    Templates not evaluating

    According to DroneCI Docs on Drone-SCP its possible to use templates.

    Nevertheless, those aren't evaluated at all. For example your Plugin Drone-Telegram have those too, and they evaluate just perfectly.

    It'll be great to have them working for parameters like target, username or key.

    Example

    pipeline:
      build:
        image: node:alpine
        commands:
          - npm install
          - npm run build
    
      deploy_scp:
        image: appleboy/drone-scp
        host: deploy.host
        target: /var/www/deploy/{{repo.owner}}/{{repo.name}}
        source: ./public
        rm: true
        username: deploy
        password: deploy
    

    Will create a folder called (literally) /var/www/deploy/{{repo.owner}}/{{repo.name}}.

    opened by josegomezr 6
  • openssh 8.8 break compatibility by default

    openssh 8.8 break compatibility by default

    I recently updated my server, and with it upgraded openssh from 8.7 to 8.8. One of the incompatible changes from that release is disabling RSA signatures using SHA-1 by default 1. There is currently an open bug at https://github.com/golang/go/issues/37278 relating to this, and because drone-scp is making use of this library, it is also affected.

    The error message from drone-scp in such cases is the following:

    drone-scp error:  error copy file to dest: <destination censored>, error message: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
    

    I do not think that there is anything to be done from drone-scp, apart from updating to the latest version once it is fixed upstream. I opened the issue so that others impacted by this change can find it more easily.

    opened by ambroisie 5
  • Doesn't work env in settings block with drone version 1

    Doesn't work env in settings block with drone version 1

    Hi there, I tried to use this block in .drone.yml from official docs http://plugins.drone.io/appleboy/drone-scp/:

    ....
      deploy:
        image: appleboy/drone-scp:1.5-linux-amd64
        settings:
          host: `MY_SERVER`
          username: `MY_USER`
          password: test
          port: 22
          command_timeout: 2m
          target: `FILE`
          source: `FILE`
    ...
    

    I got an error "Error: missing server host "

    after changing the conf to :

    ....
      deploy:
        image: appleboy/drone-scp:1.5-linux-amd64
        host: `MY_SERVER`
        username: `MY_USER`
        password: test
        port: 22
        command_timeout: 2m
        target: `FILE`
        source: `FILE`
    ...
    

    everything started to work fine. it seems the block settings does not work

    opened by theshamuel 5
  • 1.0.0-rc.1 missing ssh config (Host, Username)

    1.0.0-rc.1 missing ssh config (Host, Username)

    when I use drone 1.0.0-rc.1, the yml config is

    - name: scp
      image: appleboy/drone-scp
      host: "xxx.xxx.xxx.xxx"
      port: 22
      target: /path/to
      source: test
      username: drone
      secrets: [ ssh_password ]
    

    then I got the error

    missing ssh config (Host, Username)
    
    question 
    opened by weisd 5
  •  wildcard pattern of source list copy errors using drone cron

    wildcard pattern of source list copy errors using drone cron

    one pipeline, same buids 1、 test server scp conf

    - name: test
      image: appleboy/drone-scp
      settings:
        host:
          from_secret: test-host
        username:
          from_secret: test-user
        key:
          from_secret: test-ssh
        port:
          from_secret: test-port
        command_timeout: 5m
        target: 
          - /data/www/sane/
        source:
          - ./dist/*
      when:
        status: [success]
        event:
        - push
        branch:
        - test
    

    2、preview server scp conf

    - name: qa
      image: appleboy/drone-scp
      settings:
        host:
          from_secret: preview-host
        username:
          from_secret: preview-user
        key:
          from_secret: preview-ssh
        port:
          from_secret: preview-port
        command_timeout: 5m
        target: 
          - /data/www/sane/
        source:
          - ./dist/*
      when:
        status: [success]
        event:
        - cron
    

    result

    test server image

    preview server image

    crone trigger wrong?

    opened by SaneHe 3
  • Error doesn't trigger build failure (Drone 1.0.0-rc6)

    Error doesn't trigger build failure (Drone 1.0.0-rc6)

    For example, providing an incorrect key doesn't trigger failure of the drone step: image

    We shouldn't be getting a green checkmark here. Does this replicate on another system?

    opened by zdk123 3
  • drone-scp not working with --key-path

    drone-scp not working with --key-path

    drone-scp --host 34.xxx.xxx.91 --port 22 --username ubuntu --key-path "${HOME}/.ssh/key.pem" --target /home/ubuntu --source deploy.tmpl --timeout 10s`
    2017/11/03 15:09:25 tar all files into /tmp/331781469/VBtvx7d9oB.tar
    2017/11/03 15:09:25 34.227.159.91: scp file to server.
    2017/11/03 15:09:27 34.227.159.91: create folder /home/ubuntu
    drone-scp error:  ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
    ssh: handshake failed: ssh: unable to authenticate, attempted methods [none publickey], no supported methods remain
    

    But when i do

    ssh-add "${HOME}/.ssh/key.pem"
    drone-scp --host 34.xxx.xxx.91 --port 22 --username ubuntu --target /home/ubuntu --source deploy.tmpl --timeout 10s
    2017/11/03 15:08:25 tar all files into /tmp/249787007/nFrDL398Mw.tar
    2017/11/03 15:08:25 34.227.159.91: scp file to server.
    2017/11/03 15:08:29 34.227.159.91: create folder /home/ubuntu
    2017/11/03 15:08:32 34.227.159.91: untar file nFrDL398Mw.tar
    2017/11/03 15:08:36 34.227.159.91: remove file nFrDL398Mw.tar
    

    It works

    opened by vishal24tuniki 3
  • folder created but

    folder created but "Process exited with status 1"

    When trying to perform pretty basic upload I'm receiving "Process exited with status 1" However folder c:\Application\CDTEST\APK\artifacts is created.

    Config is: deploy: runs-on: ubuntu-latest strategy: matrix: dotnet-version: ['6.0.x' ] project-id: ['CIGitHubTest'] rid: ['win-x64'] server-path: ['c:\Application\CDTEST\APK'] needs: build steps: - name: echoing run: | echo "HI" - uses: actions/[email protected] with: name: dotnet-results-${{ matrix.project-id }}-${{ matrix.dotnet-version }}-${{ matrix.rid }}-test - name: Display structure of downloaded files run: ls -R - name: ssh Upload uses: appleboy/[email protected] with: host: ${{ secrets.CI_SERVER_ADDRES }} username: ${{ secrets.CI_GIT_USER }} password: ${{ secrets.CI_GIT_PASS }} port: ${{ secrets.CI_GIT_PORT }} source: release.zip target: ${{ matrix.server-path }}\artifacts

    Action log is: /usr/bin/docker run --name f155468f200c7c9eb485a8744f4c1508862a0_e431e5 --label 6f1554 --workdir /github/workspace --rm -e INPUT_HOST -e INPUT_USERNAME -e INPUT_PASSWORD -e INPUT_PORT -e INPUT_SOURCE -e INPUT_TARGET -e INPUT_TIMEOUT -e INPUT_COMMAND_TIMEOUT -e INPUT_KEY -e INPUT_KEY_PATH -e INPUT_PASSPHRASE -e INPUT_FINGERPRINT -e INPUT_USE_INSECURE_CIPHER -e INPUT_RM -e INPUT_DEBUG -e INPUT_STRIP_COMPONENTS -e INPUT_OVERWRITE -e INPUT_TAR_TMP_PATH -e INPUT_PROXY_HOST -e INPUT_PROXY_PORT -e INPUT_PROXY_USERNAME -e INPUT_PROXY_PASSWORD -e INPUT_PROXY_PASSPHRASE -e INPUT_PROXY_TIMEOUT -e INPUT_PROXY_KEY -e INPUT_PROXY_KEY_PATH -e INPUT_PROXY_FINGERPRINT -e INPUT_PROXY_USE_INSECURE_CIPHER -e HOME -e GITHUB_JOB -e GITHUB_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_REPOSITORY_OWNER -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RETENTION_DAYS -e GITHUB_RUN_ATTEMPT -e GITHUB_ACTOR -e GITHUB_WORKFLOW -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GITHUB_EVENT_NAME -e GITHUB_SERVER_URL -e GITHUB_API_URL -e GITHUB_GRAPHQL_URL -e GITHUB_REF_NAME -e GITHUB_REF_PROTECTED -e GITHUB_REF_TYPE -e GITHUB_WORKSPACE -e GITHUB_ACTION -e GITHUB_EVENT_PATH -e GITHUB_ACTION_REPOSITORY -e GITHUB_ACTION_REF -e GITHUB_PATH -e GITHUB_ENV -e GITHUB_STEP_SUMMARY -e RUNNER_OS -e RUNNER_ARCH -e RUNNER_NAME -e RUNNER_TOOL_CACHE -e RUNNER_TEMP -e RUNNER_WORKSPACE -e ACTIONS_RUNTIME_URL -e ACTIONS_RUNTIME_TOKEN -e ACTIONS_CACHE_URL -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/ci-test-net/ci-test-net":"/github/workspace" 6f1554:68f200c7c9eb485a8744f4c1508862a0 tar all files into /tmp/884981472/ICnuQaBwiK.tar scp file to server. create folder c:\Application\CDTEST\APK\artifacts drone-scp error: Process exited with status 1 drone-scp rollback: remove all target tmp file remove file ICnuQaBwiK.tar 20***/06/05 20:37:50 Process exited with status 1

    opened by lasjan 1
  • drone-scp error but file copy success

    drone-scp error but file copy success

    in the Copy files to server sections, the files are copied successfully but with an error shown below

    tar all files into /tmp/635380544/KwUcbibuAf.tar scp file to server. create folder C:\wamp64\www\siu untar file KwUcbibuAf.tar remove file KwUcbibuAf.tar drone-scp error: Process exited with status 1 drone-scp rollback: remove all target tmp file remove file KwUcbibuAf.tar 2022/05/04 19:40:44 Process exited with status 1

    opened by HighScore17 0
  • Excluding files not working?

    Excluding files not working?

    I'm trying to exclude a few files and folders from being uploaded but it's not working.

    • README.md
    • .git

    These are the configs I've tried

    - !.git
    - !README.md
    - .
    
    - !./.git
    - !./README.md
    - .
    

    Any ideas?

    opened by deanpcmad 0
  • getKeyFile error: ssh: no key found

    getKeyFile error: ssh: no key found

    I'm using Tekton and trying to scp to a server using the image docker.io/appleboy/drone-scp:latest

      - name: upload-script
        image: docker.io/appleboy/drone-scp:latest #tag: 1.6.1
        script: |
    
          echo "$(params.SSH_SCRIPT)" > script.sh
          echo "$SSH_PUBLIC_KEY" > ${HOME}/.ssh/id_rsa
          drone-scp --host $(params.HOST) \
            --port $(params.PORT) \
            --username $(params.USERNAME) \
            --key-path "${HOME}/.ssh/id_rsa" \
            --target testing \
            --source script.sh
    

    the ssh key is public. Apparently that might be the issue. Is there a way to connect with a public key? Because the server I want to connect to has the private key But I am getting this output:

    tar all files into /tmp/880393127/dUVpoOUcUS.tar
    scp file to server.
    2022/01/27 21:05:21 getKeyFile error: ssh: no key found
    2022/01/27 21:05:25 error copy file to dest: <ip>, error message: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none password], no supported methods remain
    drone-scp error:  error copy file to dest:  <ip>, error message: ssh: handshake failed: ssh: unable to authenticate, attempted methods [none password], no supported methods remain
    

    Thanks

    opened by rlintott 1
  • The path is incorrect.

    The path is incorrect.

    I execute the following code to put all the files under /root/Web/ under /var/www/ , and I finally get /var/www /root/Web/

    drone-scp --host **** --port 2222 --username ${{ secrets.SSH_USERNAME }} --password ${{ secrets.AIDELIPWD }} --target /var/www/ --source /root/web/

    opened by bbhxwl 1
Releases(v1.6.4)
Owner
Bo-Yi Wu
I really believe committing every day on an open source project is the best practice.
Bo-Yi Wu
Docker for Your ML/DL Models Based on OCI Artifacts

English | 中文 ORMB is an open-source model registry to manage machine learning model. ORMB helps you manage your Machine Learning/Deep Learning models

Klever 366 Jun 27, 2022
BuildKit - A toolkit for converting source code to build artifacts in an efficient, expressive and repeatable manner

BuildKit BuildKit is a toolkit for converting source code to build artifacts in an efficient, expressive and repeatable manner. Key features: Automati

CrazyMax 5 Feb 19, 2022
Drone plugin to skip pipelines based on changed files

drone-skip-pipeline Drone plugin to skip pipelines based on changed files. Build Build the binary with the following command: export GOOS=linux export

ownCloud CI 2 Mar 29, 2022
Web gateway for OCI artifacts

Containerbay Web gateway for OCI artifacts Container images gateway browser and indexer Website static server - Reverse Container image browser Contai

ContainerBay 4 Jan 10, 2022
Drone plugin to create comment and label in PR to Gitee

drone-plugin-gitee-pulls 中文文档 Drone plugin to create comment and label in PR to

kit101 2 Jun 28, 2022
Tool to convert docker-compose files to set of simple docker commands

docker-decompose Tool to convert docker-compose files to set of simple docker commands. Install Use go get to install the latest version of the librar

Liri S 2 Apr 12, 2022
Drone plugin for trigger Jenkins jobs.

drone-jenkins Drone plugin for trigger Jenkins jobs. Setup the Jenkins Server Setup the Jenkins server using the docker command: $ docker run \ --na

Bo-Yi Wu 34 Jun 20, 2022
Woodpecker is a community fork of the Drone CI system.

Woodpecker is a community fork of the Drone CI system.

Woodpecker CI 1.1k Jun 26, 2022
Drone conversion for platform values

drocopla A drone.io conversion extension to set host platform as drone pipeline platform. Default drone.io behaviour: If os/arch is not set in .drone.

dopos 1 Dec 1, 2021
Go-http-server-docker - Simple sample server using docker and go

go-http-server-docker Simple sample webserver using docker and go.

null 0 Jan 8, 2022
This is a SSH CA that allows you to retrieve a signed SSH certificate by authenticating to Duo.

github-duo-ssh-ca Authenticate to GitHub Enterprise in a secure way by requiring users to go through a Duo flow to get a short-lived SSH certificate t

Niels Hofmans 8 Jan 7, 2022
Integrated ssh-agent for windows. (pageant compatible. openSSH ssh-agent etc ..)

OmniSSHAgent About The chaotic windows ssh-agent has been integrated into one program. Chaos Map of SSH-Agent on Windows There are several different c

YAMASAKI Masahide 18 Jun 3, 2022
A binary to control the Z-Cam line of cameras via API

The Z-Cam flagship line has an API of sorts. This can be used to control the camera--via a StreamDeck, say. This seems like a good enough reason to me

Corey Quinn 10 Jun 22, 2022
Binary program to restart unhealthy Docker containers

DeUnhealth Restart your unhealthy containers safely Features Restart unhealthy containers marked with deunhealth.restart.on.unhealthy=true label Recei

Quentin McGaw 46 Jun 9, 2022
Running Go binary into Docker

This go file make a get into an API, that API provides a JSON with a cat information

David Casado Masllorens 0 Feb 7, 2022
Google Compute Engine (GCE) VM takeover via DHCP flood - gain root access by getting SSH keys added by google_guest_agent

Abstract This is an advisory about an unpatched vulnerability (at time of publishing this repo, 2021-06-25) affecting virtual machines in Google's Com

null 511 Jun 29, 2022
Explore Docker registries and manipulate Docker images!

L/S tags Utility and API to manipulate (analyze, synchronize and aggregate) images across different Docker registries. Example invocation $ lstags alp

Ivan Ilves 288 Jun 15, 2022
Dotnet-appsettings-env - Convert .NET appsettings.json file to Kubernetes, Docker and Docker-Compose environment variables

dotnet-appsettings-env Convert .NET appsettings.json file to Kubernetes, Docker

Daniel Dias de Assumpção 5 Jun 13, 2022
Dotnet-appsettings-env - Convert .NET appsettings.json file to Kubernetes, Docker and Docker-Compose environment variables

dotnet-appsettings-env Convert .NET appsettings.json file to Kubernetes, Docker

Daniel Dias de Assumpção 1 Feb 16, 2022