logo

blog

My little blog can’t be this cute!

My git server setup.html (1691B)


      1 <h1 class="p-name"><a class="u-url" href="/articles/My%20git%20server%20setup">My git server setup</a></h1>
      2 <p>So after having problems with gitlab.com (not being able to push to your own repository for example). I decided to have a very simple git setup, inspired by git.linkmauve.fr. I putted all my git repos into <code>/git</code>.</p>
      3 <h2>started with just nginx and ssh</h2>
      4 <p>This one is dead-simple when you know the trick, simply put <code>git update-server-info</code> into <code>hooks/post-update</code> or <code>hooks/post-receive</code> of your git repo (they have to be bare repo, that’s done with --bare)</p>
      5 <h2>Added git-daemon</h2>
      6 <p>That one was even more simple, just had to point to where the git repositories are stored</p>
      7 <h2>Wanted a better interface</h2>
      8 <p>While searching for alternatives to GNU I saw <a href="http://git.2f30.org/stagit/">stagit</a>, a static git generator (I don’t like CGI, specially when it could have access to my git repos), to use it I added theses lines to the post-update-hook</p>
      9 <pre><code>repo=$(pwd)
     10 cd "$(pwd | sed s/.git$//)" &amp;&amp; stagit -c "$repo.cache" "$repo"
     11 cd /git &amp;&amp; stagit-index *.git &gt; /git/index.html</code></pre>
     12 <h2>Garbage Collector</h2>
     13 <p>It’s not like my repos were getting big, git is supposed to do that itself but it seems like it doesn’t, so I’m doing <code>git gc</code> each time, which isn’t very optimised.</p>
     14 <h2>Final Hook code (deploy, stagit, …)</h2>
     15 <p>This can be seen in my <a href="/git/utils">/git/utils</a> repo, in the <code>git-hooks</code> folder.</p>
     16 <p>Also the blog is a symlink to <code>/git/blog.work</code> which are the raw files done by that hook.</p>