平台:ubuntu 14.04 LTS Trusty
服务器:gitlab
管理工具:smartgit
功能:由于github是开源的代码管理平台,而我们如果不想公开自己或是公司的开发代码,则需要搭建本地服务器。为了使代码管理更加有效,我们在Ubuntu上来搭建gitlab本地服务器,并且用smartgit进行管理。最终实现了:在同一个局域网中,任何一台主机通过访问服务器IP实现软件代码的git仓库管理。客户端安装windows、Mac或是Linux版本的smartgit,实现代码的上传、下载和更新等。
分以下几个步骤进行:
一. 在Ubuntu主机上搭建gitlab 本地服务器
可以参考:https://www.linuxidc.com/Linux/2018-01/150319.htm
总结一下,主要有以下几个步骤:
1. 安装依赖包
sudo apt-get install curl openssh-server ca-certificates postfix
2. 在国内,这网速只能利用清华大学的镜像(https://mirror.tuna.tsinghua.edu.cn/help/gitlab-ce/)来进行主程序的安装
首先信任gitlab 的GPG公钥
curl https://packages.gitlab.com/gpg.key 2> /dev/null | sudo apt-key add - &>/dev/null
使用root用户修改配置文件
vim /etc/apt/sources.list.d/gitlab-ce.list
新建list文件,添加以下内容
deb https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/ubuntu trusty main
注意:我的Ubuntu版本是14.04 即trusty,而16.04则为xenial ,内容要对应系统版本代号。
安装 gitlab-ce
sudo apt-get update
sudo apt-get install gitlab-ce
3.修改配置文件---这一步很重要
vim /etc/gitlab/gitlab.rb
必要时,一般不需要,这里可以指定自定义本地域名:
vim /var/opt/gitlab/gitlab-rails/etc/gitlab.yml
此文件,找到## Web server settings将host的值改成:192.168.0.134
截取重要的几条,我的配置如下:
external_url 'http://192.168.0.134:8080'
...
### Email Settings
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'sunnyhu@roadj.com'
gitlab_rails['gitlab_email_display_name'] = 'GitLab'
gitlab_rails['gitlab_email_reply_to'] = 'sunnyhu@roadj.com'
# gitlab_rails['gitlab_email_subject_suffix'] = ''
### GitLab user privileges
# gitlab_rails['gitlab_default_can_create_group'] = true
# gitlab_rails['gitlab_username_changing_enabled'] = true
### Default Theme
gitlab_rails['gitlab_default_theme'] = 2
...
nginx['listen_addresses'] = ['192.168.0.134']
nginx['listen_port'] = 8080
...
有这几条,gitlab服务器配置基本OK。说明:192.168.0.134这个IP是路由器分配给作为服务器主机的地址,8080为指定端口,你自己也可以设成其它,默认端口是80,这样设置可以避免80端口被占用时,服务器登不上。
4.启动sshd和postfix服务
service sshd start
service postfix start
5.添加防火墙规则
sudo iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
6.启动各项服务
sudo gitlab-ctl reconfigure
7..检查GitLab是否安装好并且已经正确运行
sudo gitlab-ctl status
我的服务器状态如下:
server@server-Precision-T1700:~$ sudo vim /etc/gitlab/gitlab.rb
server@server-Precision-T1700:~$ sudo gitlab-ctl status
run: alertmanager: (pid 1043) 22673s; run: log: (pid 1009) 22673s
run: gitaly: (pid 1021) 22673s; run: log: (pid 1006) 22673s
run: gitlab-monitor: (pid 1023) 22673s; run: log: (pid 1007) 22673s
run: gitlab-workhorse: (pid 1039) 22673s; run: log: (pid 1020) 22673s
run: logrotate: (pid 8928) 1072s; run: log: (pid 1005) 22673s
run: nginx: (pid 1040) 22673s; run: log: (pid 1004) 22673s
run: node-exporter: (pid 1022) 22673s; run: log: (pid 996) 22673s
run: postgres-exporter: (pid 1047) 22673s; run: log: (pid 1010) 22673s
run: postgresql: (pid 1068) 22672s; run: log: (pid 1031) 22673s
down: prometheus: 1s, normally up, want up; run: log: (pid 997) 22673s
run: redis: (pid 1067) 22672s; run: log: (pid 1030) 22673s
run: redis-exporter: (pid 1042) 22673s; run: log: (pid 1008) 22673s
run: sidekiq: (pid 1070) 22672s; run: log: (pid 1019) 22673s
run: unicorn: (pid 1046) 22673s; run: log: (pid 1018) 22673s
8. 配置gitlab 服务器
首先在浏览器中输入:192.168.0.134:8080登陆本地服务器,修改管理员密码
而后
git仓库之间的代码传输协议主要使用ssh协议。而一般搭建gitlab的时候使用的git用户是没有密码的,因此直接ssh是不能登录的,就需要使用ssh-keygen上传公钥,使用非对称加密传输。
添加ssh key
ssh-keygen
生成一对私钥和公钥,分别存在 ~/.ssh/id_rsa
和~/.ssh/id_rsa.pub
中。第二步查看公钥字符串。
cat ~/.ssh/id_rsa.pub
添加key到gitlab服务器配置中,Profile Settings –> SSH Keys –> Add SSH Keys。然后把上一步中的id_rsa.pub
中的内容拷贝出来粘贴到输入框中,保存。
如下图,可以看出我已经上传了两个key。
二. 安装smartgit 图形化管理git仓库
a. Linux版本smartgit
1. 安装
到官方指定地址下载对应版本的smartgit安装包:https://www.syntevo.com/smartgit/download/
Download for Linux 安装包版本号为:smartgit-linux-18_2_6.tar.gz
解压到指定安装目录即可,~/smartgit/bin/smartgit.sh为执行安装文件
执行./smartgit.sh进行安装即可
期间需要申请验证license证书,我是用个人邮箱申请的非商务版,申请后邮箱收到smartgit.lic,解压即可得到license
申请正式地址:
https://www.syntevo.com/cn/smartgit/register-non-commercial/
创建桌面快捷方式
新建一个smartgit.desktop文件,内容为:
[Desktop Entry]
Name=smartgit
Exec=sh /home/server/smartgit/smartgit/bin/smartgit.sh
Icon=/home/server/smartgit/smartgit/bin/smartgit-64.png
Type=Application
StartupNotify=true
其中Exec为执行文件路径,Icon为应用图标文件路径。需要对应修改。
2. 配置
详见:
b. windows版本smartgit
1. 安装
到官方指定地址下载对应版本的smartgit安装包:https://www.syntevo.com/smartgit/download/
Download for Windows安装包版本号为:smartgit-win-18_2_6.zip
解压到指定安装目录即可,smartgit-18_2_6-setup.exe为执行安装文件
期间也是需要license验证的,由于license文件是通用的,用ubuntu下获得的license文件即可
2. 配置
详见:
期间要获取windows系统下生成的key文件,
windows生成key,打开终端cmd->输入ssh-keygen一直默认Enter直到生成。