前言
GitHub已經成為首選的代碼托管平台,因為它又很多很棒的功能,操作簡單,幾乎所有的開發者都喜歡它。但是搭建GitLab過程并沒有想象中的簡單,利用Bitnami當然也是一種偷懶的好選擇。Gogs (Go Git Service) 是一款極易搭建的自助 Git 服務,Gogs 的目标是打造一個最簡單、最快速和最輕松的方式搭建自助 Git 服務。使用 Go 語言開發使得 Gogs 能夠通過獨立的二進制分發,并且支援 Go 語言支援的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。
Gogs可能是比GitLab更好的選擇
更新記錄
2016年03月31日 - 初稿
閱讀原文 - http://wsgzao.github.io/post/gogs/...
擴充閱讀
Gogs - https://gogs.io/
GitLab - https://about.gitlab.com/
Bitnami GitLab Stack - https://bitnami.com/stack/gitlab...
Bitnami GitLab Stack
Bitnami GitLab Stack ships with the following software versions
- GitLab 8.5.7
- Apache 2.4.18
- ImageMagick 6.7.5
- PostgreSQL 9.4.6
- Git 2.7.4
- Ruby 2.1.8
- Rails 4.2.5.1
- RubyGems 1.8.12
Btinami GitLab Stack 安裝真心簡單,爽
chmod 755 bitnami-gitlab-8.5.7-0-linux.run
https://bitnami.com/stack/gitlab/README.txt...
Gogs功能特性
- 支援活動時間線
- 支援 SSH 以及 HTTP/HTTPS 協定
- 支援 SMTP、LDAP 和反向代理的使用者認證
- 支援反向代理子路徑
- 支援使用者、組織和倉庫管理系統
- 支援倉庫群組織級别 Web 鈎子(包括 Slack 內建)
- 支援倉庫 Git 鈎子和部署密鑰
- 支援倉庫工單(Issue)、合并請求(Pull Request)和 Wiki
- 支援添加和删除倉庫協作者
- 支援 Gravatar 以及自定義源
- 支援郵件服務
- 支援背景管理面闆
- 支援 MySQL、PostgreSQL、SQLite3 和 TiDB(實驗性支援) 資料庫
- 支援多語言本地化(15 種語言)
以GitHub作為參考比較對象
特性 | Gogs | Gitlab | Github |
---|---|---|---|
Dashboard & File Browser | Y | ||
Issue Tracking, Milestones & Commit keywords | |||
Organizations support | N | ||
Wiki | |||
Code Review | |||
Code Snippets | |||
Web Hooks | |||
Git Hooks | * Enterprise | ||
LDAP Login | |||
LDAP Group Sync | |||
Branded Login Page | |||
Language | Go | Ruby | |
Platform | Cross-Platform | Linux | * Virtual Machine |
License | MIT | Proprietary | |
Resource Usage | Low | Medium/High |
Gogs環境要求
我以rhel6.3為例,已經屬于生命周期邊緣了
#安裝git
yum install -y git
git --version
git version 1.7.1
#安裝mysql-server
yum install -y mysql-server
mysql --version
mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
#啟動資料庫
service mysqld start
chkconfig mysqld on
#建立gogs資料庫
cd /home/git/gogs/scripts
#mysql -u root -p < mysql.sql
mysql -u root -p
# (輸入密碼,無密碼直接跳過)
set global storage_engine = 'InnoDB';
create database gogs character set utf8 collate utf8_bin;
create user 'gogs'@'localhost' identified by 'gogs';
grant all privileges on gogs.* to 'gogs'@'localhost';
flush privileges;
exit;
部署Gogs
Gogs是一款極易搭建的自助Git服務
https://gogs.io/docs
#建立git使用者
sudo adduser git
su - git
#解壓gogs
cd /home/git
unzip gogs_v0.9.13_linux_amd64.zip
ls /home/git/gogs/
gogs LICENSE public README.md README_ZH.md scripts templates
#啟動gogs
cd /home/git/gogs
./gogs web
2016/03/31 16:23:53 [W] Custom config '/home/git/gogs/custom/conf/app.ini' not found, ignore this if you're running first time
2016/03/31 16:23:53 [T] Custom path: /home/git/gogs/custom
2016/03/31 16:23:53 [T] Log path: /home/git/gogs/log
2016/03/31 16:23:53 [I] Gogs: Go Git Service 0.9.13.0318
2016/03/31 16:23:53 [I] Log Mode: Console(Trace)
2016/03/31 16:23:53 [I] Cache Service Enabled
2016/03/31 16:23:53 [I] Session Service Enabled
2016/03/31 16:23:53 [I] SQLite3 Supported
2016/03/31 16:23:53 [I] Run Mode: Development
2016/03/31 16:23:54 [I] Listen: http://0.0.0.0:3000
#背景運作
nohup ./gogs web &
tail -f nohup.out
app.ini配置檔案
注意DOMAIN和ROOT_URL這兩個參數
https://gogs.io/docs/advanced/configuration_cheat_sheet...
#首次安裝可以打開浏覽器完成剩餘配置
http://ip:3000/install
#通過修改app.ini也可以
vi /home/git/gogs/custom/conf/app.ini
APP_NAME = Gogs: Go Git Service
RUN_USER = git
RUN_MODE = prod
[database]
DB_TYPE = mysql
HOST = 127.0.0.1:3306
NAME = gogs
USER = gogs
PASSWD = gogs
SSL_MODE = disable
PATH = data/gogs.db
[repository]
ROOT = /home/git/gogs-repositories
[server]
DOMAIN = 172.28.70.134
HTTP_PORT = 3000
ROOT_URL = http://172.28.70.134:3000/
DISABLE_SSH = false
SSH_PORT = 22
OFFLINE_MODE = false
[mailer]
ENABLED = false
[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = true
REQUIRE_SIGNIN_VIEW = false
[picture]
DISABLE_GRAVATAR = false
[session]
PROVIDER = file
[log]
MODE = file
LEVEL = Info
ROOT_PATH = /home/git/gogs/log
[security]
INSTALL_LOCK = true
SECRET_KEY = i4B7R55aRaFdw8j