{"id":13393227,"url":"https://github.com/labzero/bootleg","last_synced_at":"2026-02-21T15:05:44.356Z","repository":{"id":56250838,"uuid":"80763996","full_name":"labzero/bootleg","owner":"labzero","description":"Simple deployment and server automation for Elixir.","archived":false,"fork":false,"pushed_at":"2020-11-18T13:43:12.000Z","size":16075,"stargazers_count":398,"open_issues_count":20,"forks_count":24,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-10-21T19:02:50.997Z","etag":null,"topics":["deployment","elixir","phoenix"],"latest_commit_sha":null,"homepage":"","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/labzero.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-02-02T20:08:00.000Z","updated_at":"2025-09-03T18:14:34.000Z","dependencies_parsed_at":"2022-08-15T15:30:56.129Z","dependency_job_id":null,"html_url":"https://github.com/labzero/bootleg","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"purl":"pkg:github/labzero/bootleg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labzero%2Fbootleg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labzero%2Fbootleg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labzero%2Fbootleg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labzero%2Fbootleg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/labzero","download_url":"https://codeload.github.com/labzero/bootleg/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/labzero%2Fbootleg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29684077,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T14:31:22.911Z","status":"ssl_error","status_checked_at":"2026-02-21T14:31:22.570Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["deployment","elixir","phoenix"],"created_at":"2024-07-30T17:00:46.766Z","updated_at":"2026-02-21T15:05:44.339Z","avatar_url":"https://github.com/labzero.png","language":"Elixir","funding_links":[],"categories":["Deployment","Elixir"],"sub_categories":[],"readme":"# Bootleg\n\n[![CircleCI](https://img.shields.io/circleci/project/github/labzero/bootleg/master.svg)](https://circleci.com/gh/labzero/bootleg) [![Hex.pm](https://img.shields.io/hexpm/v/bootleg.svg)](https://hex.pm/packages/bootleg) [![Packagist](https://img.shields.io/packagist/l/doctrine/orm.svg)](https://github.com/labzero/bootleg/blob/master/LICENSE)\n\nSimple deployment and server automation for Elixir.\n\n * [Documentation](https://hexdocs.pm/bootleg)\n * [Phoenix support](https://hexdocs.pm/bootleg/reference/phoenix.html)\n * [Contributing](https://github.com/labzero/bootleg/blob/master/CONTRIBUTING.md)\n\n**Bootleg** is an Elixir application that attempts to simplify the building and deploying of Elixir application releases. The goal of this project is to provide an extensible framework that can support many different deployment scenarios with one common set of commands.\n\n## Installation\n\nAdd [Distillery](https://github.com/bitwalker/distillery) and Bootleg as dependencies to `mix.exs`:\n\n```\ndef deps do\n  [{:distillery, \"~\u003e 2.1.0\", runtime: false},\n   {:bootleg, \"~\u003e 0.13.0\", runtime: false}]\nend\n```\n\n## Quick start\n\n### Create release configuration\n\nIf you're new to [Distillery](https://github.com/bitwalker/distillery), run the init command to generate a `rel/` folder and configuration:\n\n```\nmix distillery.init\n```\n\n### Create deploy configuration\n\nSimilarly, Bootleg configuration can be generated:\n\n```\nmix bootleg.init\n```\n\n### Configure the deploy configuration\n\nFirst define a build server in `config/deploy.exs`:\n\n```\nuse Bootleg.DSL\n\nrole :build, \"build.example.com\", \n  workspace: \"/home/acme/build\",\n  user: \"acme\",\n  identity: \"~/.ssh/id_acme_rsa\",\n  silently_accept_hosts: true\n\n```   \n\nNext, define application server(s) in `config/deploy/production.exs`:\n\n```\nuse Bootleg.DSL\n\nrole :app, [\"app1.example.com\", \"app2.example.com\"],\n  workspace: \"/opt/acme\",\n  user: \"acme\",\n  identity: \"~/.ssh/id_acme_rsa\",\n  silently_accept_hosts: true\n```\n\n\n### Build, deploy and start your application   \nNow you can proceed to build, deploy and start your application:\n\n```\nmix bootleg.build\nmix bootleg.deploy\nmix bootleg.start\n```\nThis example was for building on a remote build server and deploying to one or more remote application servers, but Bootleg supports several other [build](https://hexdocs.pm/bootleg/config/build.html) and [deployment strategies](https://hexdocs.pm/bootleg/config/deploy.html).\n\n## Help\n\nBootleg has [online documentation](https://hexdocs.pm/bootleg) available.\n\nFor detailed information about the Bootleg commands and their options, try `mix bootleg help \u003ccommand\u003e`.\n\nThe authors and contributors are frequently found on *elixir-lang*'s Slack in the [#bootleg](http://elixir-lang.slack.com/messages/bootleg/) channel. Come say hello!\n\n-----\n\n## Acknowledgments\n\nBootleg makes heavy use of the [bitcrowd/SSHKit.ex](https://github.com/bitcrowd/sshkit.ex)\nlibrary under the hood. We are very appreciative of the efforts of the bitcrowd team for both creating SSHKit.ex and being so attentive to our requests. We're also grateful for the opportunity to collaborate\non ideas for both projects!\n\n## Contributing\n\nWe welcome all contributions to Bootleg, whether they're improving the documentation, implementing features, reporting issues or suggesting new features.\n\nIf you'd like to contribute documentation, please check\n[the best practices for writing documentation][writing-docs].\n\n\n## LICENSE\n\nBootleg source code is released under the MIT License.\nCheck the [LICENSE](LICENSE) file for more information.\n\n  [issues]: https://github.com/labzero/bootleg/issues\n  [pulls]: https://github.com/labzero/bootleg/pulls\n  [writing-docs]: https://hexdocs.pm/elixir/master/writing-documentation.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flabzero%2Fbootleg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flabzero%2Fbootleg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flabzero%2Fbootleg/lists"}