1. 安装gitlab (gitlab-ce 社区版,免费; gitlab-ee 企业版,收费),这里安装社区版。
步骤如下:
$ apt install curl openssh-server ca-certificates postfix
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
$ sudo apt install gitlab-ce
安装完成后,会打印以下内容:
.****** *******
******** ********
,,,,,,,,,***********,,,,,,,,,
,,,,,,,,,,,*********,,,,,,,,,,,
.,,,,,,,,,,,*******,,,,,,,,,,,,
,,,,,,,,,*****,,,,,,,,,.
,,,,,,,****,,,,,,
.,,,***,,,,
,*,.
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
sudo gitlab-ctl reconfigure
2. 修改gitlab配置文件:
# external_url是主机/防火墙/或访问gitlab的代理地址
external_url 'https://yun.rangotec.com:8001'
# 如果你有使用外部的程序,并修改服务端口号的需求,可以参考下面我的配置
# 使用外部的nginx
nginx['enable'] = false
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = "localhost:8002"
# 使用外部的数据库
postgresql['enable'] = false
gitlab_rails['db_adapter'] = 'postgresql'
gitlab_rails['db_encoding'] = 'utf8'
gitlab_rails['db_host'] = '127.0.0.1'
gitlab_rails['db_port'] = '5432'
gitlab_rails['db_database'] = 'gitlab'
gitlab_rails['db_username'] = 'gitlab'
gitlab_rails['db_password'] = 'wsad#123'
# 使用外部redis
redis['enable'] = false
gitlab_rails['redis_host'] = "localhost"
gitlab_rails['redis_port'] = 6379
# 更改端口
puma['port'] = 8003
prometheus['listen_address'] = 'localhost:8004'
gitlab_rails['gitlab_shell_ssh_port'] = 2223
###############所有端口占用################
# 80,8080,6379,9090 分别为前端nginx、 puma、缓存redis、prometheus
3. 重新配置,启动
$ sudo gitlab-ctl reconfigure
$ sudo gitlab-ctl start
$ sudo gitlab-ctl restart # 重启
# 使用以下用户名密码登录
# 默认用户名:root
# 默认秘密所在位置: /etc/gitlab/initial_root_password (24小时后自动删除)
# 当默认密码无法登陆时,可以用下面的命令重置
$ gitlab-rake "gitlab:password:reset[root]"
$ sudo gitlab-ctl tail # 查看日志, 比如启动失败、端口占用等
有多个项目的话, 重复3、4步骤即可。
Nginx配置(内网穿透时可参考):
location / {
proxy_redirect http:// https://;
proxy_set_header X-Forwarded-Ssl on; # 开启,否则会出现登录422 的问题!
proxy_pass http://127.0.0.1:8002;
proxy_set_header Host $host:8001; # 由于内网穿透改变了端口,所以这里进行了端口固定。 如果一致则可以使用$host:$port
proxy_set_header X-Real-IP $proxy_protocol_addr;
proxy_set_header X-Forwarded-For $proxy_protocol_addr;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
自己的项目结构比较简单,没有分支信息。
1. 首先需要安装 git-core git-svn 两个程序。
$ sudo apt install git-core git-svn
2. 创建用户映射文件
对应关系为:
svn上的用户 = gitlab用户名<gitlab上用户的邮箱>
$cat user.txt
dk = lsw<lsw@rangotec.com>
3. 把项目从svn上clone下来
$ git svn clone --username dk --no-metadata --authors-file=user.txt svn://yun.rangotec.com/trunk/AndroidReuseModules AndroidReuseModules
4. 上传项目到gitlab上
$ cd AndroidReuseModules
$ git remote add origin https://用户名:密码@yun.rangotec.com:8001/lsw/AndroidReuseModules.git
$ git push origin --all # 推送代码
登录gitlab 查看, 数据及版本记录已经同步过来了。
1. error: RPC failed; HTTP 413 curl 22 The requested URL returned error: 413
和gitlab没关系,这是因为 使用的https上传,nginx有文件大小限制。
修改 nginx 的 client_max_body_size 50m;
限制大小即可。
参加 :https://stackoverflow.com/questions/7489813/github-push-error-rpc-failed-result-22-http-code-413
2. remote origin already exists. 删除下就好了。
$ git remote rm origin