{"id":41020167,"url":"https://github.com/codestation/drone-stack","last_synced_at":"2026-01-22T09:32:40.302Z","repository":{"id":57659671,"uuid":"128596130","full_name":"codestation/drone-stack","owner":"codestation","description":"Drone plugin for deploying stacks in Docker Swarm","archived":false,"fork":false,"pushed_at":"2022-03-26T01:21:27.000Z","size":22,"stargazers_count":14,"open_issues_count":0,"forks_count":8,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-06-20T02:11:25.818Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codestation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-04-08T04:06:12.000Z","updated_at":"2023-10-17T10:04:06.000Z","dependencies_parsed_at":"2022-09-12T07:20:32.621Z","dependency_job_id":null,"html_url":"https://github.com/codestation/drone-stack","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/codestation/drone-stack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codestation%2Fdrone-stack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codestation%2Fdrone-stack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codestation%2Fdrone-stack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codestation%2Fdrone-stack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codestation","download_url":"https://codeload.github.com/codestation/drone-stack/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codestation%2Fdrone-stack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28660770,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-22T09:32:39.538Z","updated_at":"2026-01-22T09:32:40.297Z","avatar_url":"https://github.com/codestation.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# drone-stack\n\nDrone plugin to deploy stacks in Docker Swarm. Use the following image:\n\n```\nghcr.io/codestation/drone-stack:latest\n```\n\n## Basic Usage with Drone CI\n\nYou can use this plugin to connect to Docker via SSH, TCP or a Unix Socket.\n\n### Connect via SSH\n\n```yml\nkind: pipeline\nname: default\ntype: docker\n\nsteps:\n  - name: deploy\n    image: codestation/drone-stack\n    settings:\n      host: ssh://user@example.com\n      stack_name: mystack\n      compose: docker-compose.yml\n      ssh_key:\n        from_secret: ssh_key\n```\n\nYou can also use multiple compose files\n\n```yml\nkind: pipeline\nname: default\ntype: docker\n\nsteps:\n  - name: deploy\n    image: codestation/drone-stack\n    settings:\n      host: ssh://user@example.com\n      stack_name: mystack\n      # pass multiple compose files\n      compose:\n        - docker-compose.yml\n        - another-file.yml\n      ssh_key:\n        from_secret: ssh_key\n```\n\n### Connect via TLS\n\n```yml\nkind: pipeline\nname: default\ntype: docker\n\nsteps:\n  - name: deploy\n    image: codestation/drone-stack\n    settings:\n      host: tcp://example.com:2376\n      stack_name: mystack\n      tlsverify: true\n      docker_cert:\n        from_secret: docker_cert\n      docker_key:\n        from_secret: docker_key\n      docker_cacert:\n        from_secret: docker_cacert\n```\n\n#### Use a private registry to pull the image from\n\n```yml\nkind: pipeline\nname: default\ntype: docker\n\nsteps:\n  - name: deploy\n    image: codestation/drone-stack\n    settings:\n      host: tcp://example.com:2376\n      stack_name: mystack\n      tlsverify: true\n      docker_cert:\n        from_secret: docker_cert\n      docker_key:\n        from_secret: docker_key\n      docker_cacert:\n        from_secret: docker_cacert\n      # add a registry\n      registry: registry.example.com\n      docker_username:\n        from_secret: docker_username\n      docker_password:\n        from_secret: docker_password\n```\n\nThe `tls`, `tlsverify`, `docker_cert`, `docker_key` and `docker_cacert` combinations are the same of the client modes supported on the docker binary. Check [here](https://docs.docker.com/engine/security/https/#client-modes) for more details.\n\n## Load certificates as drone secrets\n\nUsing the drone cli, go to the directory where your docker certificates or ssh keys are located then run the following commands:\n\n### For a single repo\n\n```bash\ndrone secret add myuser/myapp --name docker_cert --data @cert.pem\ndrone secret add myuser/myapp --name docker_key --data @key.pem\ndrone secret add myuser/myapp --name docker_cacert --data @ca.pem\n# for for ssh\ndrone secret add myuser/myapp --name ssh_key --data @id_rsa\n```\n\n### For a whole organization\n\n```bash\ndrone orgsecret add myuser docker_cert @cert.pem\ndrone orgsecret add myuser docker_key @key.pem\ndrone orgsecret add myuser docker_cacert @ca.pem\n# or for ssh\ndrone orgsecret add myuser ssh_key @id_rsa\n```\n\nYou can use the files or encode the secrets using base64.\n\n## Secret Reference\n\n* `docker_username` - authenticates with this username\n* `docker_password` - authenticates with this password\n* `docker_cert` - client certificate\n* `docker_key` - client key\n* `docker_cacert` - CA certificate\n* `ssh_key` - SSH private key\n\n## Parameter Reference\n\n* `compose` - compose file(s) to be used, defaults to docker-compose.yml\n* `host` - remote docker swarm host:port, can use `SSH` or `TLS`\n* `prune` - prune services that are no longer referenced\n* `stack_name` - name of the stack to deploy\n* `tls` - use TLS. Implied by `tlsverify`\n* `tlsverify` - use TLS and verify the remote host\n* `registry` - authenticates to this registry\n* `ssh_key` - SSH private key\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodestation%2Fdrone-stack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodestation%2Fdrone-stack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodestation%2Fdrone-stack/lists"}