Gogs:可能是比Gitlab更好的選擇

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

Gitlab是一個很棒的Git託管服務,幾乎像GitHub一樣強大。 但是,有沒有能和Gitlab/Github媲美但操作更簡單的項目呢?我認為 Gogs 是很好的選擇。

簡介

現在,GitHub已經成為首選的代碼託管平台。 因為它又很多很棒的功能,操作簡單,幾乎所有的開發人員都喜歡它。

同時,Google的代碼託管項目準備關閉,你可以把項目轉移到這裡。

但如果你在寫Android應用程式,或者正在建立下一個偉大的iOS遊戲,或者不想讓別人看到你的代碼沒,該怎麼辦?

你當然可以購買私人GitHub庫,但你肯定更想把資金投資到更緊迫的事情上。

這就是 Gitlab 和 Gogs 這樣的軟體誕生的原因。

他們提供的服務和GitHub非常相似,不同的是,你可以把項目放在你自己的伺服器上,甚至是自己的工作站上。

下面一起來進行更深入的瞭解。

Gitlab

Gitlab是一個強大的git服務,準系統和對手GitHub一樣。 這是一個成熟的項目和並且在不斷更新。

他們最近收購了Gitorius(另一個類似GitHub的服務),所以功能將有望得到擴充(查看有關收購的新聞剪輯)。

以前是手動安裝,很耗時間,問題也很多。最近安裝過程有所改善。

現在有 Linux DEB/RPM 的安裝包可用(稱為Omnibus),解決了所有的依賴問題,簡化了安裝過程。

升級是一個複雜的事情,尤其是從較早的版本升級到最新版,但也沒那麼複雜。

然而,你可以感受到很多東西是在後台執行的。 你可以運行 Sidekiq、Unicorn、Nginx、Ruby (包括 gems) 和 Gitlab本身。

自訂安裝不是那麼簡單,有很多不確定因素,如果出了什麼差錯,要自己一個個排查。

輸入二進位包

現在,我們有了Gogs。 你所要做的就是運行一個的二進位包。

它是用Go語言寫的,能相容各個系統。

它能運行於 Windows,MAC,Linux,ARM 等。

安裝時只需要把壓縮包解壓到選定的檔案夾中。 就是這樣。 升級也一樣:只要解壓壓縮包即可。

這就是Go語言二進位開發的美,你可以輕鬆在多個平台下開發。

Gogs佔用資源少,所以它很容易在系統資源上運行(它可以在Raspberry Pi運行)。

你可以用預設的配置運行,或做一些小調整。

預設的設定檔位於安裝資料夾的/conf/app.ini,文檔建議把自訂配置寫到/custom/conf/app.ini,這樣升級就不會覆蓋配置。

有三個可自訂的東西:

  • 庫的位置

    [repository]ROOT = !! 庫的地址 !!
  • 資料庫位置

    [database]PATH = !! 資料庫地址 !!
  • 公開金鑰

注意:目前,你需要運行一個SSH伺服器(OpenSSH也很好),這和gitlab相同。

比較

讓我們比較一下這兩個產品。 我將以GitHub作為參考。

特性 Gogs Gitlab Github
Dashboard & File Browser Y Y Y
Issue Tracking, Milestones & Commit keywords Y Y Y
Organizations support N Y Y
Wiki N Y Y
Code Review N Y Y
Code Snippets N Y Y
Web Hooks Y Y Y
Git Hooks Y * Enterprise * Enterprise
LDAP Login Y Y Y
LDAP Group Sync N * Enterprise * Enterprise
Branded Login Page N * Enterprise * Enterprise
Language Go Ruby Ruby
Platform Cross-Platform Linux * Virtual Machine
License MIT MIT Proprietary
Resource Usage Low Medium/High Medium/High

代碼審查(提取要求)可以說是缺失的最重要的功能。 這是 Gogs 在Github issues 裡首要問題,Gogs的主要開發人員正在儘力開發中。

但總的來說,這是一個功能豐富的、私人的Git託管服務。

運行一個 Gogs docker

我以前描述我如何我的伺服器環境docker化,所以我也會把gogs作為Docker容器來運行

讓我們一步一步來做。

假設我有一個應用程式的檔案在我的伺服器根目錄/home/kayak/apps,給每個作為Docker容器的應用建立子目錄。

下載並解壓最新版本gogs。

$ cd /home/kayak/apps$ wget http://gogs.dn.qbox.me/gogs_v0.5.13_linux_amd64.zip$ unzip gogs_v0.5.13_linux_amd64.zip$ rm gogs_v0.5.13_linux_amd64.zip

自訂配置

$ cd gogs$ mkdir -p custom/conf$ cd custom/conf$ nano app.ini[repository]ROOT = !! this is the location where you want to keep the repositories !![database]PATH = !! this is the location of your database (sqlite3 by default) !!

註: 你也可以不把gogs作為docker容器,直接運行。

現在讓我們建立dockerfile

$ cd /home/kayak/apps/gogs$ nano DockerfileFROM ubuntu:14.04ENV DEBIAN_FRONTEND noninteractiveRUN sed 's/main$/main universe multiverse/' -i /etc/apt/sources.list && \    apt-get update && apt-mark hold initscripts && \    apt-get install -y sudo openssh-server git && \ apt-get cleanEXPOSE 22 3000RUN addgroup --gid 501 kayak && adduser --uid 501 --gid 501 --disabled-password --gecos 'kayak' kayak && adduser kayak sudoWORKDIR /home/kayakENV HOME /home/kayakENTRYPOINT ["/home/kayak/boot"]

dockerfile是基於最新的Ubuntu LTS版伺服器(14.04)。

然後安裝 sudo, openssh 和 git,暴露連接埠22(用於SSH)和3000(給gogs的Web介面)。

另外,我通常會建立一個使用者(這裡用 kayak),它具有與我的Max box使用者相同的UID/GID,以防止存取權限問題。

最後,啟動shell指令碼運行。

$ touch boot$ chmod +x boot$ nano boot#!/bin/bashsudo -u kayak -H touch /home/kayak/.ssh/authorized_keyschmod 700 /home/kayak/.ssh && chmod 600 /home/kayak/.ssh/authorized_keys# start openssh servermkdir /var/run/sshd/usr/sbin/sshd -D &exec sudo -u kayak /home/kayak/gogs web

這樣就運行了ssh守護進程和gogs。現在是以kayak使用者運行,這樣比用預設的root使用者好一些。

建立鏡像

$ cd /home/kayak/apps/gogs$ docker build --rm -t apertoire/gogs .

鏡像建立好就可以運行了

$ docker run -d --name gogs \-v /etc/localtime:/etc/localtime:ro \-v /home/kayak/apps/gogs:/home/kayak \-p 62723:22 \-p 3000:3000 \apertoire/gogs

可以在命令列查看運行情況。

現在可以開啟網頁介面,它會顯示一個安裝頁面(首次運行)。

安裝完成後,就搭建好一個功能豐富的Gogs了。

總結

Gogs 是一個輕量級的、易於設定、跨平台的Git託管服務,不遜色於 Gitlab 和 GitHub。

雖然不比這二者成熟,但它有很大的潛力。

它是開源的,所以你可以協助改善它。

我用Gogs取代Gitlab幾個月了,感覺不錯。

我建立42個庫,感覺它的效能非常好。

我絕對推薦Gogs作為你的Git自託管服務。

附該項目在Github上的4位開發人員:

無聞Unknwon Liu Peng Lunny Xiao 傅小黑

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.