{"id":13449165,"url":"https://github.com/debops/debops","last_synced_at":"2025-05-14T11:10:24.662Z","repository":{"id":38375361,"uuid":"101479803","full_name":"debops/debops","owner":"debops","description":"DebOps - Your Debian-based data center in a box","archived":false,"fork":false,"pushed_at":"2024-10-28T19:14:52.000Z","size":43004,"stargazers_count":1307,"open_issues_count":404,"forks_count":358,"subscribers_count":50,"default_branch":"master","last_synced_at":"2025-05-10T11:40:19.785Z","etag":null,"topics":["ansible","ansible-controller","data-center","debian","debops","gitlab-ci","pki","playbook","self-hosted","sysadmin","sysadmin-tool","ubuntu"],"latest_commit_sha":null,"homepage":"https://debops.org/","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/debops.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSES/AGPL-3.0-only.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-08-26T10:46:25.000Z","updated_at":"2025-05-09T18:52:00.000Z","dependencies_parsed_at":"2023-09-23T03:41:44.169Z","dependency_job_id":"a8fb5af0-89cd-4321-81a9-5417d5788d74","html_url":"https://github.com/debops/debops","commit_stats":{"total_commits":12938,"total_committers":292,"mean_commits":44.30821917808219,"dds":"0.44720976967073733","last_synced_commit":"f66d7db9eea71ad5010010183ca0562ec14f00c4"},"previous_names":[],"tags_count":114,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debops%2Fdebops","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debops%2Fdebops/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debops%2Fdebops/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/debops%2Fdebops/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/debops","download_url":"https://codeload.github.com/debops/debops/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254129490,"owners_count":22019628,"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":["ansible","ansible-controller","data-center","debian","debops","gitlab-ci","pki","playbook","self-hosted","sysadmin","sysadmin-tool","ubuntu"],"created_at":"2024-07-31T06:00:32.521Z","updated_at":"2025-05-14T11:10:24.556Z","avatar_url":"https://github.com/debops.png","language":"Jinja","readme":"# [![DebOps logo][debops-logo]](https://debops.org/) DebOps\n\n*Your Debian-based data center in a box*\n\n[![GitHub CI][github-ci]](https://github.com/debops/debops/actions?query=workflow%3A%22Continuous+Integration%22)\n[![GitLab CI][gitlab-ci]](https://gitlab.com/debops/debops/pipelines)\n[![CII Best Practices][cii-best-practices]](https://bestpractices.coreinfrastructure.org/en/projects/237)\n[![REUSE status][reuse-status]](https://api.reuse.software/info/github.com/debops/debops)\n[![RSS commits][rss-commits]](https://github.com/debops/debops/commits/master.atom)\n\n[debops-logo]: https://raw.githubusercontent.com/debops/debops/master/lib/images/debops-small.png\n[github-ci]: https://github.com/debops/debops/workflows/Continuous%20Integration/badge.svg\n[gitlab-ci]: https://gitlab.com/debops/debops/badges/master/pipeline.svg\n[cii-best-practices]: https://bestpractices.coreinfrastructure.org/projects/237/badge\n[reuse-status]: https://api.reuse.software/badge/github.com/debops/debops\n[rss-commits]: https://img.shields.io/badge/RSS-commits-orange.svg\n\n\nThe DebOps project provides a set of general-purpose [Ansible][ansible] roles\nthat can be used to manage [Debian][debian] or [Ubuntu][ubuntu] hosts. In\naddition, a default set of Ansible playbooks can be used to apply the provided\nroles in a controlled way, using Ansible inventory groups.\n\n[ansible]: https://github.com/ansible/ansible/\n[debian]: https://www.debian.org/\n[ubuntu]: https://www.ubuntu.com/\n\nThe roles are written with a high customization in mind, which can be done\nusing Ansible inventory. This way the role and playbook code can be shared\nbetween multiple environments, with different configuration in to each one.\n\nServices can be managed on a single host, or spread between multiple hosts.\nDebOps provides support for different SQL and NoSQL databases, web servers,\nprogramming languages and specialized applications useful in a data center\nenvironment or in a cluster. The project can also be used to deploy\nvirtualization environments using KVM/libvirt, Docker or LXC technologies to\nmanage virtual machines and/or containers.\n\nYou can find out more about DebOps features on the [project's documentation\npage][debops-docs].\n\n[debops-docs]: https://docs.debops.org/\n\n\n## Quick start\n\nStart a Docker container which acts as an Ansible Controller host with DebOps\nsupport, based on Debian Buster:\n\n    docker run -it --rm debops/debops\n    cd src/controller ; debops run common --diff\n\nOr, create a Vagrant VM which acts as an Ansible Controller host:\n\n    git clone https://github.com/debops/debops\n    cd debops \u0026\u0026 vagrant up \u0026\u0026 vagrant ssh\n    cd src/controller ; debops run common --diff\n\nYou can use configuration in the `src/controller` subdirectory to try out\nDebOps against the container/VM, or create your own DebOps project directory\nusing `debops project init` command.\n\nMore quick start tips can be found [in the DebOps quick start guide][quick-start].\n\n[quick-start]: https://docs.debops.org/en/master/introduction/quick-start.html\n\n\nInstallation\n------------\n\nYou can install the [DebOps Python package][debops-pypi], which includes the\nDebOps roles and playbooks, as well as additional scripts which can be used to\nsetup separate project directories and run Ansible in a convenient way. To\ninstall the Python package with Ansible and other required dependencies, run\nthe command:\n\n    pipx install --user debops[ansible]\n\n[debops-pypi]: https://pypi.org/project/debops/\n\nAlternatively, DebOps roles are available on [Ansible Galaxy][debops-galaxy]\nas an Ansible Collection which can be installed using the `ansible-galaxy`\ncommand:\n\n    ansible-galaxy collection install debops.debops\n\n[debops-galaxy]: https://galaxy.ansible.com/debops/debops/\n\nRead the [installation instructions][install] in the DebOps documentation for\nmore details about required software and dependencies.\n\n[install]: https://docs.debops.org/en/master/introduction/install.html\n\n\n## Getting started\n\nAnsible uses SSH to connect to and manage the hosts. DebOps enforces the SSH\nsecurity by disabling password authentication, therefore using SSH keys to\nconnect to the hosts is strongly recommended. This can be changed using the\ninventory variables.\n\nDuring initial deployments you might find that the firewall created by DebOps\nblocked you from accessing the hosts. Because of that it's advisable to have an\nout-of-band console access to the host which can be used to login and\ntroubleshoot the connection.\n\nCreate a new environment within a DebOps \"project directory\", add some hosts in\nthe Ansible inventory and run the default DebOps playbook against them to\nconfigure them:\n\n    # Create a new environment\n    debops project init ~/src/projects/my-environment\n    cd ~/src/projects/my-environment\n\n    # Modify the 'ansible/inventory/hosts' file to suit your needs, for example\n    # uncomment the local host to configure it with DebOps\n\n    # Run the full playbook against all hosts in the inventory\n    debops run site\n\n    # Run the common playbook against specific host in the inventory\n    debops run common -l \u003chostname\u003e\n\nYou should read the [Getting Started with DebOps][getting-started] guide for\na more in-depth explanation of how the project can be used to manage multiple\nhosts via Ansible.\n\n[getting-started]: https://docs.debops.org/en/master/introduction/getting-started.html\n\n\nDevelopment\n-----------\n\nCreate [a fork of this repository][debops-fork] and clone it to your\nworkstation. Create a development DebOps environment and symlink the forked\nrepository in it. Now you can create new playbooks/roles in the forked\nrepository and see their results in the development environment.\n\n    git clone git@github.com:\u003cusername\u003e/debops ~/src/github.com/\u003cusername\u003e/debops\n    cd ~/src/github.com/\u003cusername\u003e/debops\n    git remote add upstream https://github.com/debops/debops.git\n\n    debops project init ~/src/projects/debops-devel\n    cd ~/src/projects/debops-devel\n    ln -s ~/src/github.com/\u003cusername\u003e/debops debops\n\nYou can pull latest changes to the project from the upstream repository:\n\n    cd ~/src/github.com/\u003cusername\u003e/debops\n    git checkout master\n    git fetch upstream\n    git rebase upstream/master\n\nRead the [development guide][devel-guide] file for more details about the\nDebOps development process.\n\n[devel-guide]: https://docs.debops.org/en/master/developer-guide/contribution-workflow.html\n\n\n## Contributing\n\nDebOps development is done via a distributed development model. New features\nand changes are prepared in a [fork of the official repository][debops-fork]\nand are published to the original repository via GitHub pull requests. PRs are\nreviewed by the DebOps developer team and if accepted, are merged in the main\nrepository.\n\n[debops-fork]: https://github.com/debops/debops/fork\n\nGPG-signed `git` commits are preferred to ensure authenticity.\n\nRead the [contributing guide][contrib-guide] file for more details about how to\ncontribute to DebOps.\n\n[contrib-guide]: https://docs.debops.org/en/master/developer-guide/contributing.html\n\n\n## Licensing\n\nThe DebOps project is licensed under the [GNU General Public License 3.0 or later][GPL-3.0-or-later].\nYou can find full text of the license in the [LICENSES/GPL-3.0-or-later.txt] file.\n\nSome files included with the DebOps project use a different license.\nThe licenses are marked in these files using the [SPDX license identifiers][spdx-ids]\nand can be found in the `LICENSES/` subdirectory. They are also included in the\nproject tarballs, Ansible Collections and Python packages. The project uses the\n[REUSE Specification][reuse-specification] and its associated tool to check and\nverify copyright and license information in all files.\n\n[GPL-3.0-or-later]: https://www.gnu.org/licenses/gpl-3.0\n[LICENSES/GPL-3.0-or-later.txt]: https://github.com/debops/debops/blob/master/LICENSES/GPL-3.0-or-later.txt\n[spdx-ids]: https://spdx.org/ids\n[reuse-specification]: https://reuse.software/spec/\n","funding_links":[],"categories":["Jinja","Apps","ansible","ubuntu"],"sub_categories":["InfraManagement"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebops%2Fdebops","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdebops%2Fdebops","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdebops%2Fdebops/lists"}