4 ms·
Running your own internal git server can have several advantages. Mainly, you are not sharing your code (IP) with external parties. There are many frontends you
by WestCoastJustin 13y ago
Running your own internal git server can have several advantages. Mainly, you are not sharing your code (IP) with external parties. There are many frontends you can strap onto a git server too, like Gitlab, Gitweb, Gerrit, and cgit [1, 2, 3, 4]. We use git/gitolite/gitweb heavily with our internal puppet infrastruture. You can have pre/post commit hooks for things like, syntax checking, email notification, and code deployments.
Here is the workflow:
+--------+ +---------+
| gitweb | |dashboard|
staff +--------+ +---------+ nodes
+-+ | | +-+
+-+-\ | | > +-+
\ +--+-----+ +------+-/
| |git | |puppet|
+-+ -->| |gito-| +-> |master| -> +-+
+-+ | | lite| | | +-+
/ +--+-----+ +------+-
/ | | \
+-+- | v > +-+
+-+ | email hook to +-+
| staff if production branch
v
syntax hook
I created a screencast about running an internal git server with gitolite @ http://sysadmincasts.com/episodes/11-internal-git-server-with-gitolite http://sysadmincasts.com/episodes/11-internal-git-server-wit...
[1] http://gitlab.org/ http://gitlab.org/
[2] https://git.wiki.kernel.org/index.php/Gitweb https://git.wiki.kernel.org/index.php/Gitweb
[3] https://code.google.com/p/gerrit/ https://code.google.com/p/gerrit/
[4] http://git.zx2c4.com/cgit/ http://git.zx2c4.com/cgit/
- mbreese 13y agoJust to agree - having custom post-commit hooks can really be great for your deployment infrastructure. At an old job, I had post-commit hooks setup for deploying webapps, and once I got the developers on-board, it really made our devops cleaner. We had it all backed by gitolite. (I also got them to stop coding on the live sites, but that's another story).
- tomswartz07 13y agoWe use Gerrit/Gitweb here for our 2000+ node Puppet infrastructure. It's really nimble, and (when paired with Jenkins) is pretty much set-and-forget.
- deleted 13y ago[deleted]
- sytse 13y agoThanks for mentioning GitLab. As a GitLab.com co-founder I believe it offers a much more userfriendly interface than gitweb.
- girvo 13y agoThanks for GitLab, I've been using it since v3 :)
- js2 13y agoA very mature extremely well documented CI infrastructure built around Gerrit can be found at http://ci.openstack.org/ http://ci.openstack.org/ I'm a big fan of Gerrit though it can take a while to understand.
- pliu 13y agoI have pretty much the same setup at my work too. It goes Gitlab->Jenkins->Puppetmaster. This works super well with Puppet dynamic environments, since each team member can have their own branch to mess around in and make mistakes. On our master branch you have to pass puppet parser validate and puppet-lint before things get to production, which helps cut down on errors. http://puppetlabs.com/blog/git-workflow-and-puppet-environments http://puppetlabs.com/blog/git-workflow-and-puppet-environme...
- kyrra 13y agoTo list some other SCM tools that support Git that you can deploy internally: * (free) http://www.scm-manager.org/ http://www.scm-manager.org/ * https://rhodecode.com/ https://rhodecode.com/ * https://deveo.com/ https://deveo.com/ * https://enterprise.github.com/ https://enterprise.github.com/ * https://www.atlassian.com/software/stash https://www.atlassian.com/software/stash Those last 4 cost money, but allow self hosting with more "professional" tools.
- sebastiank123 13y agoLet me correct you: RhodeCode Enterprise is free of charge for installations with up to 20 users and runs under every major platform, including Windows.