In my [[gitweb]] post, I explain how to setup `git daemon` to serve `git://` requests under [[Nginx]] on [[Gentoo]]. This post talks about a different situation, where you want to toss up a Git daemon for collaboration on your LAN. This is useful when you're teaching Git to a room full of LAN-sharing students, and you don't want to bother setting up public repositories more permanently. Serving a few repositories ========================== Say you have a repository that you want to serve: $ mkdir -p ~/src/my-project $ cd ~/src/my-project $ git init $ …hack hack hack… Fire up the daemon (probably in another terminal so you can keep hacking in your original terminal) with: $ cd ~/src $ git daemon --export-all --base-path=. --verbose ./my-project Then you can clone with: $ git clone git://192.168.1.2/my-project replacing `192.168.1.2` with your public IP address (e.g. from `ip addr show scope global`). Add additional repository paths to the `git daemon` call to serve additional repositories. Serving a single repository =========================== If you don't want to bother listing `my-project` in your URLs, you can base the daemon in the project itself (instead of in the parent directory): $ cd $ git daemon --export-all --base-path=src/my-project --verbose Then you can clone with: $ git clone git://192.168.1.2/ This may be more convenient if you're only sharing a single repository. Enabling pushes =============== If you want your students to be able to push to your repository during class, you can run: $ git daemon --enable=receive-pack … Only do this on a trusted LAN with a junk test repository, because it will allow *anybody* to push *anything* or remove references. [[!tag tags/linux]] [[!tag tags/tools]]