Articles of gitlab

Apache2 mod_proxy与gitlab在不同的服务器上

我拼命尝试在多层设置中configurationgitlabhq,我有一个代理服务器websrv01.kosare.perlur.cz,我使用mod_proxy运行Apache2,然后在不同的服务器上运行多个Web应用程序。 我有一个gitlab-backend.kosare.perlur.cz,我已经安装了gitlabhq,当我尝试连接到10.10.2.2:8080(这是我的独angular兽服务器运行gitlab的IP和端口)它工作正常,但是当我尝试使用gitlab.kosare.perlur.cz这是一个代理服务器上的虚拟主机转发请求到gitlab后端,它不工作,它卡住了。 我在代理服务器上的configuration文件看起来像这样。 <VirtualHost *:80> ServerName gitlab.kosare.perlur.cz RewriteEngine On <代理平衡器:// unicornservers> BalancerMember http://10.10.2.2:8080 </代理> #将所有非静态请求redirect到精简 RewriteRule ^ /(。*)$ balancer:// unicornservers%{REQUEST_URI} [P,QSA,L] ProxyPass /平衡器:// unicornservers / ProxyPassReverse /平衡器:// unicornservers / ProxyPreserveHostclosures <代理平衡器:// unicornservers /> 命令否认,允许 全部允许 </代理> #自定义日志文件位置 ErrorLog /var/log/apache2/gitlab.kosare.perlur.cz_error.log 结合了CustomLog /var/log/apache2/gitlab.kosare.perlur.cz_access.log </虚拟主机> 有没有人有一个线索如何使这个设置工作?

Gitlab添加默认的更新后

我们已经设置了Gitlab(正如官方网站所描述的那样)。 一切正常。 现在我们需要将git钩子添加到新创build的名为post-update的项目(可以说它位于/ home / git / gitolite / hook / post-update)。 我认为有一些简单的方法来使用像骨架这样的文件复制到新创build的项目。 有没有configuration或文件如何做到这一点?

Gitlab前端公开“chrooted”

我有2台服务器: 第一:包含gitlab + apache代理,在我的内部networking域git.development 第二:服务器前端只有nginx,在我的公共领域git.mydomain.com上 我想在第二台服务器上的“公共”目录“chrooted”的gitlab。 公共Web服务器的目录“公共”基础:git.development / public —-> git.mydomain.com 无需login即可redirect到基础:git.mydomain.com/users/sign_in —-> git.mydomain.com 目前我有一个部分的设置: 在服务器1上的Apache(工作没有问题) <VirtualHost *:80> ServerAdmin [email protected] ServerName git.development ProxyRequests Off <Proxy http://127.0.0.1:8082/*> Order deny,allow Allow from 192.168.0. 127.0.0.1 </Proxy> ProxyPreserveHost On ProxyPass /uploads ! ProxyPass /error ! ProxyPass / http://127.0.0.1:8082/ CustomLog ${APACHE_LOG_DIR}/development.3.git.access.log combined ErrorLog ${APACHE_LOG_DIR}/development.3.git.error.log # Modify path to your needs […]

如何在生产服务器上的VM中安装Gitlab?

我有一台运行Ubuntu 12.04的生产服务器,我想在其上安装一个Gitlab虚拟机(使用Vagrant和Virtualbox)。 假设访问Gitlab的地址是gitlab.mydomain.com。 DNS区域已configuration为指向服务器的IP地址。 我希望用户能够从外部访问Gitlab(推送到存储库或访问Web界面)。 VM已configuration为拥有IP地址。 这意味着,当浏览http://gitlab.mydomain.com例如,请求必须被转发到服务器上的虚拟机,即。 到VM IP地址。 有什么方法来configuration这个? Apache可以用作代理吗? 在这种情况下,我猜测它只适用于HTTP请求,但不适用于推送到VM上的Git存储库。

在Git中获取新标签推送预先接收

