用GitLab搭建自己的私有GitHub

相信很多技術人員都知道有個github造福開發人員的git(分布式版本管理工具)代碼管理社區,可以說現在git是開發人員的必備技能之一


本周有個朋友公司需要一個類似github的代碼倉庫管理系統,本人選擇了gitlab(沒有什么對比了,好像目前就gitlab最好了并且維護也不錯了),下面就來說說搭建私有github系統的過程


  1. 服務器設備信息如下

    Ubuntu 14.04(64)
       memory:8G
       cpu:4
       disk:100G
       bandwidth:2Mbit/s
  2. 下載gitlab-ce-8.3.4.deb

    官網地址:https://about.gitlab.com/downloads/ (下載比較慢還要翻墻,下面有一個云盤下載地址)

    訪問密碼 1091  https://yunpan.cn/crywEZAgEK9gH
  3. 安裝gitlab

    $ su root - #切換到root賬號
    $ dpkg -i gitlab-ce-8.3.4.deb #安裝
    $ gitlab-ctl reconfigure #配置gitlab
    $ gitlab-ctl status #查看服務
    $ gitlab-ctl restart/stop #重啟或者關閉服務


之后就可以直接使用瀏覽器訪問 http://ip,效果如下

600

個性化配置  和 注意事項

使用自己的nignx

$ apt-get install nginx #安裝nginx
$ cd /etc/nginx/conf.d && touch gitlab-http.conf


Nginx gitlab-http.conf 配置如下


upstream gitlab-workhorse {
  #server unix:/var/opt/gitlab/gitlab-workhorse/socket;
  server 127.0.0.1:8080;
}

upstream gitlab-git-http-server {
  server 127.0.0.1:8181;
}

server {
  listen *:80;
  server_name gitlab.guowei.com;
  root /opt/gitlab/embedded/service/gitlab-rails/public;
  client_max_body_size 0;
  location / {
    proxy_read_timeout      300;
    proxy_connect_timeout   300;
    proxy_redirect          off;
    proxy_http_version 1.1;
    proxy_set_header    Host                $http_host;
    proxy_set_header    X-Real-IP           $remote_addr;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto   http;
    proxy_pass http://gitlab-workhorse;
  }

  location ~ [-\/\w\.]+\.git\/ {
    proxy_read_timeout      300;
    proxy_connect_timeout   300;
    proxy_redirect          off;
    proxy_buffering off;
    proxy_set_header    Host                $http_host;
    proxy_set_header    X-Real-IP           $remote_addr;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto   $scheme;
    proxy_pass http://gitlab-git-http-server;
  }

  location ~ ^/[\w\.-]+/[\w\.-]+/repository/archive {
    client_max_body_size 0;
    error_page 418 = @git-http-server;
    return 418;
  }

  location @git-http-server {
    proxy_read_timeout      300;
    proxy_connect_timeout   300;
    proxy_redirect          off;
    proxy_buffering off;
    proxy_set_header    Host                $http_host;
    proxy_set_header    X-Real-IP           $remote_addr;
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Proto   $scheme;
    proxy_pass http://gitlab-git-http-server;
  }

}


配置gitlab不使用nginx

$ vim /etc/gitlab/gitlab.rb  
# search nginx find nginx['enable'] = true

# add 
nginx['enable'] = false
gitlab_git_http_server['listen_network'] = "tcp"  
gitlab_git_http_server['listen_addr'] = "127.0.0.1:8181"
# nginx['enable'] = true

$ gitlab-ctl reconfigure #配置gitlab
$ gitlab-ctl restart #重啟服務


卸載gitlab

# Stop gitlab and remove its supervision process
sudo gitlab-ctl uninstall

# Debian/Ubuntu
sudo dpkg -r gitlab-ce

# Redhat/Centos
sudo rpm -e gitlab-ce

注意事項

在nginx中有個8181端口的配置(對應gitlab.rb中的gitlab_git_http_server配置),這個是為了方便以 http的方式 操作git倉庫


待解決問題

  • 下載倉庫代碼還是有些問題,有的可以下載,有的不可以下載還沒有找出規律

<蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>