Go to file
Philipp Rothmann 66df86dc53
continuous-integration/drone/push Build is passing Details
fix: no newline in passwords
2023-01-13 14:36:46 +01:00
.drone.yml foo 2023-01-12 14:45:07 +01:00
Dockerfile Drop pinning, it'll be fine 2021-05-05 13:05:26 +02:00
LICENSE Bootstrapping stack deploy plugin 2020-09-23 08:32:50 +02:00
README.md add docker login repo 2023-01-12 14:41:25 +01:00
makefile feat: add new makefile target [ci skip] 2022-01-05 11:51:30 +01:00
plugin.sh fix: no newline in passwords 2023-01-13 14:36:46 +01:00



Deploy swarm stacks against a SSH based remote docker daemon context.

This is meant to be used as a Drone plugin.


Required (no default)

  • deploy_key: SSH private key part for ssh public key authentication
  • stack: Name of the stack to be deployed

Required (If Private Repo)

  • image: Name and Tag of image since private image's are not pulled automatically by docker stack deploy

Optional (with defaults)

  • compose (default: compose.yml): compose file to use for deploying
  • host (default: swarm.autonomic.zone): Host to deploy to (don't include ssh://)
  • port (default: 222): SSH port to connect to
  • user (default: drone): System user to connect via SSH with
  • networks (default:): Try and auto-create these networks first
  • rm: (default: false): Remove the stack before deploying it
  • reg_user: Registry user if publishing from a private repository
  • reg_pass: Registry password if publishing from a private repository
  • reg_url: Registry URL

Dangerous options, unwise outside CI

  • generate_secrets (default: false): randomly set all secrets: found in the compose file -- you won't be able to retrieve them afterwards, so you almost certainly don't want this for real deployments.
  • purge (default: false): runs aggresive cleaning up measure to wipe deployment afterwards


kind: pipeline
name: deploy to swarm
  - name: stack deploy
    image: decentral1se/stack-ssh-deploy:latest
      stack: mystack
        from_secret: drone_deploy_key
        - proxy
        - mail
        DOMAIN: test.example.com


The version can be bumped in the .drone.yml file. We're sticking with latest as we iterate on the code right now.

If you push a commit to master, the Drone config will publish to Docker Hub.