How to create own Git Server with Gitolite and Gitweb in Ubuntu

In this tutorial we will learn how to create own git server.This time I have selected Gitolite for git server and gitweb to display git repositories.

Why Gitolite ?
Answer: Easy to setup,have user management through command line,very less memory and cpu usage.

Why Gitweb?
Answer: To display repositories in web interface and view can be manage from Gitolite also.

Operating System: Ubuntu 12.04 LTS
Arch : i686
Git Server IP Address: 10.10.0.16

To setup the gitolite and gitweb follow given below steps

Step 1: Login into your server and become superuser root

linux@ubuntu:~$sudo su -

Step 2: Now install git

# apt-get install git

Step 3: create user git with disabled password and login shell bash

root@ubuntu:~# adduser 
    --system 
    --shell /bin/bash 
    --gecos 'git version control' 
    --group 
    --disabled-password 
    --home /home/git 
    git

Step 6: Now login with user git

root@ubuntu:~# su -l git

Step 7: In git directory means /home/git get clone of gitolite with help of git command

git@ubuntu:~$ cd /home/git ; git clone git://github.com/sitaramc/gitolite

Step 7:Create a directory called bin in /home/bin (you are still log in as user git)

git@ubuntu:~$ mkdir $HOME/bin

Step 8: Now install the git (After git clone, the directory gitolite you can see in /home/git. It has the setup files)

git@ubuntu:~$ gitolite/install -ln

Step 9 : After hitting the command “gitolite/install -ln” , just check in bin directory.Is new gitolite file created itself or not

git@ubuntu:~$ ls bin/gitolite 
bin/gitolite
git@ubuntu:~$

Step 10: Now login into your linux system or pc from where you want to manage the Git Server as Git-Admin. Here we will create RSA key and this RSA key we will move to gitolite server.
If you already have RSA key in $HOME/.ssh ,you can skip this step.

Create RSA key, after hiting the command just press enter when it ask for passphrase.

