{"id":19358001,"url":"https://github.com/populatetools/consul-installer","last_synced_at":"2025-08-02T02:37:57.793Z","repository":{"id":142292059,"uuid":"110268156","full_name":"PopulateTools/consul-installer","owner":"PopulateTools","description":"An experimental installer tool for Consul","archived":false,"fork":false,"pushed_at":"2018-03-14T12:13:02.000Z","size":99,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-29T21:36:54.054Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PopulateTools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-AGPLv3.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-11-10T16:27:20.000Z","updated_at":"2018-03-14T12:13:03.000Z","dependencies_parsed_at":null,"dependency_job_id":"8bf35acc-1c91-4672-b6c1-e4a05c87cdda","html_url":"https://github.com/PopulateTools/consul-installer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/PopulateTools/consul-installer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PopulateTools%2Fconsul-installer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PopulateTools%2Fconsul-installer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PopulateTools%2Fconsul-installer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PopulateTools%2Fconsul-installer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PopulateTools","download_url":"https://codeload.github.com/PopulateTools/consul-installer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PopulateTools%2Fconsul-installer/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268328768,"owners_count":24232935,"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","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"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":"2024-11-10T07:09:57.537Z","updated_at":"2025-08-02T02:37:57.784Z","avatar_url":"https://github.com/PopulateTools.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Consul Installer\n\nConsul Installer is a Rails app that enables to install Consul through a web interface. \n\nThe Consul installer has been created by [Populate](http://populate.tools), a design and technology studio around civic engagement. See https://github.com/PopulateTools for other tools.\n\nThe main use case for Consul Installer is when you need to install various Consuls in the same infrastructure and do it through a web interface (ie. someone who is not a developer can do it).\n\n## Main features\n\n- Consul Installer allows to specificy the available target machines where Consuls will be installed, be it one or more servers. You can specify several roles.\n- Allows to create automatically sites by specifying a few parameters, such as the host name and the server that will run the site.\n- Allows to update servers using ansible roles automatically\n- Allows automatic deploys of new versions of the code.\n- Tracks an audit log of all the actions performed by users\n\n## Requirements\n\nIt has been tested and is in production use under CentOS servers using Ansible and Ruby Capistrano.\n\n## Installation\n\nConsul installer is a normal Rails application. It requires:\n\n- CentOS 7\n- Ruby \u003e= 2.3.2\n- PostgreSQL\n- Ansible\n\n### Development\n\nIn development you can install it as a normal Rails application or try it using Vagrant. There's a\n`Vagrantfile` in `ansible/` folder.\n\nYou can even install it in your laptop and use remote servers to install Consul. This is how we\nworked on it during the development, using small instances of Linode created and removed via the\nAPI, to simulate the production servers were Consul will run.\n\n### Production\n\nIn production you can use an Ansible role to install it. Check `ansible/site-installer.yml` and\nadapt it to your needs.\n\n## Usage\n\n### Setup\n\nBefore running the installer you need to adapt the roles to your target servers. The installer is\ndivided in three roles: web, app and db. These roles can be different servers or the same server.\n\nYou'll need to update the inventory:\n\n- ansible/inventories/production\n\n### Application usage\n\n#### Server setup\n\nThe first step is to setup a server in a role. Add new server instances via the UI and run the setup\nbutton. This will install all the packages and dependencies according to the role.\n\nInternally, this step executes `ansible/consult_servers.yml`.\n\n#### Consul instance setup and configuration\n\nOnce the servers are up and ready it's time to configure the consul instance with these options:\n\n- name\n- repository URL\n- host\n- base path: the path to the application in the server\n- server to run each of the roles\n- rails environment\n- census api username\n- census api password\n\nAfter saving these settings run what we call \"Site setup\" which will create automatically the\nfolders in the server, the database with new credentials, a rails secret key base...\n\n#### Deploy\n\nWhen the instance is configured the deploy option will be available. A deploy just runs internally a\ndeploy using Capistrano to the servers where the instance is configured.\n\n## Caveats\n\nThere are some caveats still pending to be solved:\n\n- removing a site\n- removing a server\n\nThese tasks must be performed manually for the moment.\n\n## Support\n\nPlease open an issue. \n\n# Credits\n\nThe Consul installer has been created by [Populate](http://populate.tools). This notice should be kept in any derivative work as stated in the [license](LICENSE-AGPLv3.txt).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpopulatetools%2Fconsul-installer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpopulatetools%2Fconsul-installer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpopulatetools%2Fconsul-installer/lists"}