我在GIT中使用pre-receive钩子(在Linux上使用bash)来过滤允许进入我的仓库的推送。 我需要过滤开发者对我的GIT仓库的推动,只需要按下这些必要条件即可( #是数字): # Commits > 0 && # Tags != 0 :不 # Commits > 0 && # Tags == 0 :是的 # Commits == 0 && # Tags > 1 :否 # Commits == 0 && # Tags == 1 && Key is correct :是的 考虑与提交相同的分支和其他操作。 您只能使用正确的键(在标签注释中指定)推送单个标签。 您不能用其他元素推送标签。 问题是$refname只有HEAD ref,所以如果你这样做的话: Commit Tag (任何修订,甚至老年人) […]

GitLab,安装Gems时出错,libmysqlclient-dev可能丢失但不可移动

所以,当我正式安装GitLab之后,我在Gems安装中遇到了一个错误。 Gem files will remain installed in /home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/mysql2-0.3.11 for inspection. Results logged to /home/git/gitlab/vendor/bundle/ruby/2.0.0/gems/mysql2-0.3.11/ext/mysql2/gem_make.out An error occurred while installing mysql2 (0.3.11), and Bundler cannot continue. Make sure that `gem install mysql2 -v '0.3.11'` succeeds before bundling. 在网上看,他们说,这个问题经常出现,当一些lib丢失..和一个评论确认我害怕… 问题解决了,input这个命令 sudo apt-get install libmysqlclient-dev sudo apt-get install mysql 然后运行gem install mysql2 问题是,我试图安装它,但.. sudo apt-get install libmysqlclient-dev Reading […]

在Nginx中打开ssl_verify_client会导致Gitlab用户标识失败

我们有一个私有的Gitlab实例,我们计划在外部公开,为了确保只有员工可以连接到网站,我已经推出了一个带有用户证书的小型内部CA,以便相互授权。 当我打开它ssl_verify_client在web服务器端做预期的,如果没有证书(或无效的证书)出现400返回错误,如果提交了有效的证书,然后页面加载正确。 奇怪的是,它打破了Gitlab根据ssh密钥识别用户的能力。 例: 网站conf的片段: ssl_certificate /usr/local/nginx/config/gitlab.chained.crt; ssl_certificate_key /usr/local/nginx/config/gitlab.key; ssl_client_certificate /usr/local/nginx/config/Root_CA.crt; ssl_ciphers HIGH+aRSA:!kSRP; ssl_prefer_server_ciphers on; ssl_dhparam /usr/local/nginx/config/dh2048.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # ssl_verify_client on; ssl_verify_depth 2; 用户框: % ssh git@gitlab PTY allocation request failed on channel 0 Welcome to GitLab, [username]! Connection to gitlab.domain.local closed. 网站conf的片段: ssl_certificate /usr/local/nginx/config/gitlab.chained.crt; ssl_certificate_key /usr/local/nginx/config/gitlab.key; ssl_client_certificate /usr/local/nginx/config/Root_CA.crt; ssl_ciphers HIGH+aRSA:!kSRP; ssl_prefer_server_ciphers […]

Pam无法使用户主目录

我有一个绑定到Active Directory的Ubuntu 12.04 LTS服务器。 这是一个运行gitlab的git服务器。 它不使用gitolite而是使用gitlabshell 在日志中,我注意到每次'git'用户进行身份validation时,我都会在/var/log/auth.log中得到相同的11个错误 May 14 15:06:10 gitlab sshd[14775]: pam_unix(sshd:session): session opened for user git by (uid=0) May 14 15:06:10 gitlab sshd[14775]: pam_mkhomedir(sshd:session): unknown option: skel May 14 15:06:10 gitlab sshd[14775]: pam_mkhomedir(sshd:session): unknown option: = May 14 15:06:10 gitlab sshd[14775]: pam_mkhomedir(sshd:session): unknown option: /etc/skel/ May 14 15:06:10 gitlab sshd[14775]: pam_mkhomedir(sshd:session): unknown option: […]

Git存储库强制提交者元数据

我的目的是pipe理可能分布在多个外包机构之间的项目,并且我们希望在可能的情况下通过查看“用户名:[email protected]”的提交元数据来避免彼此之间的相互了解,纯粹为了避免任何潜在的政治问题。 一种方法是强制他们提交一个符合模式的电子邮件地址,即“@ mycompany.com”,或者我们可以重写电子邮件地址以确认该模式? 或者,我们可以维护2个存储库,我或同事将负责定期在2之间迁移提交,剥离提交者元数据。 我们目前使用GitLab来pipe理我们的仓库,但我可以想象这样的function可以在预提交钩子中处理?

有一个可接受的方式来备份gitlab的档案目的?

标准的Gitlab备份过程只支持恢复到完全相同的版本。 有没有办法做一个备份,将很容易与未来几年交互,因此许多Gitlab版本? 想到的解决scheme是只执行运行Gitlab的机器的完整备份,但这看起来像一个非常大的锤子,恢复不完全是一个蛋糕走路。 似乎没有办法做到这一点,但我希望我错了。