# [`ansible-role-gitolite`][]
An [Ansible][] [role][] for deploying [gitolite][] on [Debian][] >=9.
Installs [gitolite][], creates a [dedicated user][] to run it (defaults to
`git`), prepares for [administering gitolite directly on the server][], allows
(explicit) [user created repos][] with [multiple `OWNERS`][] and `user/USER/*`
[personal branches][] for `USERS`, allows users to run [`symbolic-ref`][] (e.g.
to change `HEAD`, the default branch), prepares for [integration with a
webserver][] (including acting as a [`git-http-backend`][] replacement, serving
repos without the `.git` suffix, and generating
[`$GIT_DIR`][]`/`[`README.html`][] and [`$GIT_DIR`][]`/`[`description`][] if
[pandoc][] is available), allows [custom local code][], prepares for [easy
usage][`git-multihook`] of [custom local hooks][], and prepares for integration
with [Jenkins][].
[`ansible-role-gitolite`]: https://git.rcrnstn.net/rcrnstn/ansible-role-gitolite
[Ansible]: https://docs.ansible.com/ansible
[role]: https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html
[gitolite]: https://gitolite.com
[Debian]: https://www.debian.org
[dedicated user]: https://gitolite.com/gitolite/concepts#the-hosting-user
[administering gitolite directly on the server]: https://gitolite.com/gitolite/odds-and-ends#administering-gitolite-directly-on-the-server
[user created repos]: https://gitolite.com/gitolite/odds-and-ends#giving-users-their-own-repos
[multiple `OWNERS`]: https://gitolite.com/gitolite/wild#specifying-owners
[personal branches]: https://gitolite.com/gitolite/user#personal-branches
[`symbolic-ref`]: https://git-scm.com/docs/git-symbolic-ref
[integration with a webserver]: https://gitolite.com/gitolite/gitweb-daemon.html
[`git-http-backend`]: https://git-scm.com/docs/git-http-backend
[`$GIT_DIR`]: https://www.git-scm.com/docs/git#Documentation/git.txt-codeGITDIRcode
[`README.html`]: https://git-scm.com/docs/gitweb#Documentation/gitweb.txt-READMEhtml
[`description`]: https://git-scm.com/docs/gitweb#Documentation/gitweb.txt-descriptionorcodegitwebdescriptioncode
[pandoc]: https://pandoc.org
[custom local code]: https://gitolite.com/gitolite/non-core.html#using-the-gitolite-admin-repo-to-manage-non-core-code
[`git-multihook`]: https://git.rcrnstn.net/rcrnstn/git-multihook
[custom local hooks]: https://gitolite.com/gitolite/cookbook#adding-other-non-update-hooks
[Jenkins]: https://www.jenkins.io
## Try out
A stand-in [`site.yml`][] [playbook][] is provided, use it with
```
ansible-playbook -K -i $host, site.yml
```
(note the comma!) replacing `$host` with the host you want to set up (can be
`localhost`, perhaps adding `--connection=local`).
A [`Vagrantfile`][] that uses it is also provided, try it out with the usual
[`vagrant up`][].
[`site.yml`]: site.yml
[playbook]: https://docs.ansible.com/ansible/latest/user_guide/playbooks.html
[`Vagrantfile`]: Vagrantfile
[`vagrant up`]: https://www.vagrantup.com/docs/cli/up.html
## License
Licensed under the [ISC License][] unless otherwise noted, see the
[`LICENSE`][] file.
[ISC License]: https://choosealicense.com/licenses/isc/
[`LICENSE`]: LICENSE