README.md 2.54 KB
Newer Older
Nihad Abbasov's avatar
Nihad Abbasov committed
1
2
3
4
# Welcome to GitLab [![build status](https://secure.travis-ci.org/gitlabhq/gitlabhq.png)](https://secure.travis-ci.org/gitlabhq/gitlabhq)

GitLab is a free Project/Repository management application

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
5
6
7
8

<img src="http://gitlabhq.com/front.png" width="900" height="471">


Nihad Abbasov's avatar
Nihad Abbasov committed
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
## Application details

rails 3.1
works only with gitosis
sqlite as default a database

## Requirements

* ruby 1.9.2
* sqlite
* git
* gitosis
* ubuntu/debian
* pygments lib - `sudo easy_install pygments`

## Install Project

```bash
git clone git://github.com/gitlabhq/gitlabhq.git

cd gitlabhq/

# install this library first
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
32
33
sudo pip install pygments
sudo apt-get install python-dev
Nihad Abbasov's avatar
Nihad Abbasov committed
34
35
36
37
38
39
40
41
42
43

# give your user access to remove git repo
# Ex.
#   If you are going to use user 'gitlabhq' for rails server
#   gitlabhq ALL = (git) NOPASSWD: /bin/rm" | sudo tee -a /etc/sudoers
#
echo "USERNAME ALL = (git) NOPASSWD: /bin/rm" | sudo tee -a /etc/sudoers

sudo gem install bundler

44
bundle install --without development test
Nihad Abbasov's avatar
Nihad Abbasov committed
45
46
47
48
49
50
51
52
53

bundle exec rake db:setup RAILS_ENV=production

# create admin user
# login....admin@local.host
# pass.....5iveL!fe
bundle exec rake db:seed_fu RAILS_ENV=production
```

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
54
Install gitosis, edit `config/gitlab.yml` and start server
Nihad Abbasov's avatar
Nihad Abbasov committed
55
56

```bash
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
57
bundle exec rails s -e production
Nihad Abbasov's avatar
Nihad Abbasov committed
58
59
```

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
60
### Create git user 
Nihad Abbasov's avatar
Nihad Abbasov committed
61
62
63
64
65
66
67
68
69
70
71
72

```bash

sudo adduser \
  --system \
  --shell /bin/sh \
  --gecos 'git version control' \
  --group \
  --disabled-password \
  --home /home/git \
  git

Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88

# Add your user to git group
usermod -a -G git gitlabhq_user_name 

```

## Install Gitolite

### !!! IMPORTANT !!! Gitolite umask should be 0007 so users from git group has read/write access to repo

## Install Gitosis

```bash
sudo aptitude install gitosis


Nihad Abbasov's avatar
Nihad Abbasov committed
89
90
91
92
93
ssh-keygen -t rsa

sudo -H -u git gitosis-init < ~/.ssh/id_rsa.pub

sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
94
95
96
97

cd /tmp && git clone git@localhost:gitosis-admin.git 

rm -rf gitosis-admin.git && cd
Dmitriy Zaporozhets's avatar
Dmitriy Zaporozhets committed
98

Nihad Abbasov's avatar
Nihad Abbasov committed
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
```

## Install ruby 1.9.2

```bash
sudo aptitude install git-core curl gcc checkinstall libxml2-dev libxslt-dev sqlite3 libsqlite3-dev libcurl4-openssl-dev libreadline5-dev libc6-dev libssl-dev libmysql++-dev make build-essential zlib1g-dev

wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz

tar xfvz ruby-1.9.2-p290.tar.gz

cd ruby-1.9.2-p290
./configure
make
sudo checkinstall -D

sudo gem update --system

echo "gem: --no-rdoc --no-ri" > ~/.gemrc
```

## Community

[Google Group](https://groups.google.com/group/gitlabhq)

## Contribute

We develop project on our private server.
Want to help? Contact us on twitter or email to become a team member.