{"id":13602032,"url":"https://github.com/railsware/caphub","last_synced_at":"2025-04-05T15:06:04.097Z","repository":{"id":1784479,"uuid":"2708295","full_name":"railsware/caphub","owner":"railsware","description":"Generate centralized capistrano skeleton for multiple deployment","archived":false,"fork":false,"pushed_at":"2014-02-08T09:55:52.000Z","size":302,"stargazers_count":229,"open_issues_count":2,"forks_count":14,"subscribers_count":27,"default_branch":"master","last_synced_at":"2024-09-17T23:23:35.913Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"leftlogic/fullfrontal2013","license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/railsware.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2011-11-04T09:53:35.000Z","updated_at":"2024-09-09T15:38:24.000Z","dependencies_parsed_at":"2022-08-06T11:01:30.863Z","dependency_job_id":null,"html_url":"https://github.com/railsware/caphub","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/railsware%2Fcaphub","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/railsware%2Fcaphub/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/railsware%2Fcaphub/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/railsware%2Fcaphub/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/railsware","download_url":"https://codeload.github.com/railsware/caphub/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247353731,"owners_count":20925329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"2024-08-01T18:01:12.221Z","updated_at":"2025-04-05T15:06:04.074Z","avatar_url":"https://github.com/railsware.png","language":"Ruby","funding_links":[],"categories":["Web 后端"],"sub_categories":[],"readme":"\u003cimg src=\"https://github.com/railsware/caphub/raw/master/caphub.png\" style=\"float:right\" /\u003e\n\n## Caphub\n\nGenerate centralized capistrano skeleton for multiple deployment.\n\n## Caphub Concept\n\nMain idea of caphub is separate deployment and application code. So instead of `capify` your each project create **one** caphub repository and put **all** configurations/recipes there.\n\nBenefits:\n\n* no deployment/application code mix.\n* all deployment located in place.\n* ability to deploy multiple projects\n* deployment is not limited application deployment - deploy your system configurations too! (nginx/haproxy/etc configs)\n* easy to share configurations/recipes among multiple deployment.\n* uptodate synchronizing with remote repository (with capistrano-uptodate).\n* generate layout with caphub or write it yourself from scratch with your own recipes\n\n## Description\n\nCaphub is simple generation tool that follows *caphub concept*.\n\nCaphub generates similar layout that does usual `capify` command.\nCore of caphub skeleton is [capistrano-multiconfig](https://github.com/railsware/capistrano-multiconfig) gem that allows to recursively build multiple configurations. \n\n## Installation\n\n    $ gem install caphub\n\n## Usage\n\nGenerate caphub layout:\n\n#### Capistrano 3\n\n    $ caphub my-deploy\n\n    Creating directory my-deploy\n    Creating capistrano skeleton in my-deploy\n    Initializating git repository in my-deploy\n\n#### Capistrano 2\n\n    $ caphub --cap 2 my-deploy\n\n    Creating directory my-deploy\n    Creating capistrano skeleton in my-deploy\n    Initializating git repository in my-deploy\n\nLayout example:\n\n    $ tree --dirsfirst my-deploy\n    my-deploy\n    ├── config\n    │   ├── deploy\n    │   └── deploy.rb\n    ├── recipes\n    ├── Capfile\n    └── Gemfile\n\nReview gems into `Gemfile` and initialize gems:\n\n    $ bundle install\n\nPush repository remote server:\n\n    git remote add origin your/remote/git/repo/url\n    git push -u origin master\n\n### Configurations\n\nPut own configuration in `config/deploy`. \n\nE.g create `config/deploy/blog/production.rb` and it will be automatically available:\n\n    $ bundle exec cap -T\n    cap blog:production      # Load blog:production configuration\n\nUse any recipe with configuration task (similar to multistage extension). E.g:\n\n    $ bundle exec cap blog:production deploy:setup\n\n### Recipes\n\nAdd gems that contains capistrano recipes to `Gemfile`.\n\nConfigure and require recipes into `Capfile`.\n\nPut own recipes to `recipes` directory.\n\n## Authors\n\n* [Andriy Yanko](http://ayanko.github.io)\n\n## References\n\n* [capistrano](https://github.com/capistrano/capistrano)\n* [capistrano-multiconfig](https://github.com/railsware/capistrano-multiconfig)\n* [capistrano-uptodate](https://github.com/railsware/capistrano-uptodate#readme)\n* [capistrano-patch](https://github.com/railsware/capistrano-patch#readme)\n* [capistrano-calendar](https://github.com/railsware/capistrano-calendar#readme)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frailsware%2Fcaphub","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frailsware%2Fcaphub","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frailsware%2Fcaphub/lists"}