有一臺空閒的服務器, 因而想着搭建一臺GitLab玩一玩, 結果一看GitLab的官方安裝步驟, 我和個人小夥伴們都驚呆了! 正準備放棄的時候, 結果從一個隱蔽的小角落裏發現了一鍵安裝包. 靠, 有一鍵你就早說!nginx
這個文檔已經寫的很是簡單了, 大致意思是你首先得有一臺Linux服務器, Debian/Ubuntu or CenterOS. CenterOS我沒用過, 這裏只講Debian/Ubuntu.git
apt-get update & apt-get upgrade
首先升級系統到最新.apt-get install openssh-server postfix
postfix是用來Email給用戶用的, 安裝時選擇默認選項, 以後輸入你服務器綁定的域名.dpkg -i gitlab_6.7.2-omnibus-1.ubuntu.12.04_amd64.deb
進行安裝.sudo mkdir -p /etc/gitlab sudo touch /etc/gitlab/gitlab.rb sudo chmod 600 /etc/gitlab/gitlab.rb
external_url "http://hostname.com"
gitlab-ctl reconfigure
命令載入&從新配置GitLab.root
, 密碼是5iveL!fe
.這個一鍵安裝雖然不少部分都不是自定義配置, 可是做爲自用玩兒來講是足夠了. 可是雖然是自用玩兒, 咋也得來個HTTPS才能顯得高端大氣上檔次! 前面的安裝步驟我都是按照官方文檔來的, 一點問題都沒有, 順利的均可以用HTTP訪問使用了. 可是在開啓HTTPS的時候官方文檔就坑了, 按照官方文檔開啓HTTPS的步驟我在Debian 7, Ubuntu 12, Ubuntu 13全試過了, 都不行, 壓根沒法開啓Nginx的HTTPS.ubuntu
最後無奈之下我只能修改Nginx的配置了, 結果一下就好了, 坑爹阿.服務器
創建SSL目錄, 而後拷貝你的證書到SSL目錄:ssh
mkdir /etc/gitlab/ssl & chmod 700 /etc/gitlab/ssl
cp gitlab.hostname.com.crt gitlab.hostname.com.key /etc/gitlab/ssl/
/etc/gitlab/gitlab.rb
文件, 修改爲:external_url "https://hostname.com" nginx['redirect_http_to_https'] = true nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.hostname.com.crt" nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.hostname.com.key"
以後使用gitlab-ctl reconfigure
重建配置, 再修改Nginx配置文件/var/opt/gitlab/nginx/etc/gitlab-http.conf
裏的默認設置:gitlab
listen *:443 default_server; ssl on; ssl_certificate /etc/gitlab/ssl/gitlab.hostname.com.crt; ssl_certificate_key /etc/gitlab/ssl/gitlab.hostname.com.key; ssl_protocols SSLv3 TLSv1; ssl_ciphers ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
接着再建立一個/var/opt/gitlab/nginx/etc/index.conf
文件用來HTTP跳轉HTTPS:post
server { listen *:80; server_name hostname.com; rewrite ^(.*)$ https://$host$1 permanent; }
最後修改/var/opt/gitlab/nginx/etc/nginx.conf
配置文件, 在其中加入如下內容, 來載入index.conf
:url
include /var/opt/gitlab/nginx/etc/index.conf; include /var/opt/gitlab/nginx/etc/gitlab-http.conf;
以上所有完成以後, 使用gitlab-ctl restart
來重啓全部服務, 便可使用HTTPS訪問GitLab了.rest
PS: 注意在防火牆中開啓SSH HTTP HTTPS and SMTP
端口.code