linux@tuxworld:~$ ssh-keygen -t rsa -C "Git-Admin"
Generating public/private rsa key pair.
Enter file in which to save the key (/home/linux/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/linux/.ssh/id_rsa.
Your public key has been saved in /home/linux/.ssh/id_rsa.pub.
The key fingerprint is:
9c:96:f3:4e:cb:8e:59:6b:76:05:87:cf:ff:7b:76:93 Git-Admin
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|                 |
|             .   |
|       . o  o .  |
|        S    =   |
|       . o    +  |
|          +  . ..|
|         Boo.  E=|
|        o+*.   oB|
+-----------------+
linux@tuxworld:~$

Step 11: Now from your system scp the key into git server.
scp ~/.ssh/id_rsa.pub username@git-server-FQDN-or-its-ip-address:~

linux@tuxworld:~$ scp ~/.ssh/id_rsa.pub linux@10.10.0.16:~
linux@10.10.0.16's password: 
id_rsa.pub                                    100%  391     0.4KB/s   00:00    
linux@tuxworld:~$

Step 12: Now login back to git server and become superuser , move & rename the id_rsa.pub to /home/git as Git-Admin.pub,change its ownership and group to git and and then login with user git again

linux@tuxworld:~$ ssh linux@10.10.0.16
linux@10.10.0.16’s password:
Welcome to Ubuntu 12.04 LTS (GNU/Linux 3.2.0-23-generic-pae i686)

* Documentation: https://help.ubuntu.com/

System information as of Fri May 31 22:27:03 IST 2013

System load: 0.0 Processes: 68
Usage of /: 7.3% of 13.67GB Users logged in: 1
Memory usage: 8% IP address for eth0: 10.0.2.15
Swap usage: 0% IP address for eth1: 10.10.0.16

Graph this data and manage this system at https://landscape.canonical.com/

Last login: Fri May 31 22:02:48 2013 from 10.10.0.9
linux@ubuntu:~$
linux@ubuntu:~$ sudo su –
[sudo] password for linux:
root@ubuntu:~#
linux@ubuntu:~$ sudo mv id_rsa.pub /home/git/Git-Admin.pub ; sudo chown git:git /home/git/Git-Admin.pub
[sudo] password for linux:
linux@ubuntu:~$
root@ubuntu:~# su -l git
git@ubuntu:~$
git@ubuntu:~$
git@ubuntu:~$ whoami
git
git@ubuntu:~$

Step 13: Now setup the Git Admin. See the below files and directories are also created.

git@ubuntu:~$ bin/gitolite setup -pk Git-Admin.pub 
Initialized empty Git repository in /home/git/repositories/gitolite-admin.git/
Initialized empty Git repository in /home/git/repositories/testing.git/
WARNING: /home/git/.ssh missing; creating a new one
WARNING: /home/git/.ssh/authorized_keys missing; creating a new one
git@ubuntu:~$

Step 14: See some more important files and folder are created but they are hidden.

git@ubuntu:~$ ls -la
total 48
drwxr-xr-x 7 git  git  4096 May 31 22:39 .
drwxr-xr-x 4 root root 4096 May 31 22:03 ..
-rw------- 1 git  git   160 May 31 22:31 .bash_history
drwxrwxr-x 2 git  git  4096 May 31 22:05 bin
-rw-r--r-- 1 git  git   391 May 31 22:23 Git-Admin.pub
drwxr-xr-x 5 git  git  4096 May 31 22:05 gitolite
drwxrwxr-x 6 git  git  4096 May 31 22:39 .gitolite
-rw-rw-r-- 1 git  git  5179 May 31 22:39 .gitolite.rc
-rw-rw-r-- 1 git  git    12 May 31 22:39 projects.list
drwxrwxr-x 4 git  git  4096 May 31 22:39 repositories
drwx------ 2 git  git  4096 May 31 22:39 .ssh
git@ubuntu:~$ 

Step 15: If you do “ls -la repositories” you can find two repo bydefault created.
One is for git admin purpose and second is testing repo

git@ubuntu:~$ ls -la repositories/
total 16
drwxrwxr-x 4 git git 4096 May 31 22:39 .
drwxr-xr-x 7 git git 4096 May 31 22:39 ..
drwxrwxr-x 8 git git 4096 May 31 22:39 gitolite-admin.git
drwxrwxr-x 7 git git 4096 May 31 22:39 testing.git
git@ubuntu:~$

Step 16: Login back to your system where you created for the Git-Admin RSA key.
In youremail@example.com replace with your email id.


linux@tuxworld:~$ sudo apt-get install git

linux@tuxworld:~$ cd ~/Desktop

linux@tuxworld:~$ git config --global user.name "Git-admin"
linux@tuxworld:~$ git config --global user.email "youremail@example.com"
linux@tuxworld:~$ 
linux@tuxworld:~$ git config --list
user.name=Git-admin
user.email=youremail@example.com
linux@tuxworld:~$ 


Now clone the gitolite-admin.git from git server

linux@tuxworld:~/Desktop$ git clone git@10.10.0.16:gitolite-admin.git
Cloning into 'gitolite-admin'...
remote: Counting objects: 6, done.
remote: Compressing objects: 100% (4/4), done.
Receiving objects: 100% (6/6), 736 bytes, done.
remote: Total 6 (delta 0), reused 0 (delta 0)
linux@tuxworld:~/Desktop$

Now gitolite-admin directory will be present after cloneing from git server.
The gitolite.conf is mainly use for User and group ACL for git server.
Now from your system you can easily manage the user group ACL. But for this you have to do “git push”

linux@tuxworld:~/Desktop$ 
linux@tuxworld:~/Desktop$ cd gitolite-admin/
linux@tuxworld:~/Desktop/gitolite-admin$ ls
conf  keydir
linux@tuxworld:~/Desktop/gitolite-admin$ cd conf/
linux@tuxworld:~/Desktop/gitolite-admin/conf$ 
linux@tuxworld:~/Desktop/gitolite-admin/conf$ ls
gitolite.conf
linux@tuxworld:~/Desktop/gitolite-admin/conf$ cat gitolite.conf 
repo gitolite-admin
    RW+     =   Git-Admin

repo testing
    RW+     =   @all
linux@tuxworld:~/Desktop/gitolite-admin/conf$ 

How to push new changes of gitolite.conf into git server from my system

Use the given below command to push the changes into Git Server.

Go to gitolite-admin cloned directory and change to conf directory also. Edit the changes in gitolite.conf and push the code with given below command.

$ cd ~/Desktop/gitolite-admin/conf
$ls -l gitolite.conf

$git add gitolite.conf
$git commit -m "first commit"
$git push origin master

Note: “git pull” command is for pull the Version files/directory from Git Server.

Install and Configure Gitweb

Step 18: Login back to git server and become super user root

$ sudo su -
root@ubuntu:~# apt-get install gitweb apache2

It will install gitweb in /usr/share.
In below details you can notice the index.cgi is symlink of gitweb.cgi

root@ubuntu:~# ls -l /usr/share/gitweb/
total 236
-rwxr-xr-x 1 root root 236227 Apr 11  2012 gitweb.cgi
lrwxrwxrwx 1 root root     10 Apr 11  2012 index.cgi -> gitweb.cgi
drwxr-xr-x 2 root root   4096 May 31 22:04 static
root@ubuntu:~#

Step 19: Edit the /home/git/.gitolite.rc and change the UMASK value as 0027


root@ubuntu:~# vi /home/git/.gitolite.rc

# configuration variables for gitolite

# This file is in perl syntax. But you do NOT need to know perl to edit it --
# just mind the commas, use single quotes unless you know what you're doing,
# and make sure the brackets and braces stay matched up!

# (Tip: perl allows a comma after the last item in a list also!)

# HELP for commands can be had by running the command with "-h".

# HELP for all the other FEATURES can be found in the documentation (look for
# "list of non-core programs shipped with gitolite" in the master index) or
# directly in the corresponding source file.

%RC = (

# ------------------------------------------------------------------

# default umask gives you perms of '0700'; see the rc file docs for
# how/why you might change this
UMASK => 0027,

# look for "git-config" in the documentation


Then save and exit by pressing esc key first then typing :wq and hit enter

Step 20: This one is important ,now edit /etc/gitweb.conf file and change the given below two lines only


root@ubuntu:~# vi /etc/gitweb.conf

$projectroot = "/home/git/repositories/";
$projects_list = $projectroot;

NOTE: Below given step is deleted and should not be followed with new gitweb version 1:1.7.9.5-1. If you have older version you can try this step.

Step 20:Edit /usr/share/gitweb/gitweb.cgi and change the value of $projectroot as “/home/git/repositories” and $projects_list as “/home/git/projects.list”

root@ubuntu:~# vi /usr/share/gitweb/gitweb.cgi
our $projectroot = “/home/git/repositories/”;
our $projects_list = “/home/git/projects.list”;

edit /etc/gitweb.conf file and change the given below two lines only

root@ubuntu:~# vi /etc/gitweb.conf
$projectroot = “/home/git/repositories/”;
$projects_list = “/home/git/projects.list”;

Step 21: Now restart the apache2 and open the web browser and type http://git-server-ip/gitweb . In my practical case I will type http://10.10.0.16/gitweb

Note: gitweb apache config file is located in /etc/apache2/conf.d/gitweb

root@ubuntu:~# /etc/init.d/apache2 restart

gitweb

Securing Gitweb with htpasswd

With above screenshot we can see the gitweb web page is accessable to all. To configure it more secure and make as ,it will ask user name and password, we will use htpasswd in apache.

configure htpasswd access in gitweb. Edit the file /etc/apache2/conf.d/gitweb

root@ubuntu:~# vi /etc/apache2/conf.d/gitweb 
Alias /gitweb /usr/share/gitweb


  Options FollowSymLinks +ExecCGI
  AddHandler cgi-script .cgi
    	AllowOverride None
	Order allow,deny
	Allow from all
    AuthType Basic
    AuthName "Git Access"
    Require valid-user
    AuthUserFile /etc/apache2/gitweb-htpasswd


root@ubuntu:~# 

Create htpasswd username and passwd.
in below eg. admin is user name.

root@ubuntu:~# htpasswd -mc /etc/apache2/gitweb-htpasswd admin
New password: 
Re-type new password: 
Adding password for user admin
root@ubuntu:~# 

Now restart the apache2

root@ubuntu:~# /etc/init.d/apache2 restart

Now open the browser and type once again http://gitserver-ip-address/gitweb
eg. http://10.10.0.16/gitweb

gitweb2

24 thoughts on “How to create own Git Server with Gitolite and Gitweb in Ubuntu”

  1. Sharad.. great guide.. saved me a lot of hassle. One small tweak.. I needed to add the www-data user to the git group (adduser www-data git) in order for apache to be able to access the repos in /home/git/repositories. Without doing so, no projects showed up in the web interface. Otherwise well done.. I’ll be checking out your other posts as well.

    Reply
    • Hello Super,

      The post is bit old I am trying to take some time for this git. Within a few days, I will write updated post on Git.
      All troubleshooting will also be published. Keep reading our blog, I hope soon I will write another useful post for all.

      Regards
      Sharad

      Reply
  2. Hi Sharad, I used your description to set up a VM to host git. It worked exactly like to described but the first visit to website showed 404- no projects found. Do you have any idea. All the intermediate outputs you’ve shown were exactly reproducible.

    Reply
  3. Yes, I did that on server and followed all the steps carefully.

    It was successful with first machine but when I am trying it from other one; (more systems in LAN) either on same repo or on new created repo there is some permission and not to be git repository error.

    Actually I want to host repos for team work with X-code (MAC).

    Reply
  4. Hi, Sharad I want to host repos on ubuntu PC. But I am facing some problems when I add new repo to the repositries folder.
    1st check was all well (as in forum) but when I tried it from one more PC in LAN was not successful.

    I followed step #10 to #12 from other LAN PC. On step #13 getting the following error:
    FATAL: could not symlink /home/git/.gitolite/hooks/common/update to shivrepo.git/hooks
    at /home/git/gitolite/src/lib/Gitolite/Conf/Store.pm line 367

    And if I try to clone repo from showing some error like: doesn’t seem a git repository.
    Could you please help what is missing?

    Reply
    • Hello Shiv,

      The Step 12 should be done in Git Server, not in other system.
      Read carefully all steps and recheck. The tutorial is working for me.
      Let me know if still facing the issue

      Regards
      Sharad

      Reply
  5. I have Ubuntu 12.04 Server
    Installed gitolite and gitweb
    i can clone using git clone git@serverip:testing. then i created 2 repo
    repo1 and repo2 with following gitolite permissions.

    repo repo1
    rw = user1
    repo repo2
    rw =user1

    then i have installed git web using following configuration:

    apt-get install gitweb apache2

    vi /home/git/.gitolite.rc
    //change the UMASK value as 0027

    vi /etc/gitweb.conf
    $projectroot = “/home/git/repositories”;
    $projects_list = $projectroot;

    vi /etc/apache2/conf.d/gitweb

    Alias /gitweb /usr/share/gitweb

    Options FollowSymLinks +ExecCGI
    AddHandler cgi-script .cgi
    AllowOverride None
    Order allow,deny
    Allow from all
    AuthType Basic
    AuthName “Git Access”
    Require valid-user
    AuthUserFile /etc/apache2/gitweb-htpasswd

    htpasswd /etc/apache2/gitweb-htpasswd user1
    htpasswd -mc /etc/apache2/gitweb-htpasswd user2

    usermod -G git www-data
    chmod -R 750 /home/git/repositories/

    after doing that i am getting
    404 – No projects found
    but if i add

    repo repo1
    rw = user1 gitweb
    repo repo2
    rw =user1 gitweb

    When user1 and user2 login they are able to see both the repo1 and repo2.
    But i want when user1 login he should see only repo1 and same with user2.

    I hope u will help me. Thank u in advance

    Reply
    • Hello Praveesh,

      The gitweb only list the projects in web browser and it do not have user management control system. For http access,we are using SMART HTTP .(See the suexec we are using here)
      For user management ,you have to work on gitolite.conf file ,do the editing in clone copy of git admin,do not work in server directly. The gitweb version changes in recent time and hence some steps we have to change also. I need the gitweb version on which you are working on .Run the command dpkg -l|grep gitweb. The projects list get visible from projects.list file. But in your case you got 404. Let me know the gitweb version,I will check it from my end

      Reply
      • Hello sharad chhetri,

        My gitweb version is 1:1.7.9.5-1.
        Gitolite: 2.2-1
        apache2: 2.2.22-1ubuntu1.4
        OS: Ubuntu 12.04.4 LTS

        1. Installed gitolite as follows:
        apt-get install gitolite
        sudo dpkg-reconfigure gitolite

        The reconfigure script will prompt for 1) the user Gitollite will run as (defaults to gitolite, but I used git); 2) the path to the directory where gitolite should be stored (defaults to /var/lib/gitolite, which I used); and 3) the path to the administration public key, or the public key itself ( copied the git-admin public key to the server)

        2. For gitweb i did as described in this blog.

        I am able to browse the repo. If i log in as user1 or user2 its showing both the repo’s. But i need gitweb to show only repo1 if user1 login and repo2 if user2 login.

        Thanks and regards,
        Praveesh

        Reply
  6. I’ve done a bit more investigation and think there is a bit more to doing what I want to do.

    As I said, I want to use GitWeb to store multiple repositories and I want to be able to restrict access to some of those repositories to specific individuals. I was reading more about this and so far I am able to set things up so that using git with ssh I can do exactly that.

    For my test I create 3 repositories ( in addition to the gitolite-admin repo) which I called:

    testing
    project-A
    project-B
    project-C

    For my test I used 3 users on 3 separate computers. I installed mysysgit on each of these computers and then had the user run the following command:

    ssh-keygen -t rsa -C ‘user’s email’

    My 3 users were tommy, timmy and bobby.
    I had them each mail me their public keys which I renamed to tommy.pub, timmy.pub and bobby.pub

    I then went to my client machine where I could log in as the git administrator and from there went to the gitolite-admin/keydir folder and copied those 3 pub files. Then I ran these commands:

    git add tommy.pub
    git add timmy.pub
    git add bobby.pub

    git commit -m ‘add new public keys for my permitted users’

    git push origin master

    Once I did that I figured they would be able to log into the git server using their ssh keys.

    Next I wanted to fix it so that only tommy could access project-A, only timmy could access project-B and only bobby could access project-C so I added the following to my gitolite.conf file:

    repo gitolite-admin
    RW+ = Git-Admin

    repo testing
    RW+ = @all

    repo project-A
    – = timmy bobby
    RW+ = tommy

    repo project-B
    – = tommy bobby
    RW+ = timmy

    repo project-C
    – = timmy tommy
    RW+ = bobby

    (then i did another set of commands like this:)
    git add gitolite.conf
    git commit -m ‘change access to repos’
    git push origin master

    Then I tested by having each user try to clone all of the projects by using git-bash command line utility.

    Each user was able to clone the testing project.

    Only tommy was able to clone project-A; the other two got an error message indicating that due to fall thru they could not get the clone (not sure exactly what it said – but the important thing is that they were restricted as I wanted)

    And, likewise, only timmy could clone project-B and only bobby could clone project-C.

    So far so good.

    Now I wanted to set up gitweb for the same 3 users. So back on the server I created an entry in the /etc/apache2/gitweb-htpasswd file by running the following commands:

    htpasswd -m /etc/apache2/gitweb-htpasswd tommy
    htpasswd -m /etc/apache2/gitweb-htpasswd timmy
    htpasswd -m /etc/apache2/gitweb-htpasswd bobby

    (and of course for each of these I was asked to supply a password – which I then gave to each of those 3 users)

    After doing this I ran the command:
    sudo service apache2 restart

    I also had to go to /home/git and edit projects.list to include all 4 of my projects – it ended up looking like this:

    testing.git
    project-A.git
    project-B.git
    project-C.git

    So finally with all of that in place I went to a browser and had them each put in the URL of the gitweb server, but in each case they all could see all 4 projects and they could each download any of the 4 projects.

    So, I figure there is yet another step to making that part work. Seems like there might be some kind of script that needs to go into the – maybe gitweb.cgi file or something to do some filtering on who can and cannot view or download repos.

    I will note one other thing which hopefully is NOT a problem but I suppose could be.
    I have changed the SSH port on my server to be a different port – it’s a security issue with me. Just didn’t want hackers to be trying ssh into my server so I figured if I used a different port I could lessen the chance that they would figure that out.

    For git to work I had to do this:

    git clone ssh://git@git.datv.us:1234/testing.git

    which works fine. (the 1234 represents a different port number than 22 – I forget what I actually used – not at home right now – ) I don’t think that would or should make any difference for the gitweb problem I’m seeing but just wanted to mention that.

    Reply
      • I am also facing the same problem as mentioned above by Bob Tournoux. Can u please post the suggestion.

        Thanks and Regards,
        Praveesh

        Reply
        • Hello Praveesh,

          I had a long email thread with Bob regarding Git Server setup,sent many troubleshooting methods.Bob Git server is setup and running.Many problem has been resolved and Bob has setup the server as per his network requirement,so he had to do some changes.I believe Bob has done lot of improvement in his Git Server after this startup tutorial.
          I have helped our many blog readers for setting up Git and other servers.I will appreciate if you can describe the problem clearly.

          Regards
          Sharad

          Reply
  7. Sorry, back at this and more problems.

    I can get it to work ok as long as I do not want to give different permissions to different users on different projects.

    If I have 3 projects, call them PA, PB and PC and I have 2 users call them U1 and U2 and I want U1 to see PA an PC and I want U2 to see PB and PC this is how I’d configure my gitolite.conf file on my client:

    repo gitolite-admin
    RW+ = Git-Admin

    repo testing
    RW+ = @all

    repo PA
    RW+ = U1

    repo PB
    RW+ = U2

    repo PC
    RW+ = U1 U2

    Now depending on how I configure gitweb.conf or gitweb.cgi I get different results.

    If I remove /etc/gitweb.conf and if I configure gitweb.cgi to have:
    our $projects = /home/git/repositories
    and
    our $projectroot = projects_list=$projectroot

    then when I goto my https://git.datv.us I see all of the projects (including gitolite-admin) no matter who I log in as (and I log in from different computers for each user).

    Now if I change the $projects_list=”home/git/projects.list” then I see the 404 – no files found.

    But if I change a permission by replacing the user or users with @all then I can see it with everyone who logs in.

    If I put /etc/gitolite.conf back then it does the same thing. If I put something bad in the gitweb.cgi it will complain so it must be looking at bothe configuration files. If I put the gitweb.cgi back to its original data

    our $projectroot = /pub/scm”;

    and

    our $project_lists = $projectroot

    then it seems to do just use what is in the /etc/gitweb.conf.

    HOWEVER – no matter what I do I don’t seem to be able to set it up so that if I log in as U1 I see only PA or PC and if I log in as U2 I see only PB and PC.

    Have you got this to work?

    Thanks,
    Bob

    Reply
    • Hello Bob,

      There is one more thing in my blog which is pending since long time that is writing on User and group management in Gitolite.I will write on this subject soon.When I started working on git ,I also got same questions as you have.
      Just as we write RW+ for granting access same as RW- is also applicable. Or R- can also be use for not allowing to read.(- means disallow )
      If you login in your git server and use user git as I have used in my post. Check the file called projects.list . This file has Projects name inside.
      It is only for listing. If you create new project and want to show in gitweb,add the project name in projects.list. Or want to remove project name from gitweb just remove the name of project from projects.list.

      Regards
      Sharad

      Reply
  8. Thanks for these instructions – saved me a lot of head scratching.

    I also ran in to the problem that Bob had. After some messing around I found the solution was to uncomment this line in /etc/gitweb.conf

    # file with project list; by default, simply scan the projectroot dir.
    $projects_list = $projectroot;

    And not to edit the .cgi file directly.

    Reply
    • Thanks Steve,

      With new gitweb version 1:1.7.9.5-1, editing of gitweb.cgi is not required.

      Only we have to edit below two lines in /etc/gitweb.conf

      $projects_list = $projectroot;
      $projectroot = “/home/git/repositories/”;

      I will update the info in post with new gitweb version

      Reply
  9. Just wanted to say that I found an error in my log that indicated that “Options ExecCGI is off in this directory: /usr/share/gitweb/index.cgi” so I added that option and now I don’t get that error, but I continue to get the 404 not found error.

    I have been working on this all weekend. I probably did something simple but I can’t see it. I hope someone can help.
    Thanks in advance!

    Bob

    Reply
    • step 19,20 and 21 is important part of configuration.Check carefully if there is incorrect information.
      Can you share the apache configuration in our email admin@sharadchhetri.com ?
      I rechecked all steps again and find no issue still so far. It seems the problem is with apache and gitweb configuration. Send me the out put of command ls -la /usr/share/gitweb

      Reply
  10. Hi.
    I followed the instructions in this guide but when I click on my website I get no projects.I took a look with the chrome developer tools and see that it is not finding the gitweb.

    I probably messed something up with setting up gitweb. I’ve tried this several times but just can’t get it to work.

    I have a site named https://git.datv.us but when I go there I get a 404 file not found for the gitweb. I see the gitweb.css, git-logo.png and gitweb.js (which are all in /gtweb/static) but all I see is the 404 No projects found.

    I do have 3 sites at datv.us and am wondering if this could be a problem.

    So I have datv.us which should use the site at /var/www

    I have svn.datv.us which somehow uses Web Dav and it works.

    And finally I’m trying to run the gitweb on my git.datv.us

    All three domains are at the same IP address.

    I have configured a site file for each in the sites-available folder and have set the document root to /usr/share/gitweb and that does not seem to work.

    So then I set the document root to /var/www and set an alias for /gitweb to /usr/share/gitweb. Also does not work.

    What steps can I take to determine what to do to make this work? I am running https so maybe that’s a problem, but I disabled it and tried without it and it still runs the same way.

    Do I need to add the www-data group to my folders?

    Now after the many changes to the site files in available-sites I’m getting an error that says I don’t have access to the index.cgi so it looks like maybe I’m closer but still not clicking.

    I’ve got to hit the sack because I’ve got to get up in a few hours so if there is any particular info you might need to help me answer this, please email me.

    In the meantime I’m leaving my site up as is in case there is anything you can do from looking at it.

    SHould be https://datv.us/gitweb

    (I’ve changed my site to just use one certificate from the datv.us domain.

    Thanks,
    Bob

    Reply

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.