git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Anybody home?

From
Martin Langhoff <martin.langhoff@gmail.com>
Date
Sep 15, 2011, 13:17 UTC
Message-ID
<CACPiFC+gXYn8cu5dwdcbzT1RYmmbdPhFhdejbxJs9zY8C-F4cQ@mail.gmail.com>
In-Reply-To
<CAOZxsTrxPZ1V+_W=trRpOTJ9emh8msreGOyAYm_1hs0zXaOd1w@mail.gmail.com>

On Thu, Sep 15, 2011 at 5:42 AM, Joshua Stoutenburg <jehoshua02@gmail.com> wrote:

> I got confused in Chapter 5 of the Pro Git pdf book, trying to discern
> what needs to be done on the server, and what needs to be done on the
> work station
OK - some hints:

1 - For private code, or public code where you value the service, you can use the commercial services out there, that's easy

2 - For public/foss code, with low/simple service expectations, you can get free hosting

3 - For a private setup... the normal thing is to use git over ssh, so the server should be reachable by your users, and your users need an ssh account. You will want to setup a group ("gituser") and create a directory ("/git") owned by that group, writable by the group, with sticky group mode.

 To create a new project repo, ssh into the server and say git
--git-dir /git/fooproject init --shared . It will be empty -- on a
user workstation create your first commit, and push it into the (so
far empty) repo with git push git+ssh://hostname/git/fooproject master
.
On the server you can add a gitweb or cgit install for browsability.

If you want to allow anonymous users to access your git repos in readonly mode, you can setup the git "service", with xinetd. That allows you to tell people "git clone git://hostname/fooproject" .

Careful when configuring network services if the host is public, you don't want to serve git://host/etc/shadow :-)

This is what most "git servers" do -- it works in your company network, it also works for a public FOSS project with anon readers and a handful of ssh-authenticated committers.

(For a project using a more distributed model of one-developer-one-repo, you follow the same setup but perhaps make per-developer directories.)

4 - You _can_ do git over http, instead of ssh, but I suspect the setup is more involved. In any case, others will have to fill in.

> Also, I'm not clear on the best way to manage large numbers of git
> users (like 12-24), who also may have permissions to other services as
> well (ftp, databases, email, etc).  I have some hesitancy creating
> each one manually on the CLI.

CLI is generally fine :-) if you contract a hosting server that gives you email/db/ftp and has a webbased admin UI, all you need "additional" is to ensure you can manage ssh accounts with ease.

cheers,
m
-- 
 martin.langhoff@gmail.com
 martin@laptop.org -- Software Architect - OLPC
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff
Previous: Joshua StoutenburgNext: Joshua Stoutenburg
Message 11 of 20 in “Anybody home?”
  1. Joshua StoutenburgSep 15, 2011
  2. Michael WittenSep 15, 2011
  3. Joshua StoutenburgSep 15, 2011
  4. Joshua StoutenburgSep 15, 2011
  5. Alexander KostikovSep 15, 2011
  6. Ted Ts'oSep 15, 2011
  7. Jakub NarebskiSep 15, 2011
  8. Johannes SixtSep 15, 2011
  9. Thomas RastSep 15, 2011
  10. Joshua StoutenburgSep 15, 2011
  11. Martin LanghoffSep 15, 2011
  12. Joshua StoutenburgSep 15, 2011
  13. Carlos Martín NietoSep 15, 2011
  14. Joshua StoutenburgSep 15, 2011
  15. Miles BaderSep 15, 2011
  16. Carlos Martín NietoSep 15, 2011
  17. Joshua StoutenburgSep 15, 2011
  18. Scott ChaconSep 15, 2011
  19. Joshua StoutenburgSep 15, 2011
  20. Joshua StoutenburgSep 15, 2011

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.