數據庫(選擇如下一項):php
githtml
(bash):mysql
SSH 服務器:linux
ssh-keygen
到您的 %PATH%
環境變量中請根據您的選擇進行安裝:git
注意事項 您可使用 etc/mysql.sql
來自動建立名爲 gogs
的數據庫。若是您選擇手動建立,請務必將編碼設置爲 utf8mb4
。github
假設您已經安裝 Homebrew:golang
$ brew update $ brew install git
$ sudo apt-get update $ sudo apt-get install git
下載並安裝 Gitweb
目前只提供最近發佈的小版本二進制下載,更多版本下載請前往 GitHub 查看。redis
全部的版本都支持 MySQL、PostgreSQL、MSSQL 和 TiDB(使用 MySQL 協議)做爲數據庫,而且均使用構建標籤(build tags)cert 進行構建。須要注意的是,不一樣的版本的支持狀態有所不一樣,請根據實際的 Gogs 提示進行操做。sql
mws
表示提供內置 Windows 服務支持,若是您使用 NSSM 請使用另一個版本。cd
進入到剛剛建立的目錄。./gogs web
,而後,就沒有而後了。安裝完成後可繼續參照 配置與運行。
templates
目錄。若是您的系統已經安裝要求版本的 Go 語言,能夠跳過此小節。
您能夠經過如下方式安裝 Go 語言到 /home/git/local/go
目錄:
sudo su - git cd ~ # create a folder to install 'go' mkdir local # Download go (change go$VERSION.$OS-$ARCH.tar.gz to the latest release) wget https://storage.googleapis.com/golang/go$VERSION.$OS-$ARCH.tar.gz # expand it to ~/local tar -C /home/git/local -xzf go$VERSION.$OS-$ARCH.tar.gz
請設置和您系統環境對應的路徑:
sudo su - git cd ~ echo 'export GOROOT=$HOME/local/go' >> $HOME/.bashrc echo 'export GOPATH=$HOME/go' >> $HOME/.bashrc echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> $HOME/.bashrc source $HOME/.bashrc
經常使用的安裝方式:
# 下載並安裝依賴 $ go get -u github.com/gogs/gogs # 構建主程序 $ cd $GOPATH/src/github.com/gogs/gogs $ go build
develop
分支版本若是您想要安裝 develop
(或其它)分支版本,則能夠經過如下命令:
$ mkdir -p $GOPATH/src/github.com/gogs $ cd $GOPATH/src/github.com/gogs # 請確保沒有使用 「https://github.com/gogs/gogs.git」 $ git clone --depth=1 -b develop https://github.com/gogs/gogs $ cd gogs $ go build
您能夠經過如下方式檢查 Gogs 是否能夠正常工做:
cd $GOPATH/src/github.com/gogs/gogs ./gogs web
若是您沒有發現任何錯誤信息,則可使用 Ctrl-C
來終止運行。
Gogs 默認並無支持一些功能,這些功能須要在構建時明確使用構建標籤(build tags)來支持。
目前使用標籤構建的功能以下:
sqlite3
:SQLite3 數據庫支持pam
:PAM 受權認證支持cert
:生成自定義證書支持miniwinsvc
:Windows 服務內置支持(或者您可使用 NSSM 來建立服務)例如,您須要支持以上全部功能,則須要先刪除 $GOPATH/pkg/{GOOS_GOARCH}/github.com/gogs/gogs
目錄,而後執行如下命令:
$ go get -u -tags "sqlite pam cert" github.com/gogs/gogs $ cd $GOPATH/src/github.com/gogs/gogs $ go build -tags "sqlite pam cert"
安裝完成後可繼續參照 配置與運行。
如下均爲第三方提供,後果自負!
/etc/default/gogs
)。能能夠到 Arch Linux Wiki entry 查看完整說明。
默認配置都保存在 conf/app.ini
,您 永遠不須要 編輯它。該文件從 v0.6.0
版本開始被嵌入到二進制中。
那麼,在不容許修改默認配置文件 conf/app.ini
的狀況下,怎麼才能自定義配置呢?很簡單,只要建立 custom/conf/app.ini
就能夠!在 custom/conf/app.ini
文件中修改相應選項的值便可。
例如,須要改變倉庫根目錄的路徑:
[repository] ROOT = /home/jiahuachen/gogs-repositories
固然,您也能夠修改數據庫配置:
[database] PASSWD = root
乍一看,這麼作有些複雜,可是這麼作能夠有效地保護您的自定義配置不被破壞:
您須要在 custom/conf/app.ini
文件中將選項 security -> INSTALL_LOCK
的值設置爲 true
。
您可使用超能的 make
命令:
$ make $ ./gogs web
腳本均放置在 scripts 目錄,但請在倉庫根目錄執行它們
./gogs web
/install
來完成首次運行的配置工做本手冊會詳盡地描述有關 Gogs 配置文件的選項,幫助您更好地理解和使用 Gogs。
請記住,任何修改都是發生在 custom/conf/app.ini
自定義配置文件中,該文件的具體位置與您的設置有關。
完整的默認設置能夠經過 app.ini 文件查看。若是您看到相似 %(X)s
字符,這是由 ini 提供的遞歸取值的特性。
名稱 | 描述 |
---|---|
APP_NAME |
應用名稱,能夠改爲您的組織或公司名稱 |
RUN_USER |
運行應用的用戶名稱,咱們建議您使用 git ,但若是您在我的計算機上運行 Gogs,請修改成您的系統用戶名稱。若是沒有正確設置這個值,極可能致使您的應用崩潰 |
RUN_MODE |
鑑於性能和其它考慮,建議在部署環境下修改成 prod 模式。在您完成安裝操做時,該值也會被設置爲 prod |
server
)名稱 | 描述 |
---|---|
PROTOCOL |
http 或 https |
DOMAIN |
服務器域名 |
ROOT_URL |
公開的完整 URL 路徑 |
HTTP_ADDR |
應用 HTTP 監聽地址 |
HTTP_PORT |
應用 HTTP 監聽端口號 |
UNIX_SOCKET_PERMISSION |
Unix 套接字文件的權限 |
LOCAL_ROOT_URL |
用於 Gogs 工做進程(如:SSH)回訪應用的本地(DMZ)URL,通常狀況下請保持默認值,除非您的 SSH 服務器節點與 HTTP 並非同一個節點入口 |
DISABLE_SSH |
當 SSH 功能不可用時能夠禁用 |
START_SSH_SERVER |
啓用該選項來啓動內置 SSH 服務器 |
SSH_DOMAIN |
容許公用網絡訪問 SSH 的域名 |
SSH_PORT |
SSH 端口號,若是不爲 22 的話能夠在此修改 |
SSH_LISTEN_HOST |
內置 SSH 服務器監聽的地址 |
SSH_LISTEN_PORT |
內置 SSH 服務器監聽的端口 |
SSH_ROOT_PATH |
SSH 根目錄,通常爲 ~/.ssh ,但必須填寫爲 /home/git/.ssh |
REWRITE_AUTHORIZED_KEYS_AT_START |
激活該選項以在應用啓動時自動重寫 authorized_keys 文件,該選項在使用內置 SSH 服務器時將會被自動禁用 |
SSH_KEY_TEST_PATH |
用於測試 SSH 公鑰的臨時目錄 |
SSH_KEYGEN_PATH |
ssh-keygen 程序的路徑,默認爲 ssh-keygen 即經過系統路徑查找 |
MINIMUM_KEY_SIZE_CHECK |
指定不一樣類型的公鑰的最小密鑰大小 |
OFFLINE_MODE |
激活該選項來禁止從 CDN 獲取靜態資源,同時 Gravatar 服務也將被自動禁用 |
DISABLE_ROUTER_LOG |
激活該選項來禁止打印路由日誌 |
CERT_FILE |
HTTPS 受權文件路徑 |
KEY_FILE |
HTTPS 的密鑰文件路徑 |
STATIC_ROOT_PATH |
模板文件和靜態文件的上級目錄,默認爲應用二進制所在的位置 |
APP_DATA_PATH |
應用內部數據的存放目錄 |
ENABLE_GZIP |
激活該選項來啓用應用級別 GZIP 支持 |
LANDING_PAGE |
未登陸用戶的默認首頁,能夠是 home 或 explore (探索頁) |
repository
)名稱 | 描述 |
---|---|
ROOT |
用戶倉庫存儲根目錄,必須爲絕對路徑,默認爲 ~/<user name>/gogs-repositories |
SCRIPT_TYPE |
系統腳本類型,通常狀況下均爲 bash ,但有些用戶反應只能使用 sh |
ANSI_CHARSET |
當遇到沒法識別的字符集時使用的默認字符集 |
FORCE_PRIVATE |
強制要求全部新建的倉庫都是私有的 |
MAX_CREATION_LIMIT |
全局默認的每一個用戶可建立建立倉庫上限,-1 表示無限制 |
PREFERRED_LICENSES |
建議用戶首選的受權類型 |
DISABLE_HTTP_GIT |
激活該選項來禁止用戶經過 HTTP 對 Git 倉庫進行交互操做,即用戶只能經過 SSH 操做 |
ENABLE_LOCAL_PATH_MIGRATION |
激活該選項來啓用本地路徑遷移倉庫功能。啓動後默認只有管理員可使用,普通用戶必須經由管理員受權 |
ENABLE_RAW_FILE_RENDER_MODE |
激活該選項來啓用在查看原始數據時對頁面進行真實渲染,例如渲染實際的 HTML 頁面,有潛在安全隱患 |
repository.editor
)名稱 | 描述 |
---|---|
LINE_WRAP_EXTENSIONS |
須要顯示爲行包裝的文件名後綴,經過逗號分隔。若是是無後綴名的文件,則單獨放置一個逗號,例如:.txt, |
repository.upload
)名稱 | 描述 |
---|---|
ENABLED |
激活該選項來啓用倉庫文件上傳功能 |
TEMP_PATH |
文件上傳的臨時存放目錄 |
ALLOWED_TYPES |
容許上傳的文件類型(例如:」image/jpeg|image/png」),留空表示容許上傳任意類型的文件 |
FILE_MAX_SIZE |
單個上傳的文件的最大致積,以 MB 爲單位 |
MAX_FILES |
單次同時上傳的最多文件個數 |
release.attachment
)名稱 | 描述 |
---|---|
ENABLED |
激活該選項來啓用版本發佈附件功能 |
PATH |
存放附件的路徑 |
ALLOWED_TYPES |
容許上傳的 MIME 類型,例如 「image/jpeg|image/png」,使用 */* 容許全部類型的文件 |
MAX_SIZE |
最大容許上傳的附件體積,單位爲 MB,例如 32 |
MAX_FILES |
最大容許一次性上傳的附件個數,例如 10 |
markdown
)名稱 | 描述 |
---|---|
ENABLE_HARD_LINE_BREAK |
指示是否啓用硬性換行擴展 |
CUSTOM_URL_SCHEMES |
容許被解析爲連接的自定義 URL 方案,例如 git (用於 git:// )和magnet (用於 magnet:// ) |
FILE_EXTENSIONS |
須要被渲染爲 Markdown 格式的文件名後綴,經過逗號分隔。若是是無後綴名的文件,則單獨放置一個逗號,例如:.markdown, |
smartypants
)名稱 | 描述 |
---|---|
ENABLED |
指示是否啓用 Smartypants 擴展 |
http
)名稱 | 描述 |
---|---|
ACCESS_CONTROL_ALLOW_ORIGIN |
頭信息 Access-Control-Allow-Origin 的自定義值,默認爲空,即不響應此頭信息 |
database
)名稱 | 描述 |
---|---|
DB_TYPE |
數據庫類型,能夠是 mysql 、postgres 、mssql 或 sqlite3 |
HOST |
數據庫主機地址與端口 |
NAME |
數據庫名稱 |
USER |
數據庫用戶名 |
PASSWD |
數據庫用戶密碼 |
SSL_MODE |
僅限 PostgreSQL 使用 |
PATH |
僅限 SQLite3 使用,數據庫文件路徑 |
admin
)名稱 | 描述 |
---|---|
DISABLE_REGULAR_ORG_CREATION |
激活該選項來禁止普通用戶(非管理員)建立組織 |
security
)名稱 | 描述 |
---|---|
INSTALL_LOCK |
用於指示是否容許訪問安裝頁面(該頁面能夠設置管理員賬號,所以該選項很是重要) |
SECRET_KEY |
全局的加密密鑰,務必修改該值以確保您的服務器安全(會在每次安裝時自動生成隨機字符串) |
LOGIN_REMEMBER_DAYS |
記住登陸的天數 |
COOKIE_USERNAME |
記錄用戶名的 Cookie 名稱 |
COOKIE_REMEMBER_NAME |
記錄用戶自動登陸信息的 Cookie 名稱 |
REVERSE_PROXY_AUTHENTICATION_USER |
反向代理認證用戶的 Header 字段名 |
service
)名稱 | 描述 |
---|---|
ACTIVE_CODE_LIVE_MINUTES |
激活碼的有效期,單位爲分鐘 |
RESET_PASSWD_CODE_LIVE_MINUTES |
重置密碼的有效期,單位爲分鐘 |
REGISTER_EMAIL_CONFIRM |
激活該選項來要求註冊用戶必須驗證郵箱,要求已啓用 Mailer |
DISABLE_REGISTRATION |
激活該選項來禁止用戶註冊功能,只能由管理員建立賬號 |
SHOW_REGISTRATION_BUTTON |
用於指示是否顯示註冊按鈕 |
REQUIRE_SIGNIN_VIEW |
激活該選項來要求用戶必須登陸才能瀏覽任何頁面 |
ENABLE_CACHE_AVATAR |
激活該選項來緩存 Gravatar 的頭像 |
ENABLE_NOTIFY_MAIL |
激活該選項來發送通知郵件給關注者,例如建立 issue 時,要求已啓用 Mailer |
ENABLE_REVERSE_PROXY_AUTHENTICATION |
激活該選項來開啓反向代理用戶認證,請從 #165 瞭解更多信息 |
ENABLE_REVERSE_PROXY_AUTO_REGISTRATION |
激活該選項來開啓反向代理用戶認證的自動註冊功能 |
DISABLE_MINIMUM_KEY_SIZE_CHECK |
激活該選項來禁止檢查響應類型的密鑰最小長度 |
ENABLE_CAPTCHA |
激活該選項以在用戶註冊時要求輸入驗證碼 |
webhook
)名稱 | 描述 |
---|---|
TYPES |
啓動的 Web 鉤子類型,能夠是 gogs 、slack 、discord 或dingtalk |
QUEUE_LENGTH |
Web鉤子隊列長度,若是發現部分Webhook未能成功觸發,可考慮增長該值 |
DELIVER_TIMEOUT |
發送通知的超時時間,以秒爲單位 |
SKIP_TLS_VERIFY |
指示是否容許向具備非信任證書的地址發送通知 |
PAGING_NUM |
Web 鉤子歷史頁面每頁顯示記錄條數 |
mailer
)名稱 | 描述 |
---|---|
ENABLED |
啓用該選項以激活郵件服務 |
SUBJECT_PREFIX |
郵件標題的前綴 |
HOST |
SMTP 主機地址與端口 |
DISABLE_HELO |
禁用 HELO 操做 |
HELO_HOSTNAME |
HELO 操做的自定義主機名 |
SKIP_VERIFY |
不驗證自簽發證書的有效性 |
FROM |
郵箱的來自地址,遵循 RFC 5322規範,能夠是一個單純的郵箱地址或者 "名字" <email@example.com> 的形式 |
USER |
郵箱用戶名 |
PASSWD |
郵箱密碼 |
USE_PLAIN_TEXT |
使用 text/plain 做爲郵件內容格式 |
備註:Gogs 僅支持使用 STARTTLS 的 SMTP 協議
cache
)名稱 | 描述 |
---|---|
ADAPTER |
緩存引擎適配器,能夠爲 memory 、redis 或 memcache 。若是您使用 redis 或 memcache ,請確保使用 -tags 選項從新構建全部依賴,例如:go build -tags='redis' |
INTERVAL |
僅限內存緩存使用,GC 週期,單位爲秒 |
HOST |
僅限 redis 和 memcache 使用,主機地址和端口號 |
- | Redis:network=tcp,addr=127.0.0.1:6379,password=macaron,db=0,pool_size=100,idle_timeout=180 |
- | Memache:127.0.0.1:9090;127.0.0.1:9091 |
session
)名稱 | 描述 |
---|---|
PROVIDER |
Session 引擎提供者,能夠是 memory 、file 、redis 或 mysql |
PROVIDER_CONFIG |
若是提供者爲 file,則爲文件根目錄;若是爲其它提供者,則爲主機地址和端口號 |
COOKIE_SECURE |
激活該選項以要求全部 session 操做均經過 HTTPS |
GC_INTERVAL_TIME |
GC 週期,單位爲秒 |
picture
)名稱 | 描述 |
---|---|
AVATAR_UPLOAD_PATH |
存放用戶上傳頭像的目錄 |
GRAVATAR_SOURCE |
能夠是 gravatar 、duoshuo 或任何 URL,例如:http://cn.gravatar.com/avatar/ |
DISABLE_GRAVATAR |
激活該選項來僅使用本地頭像 |
ENABLE_FEDERATED_AVATAR |
激活該選項來啓用 Federated 頭像服務(http://www.libravatar.org),當 Gravatar 被禁用時此選項沒法生效 |
attachment
)名稱 | 描述 |
---|---|
ENABLED |
激活該選項以容許用戶上傳附件 |
PATH |
存放附件的路徑 |
ALLOWED_TYPES |
容許上傳的 MIME 類型,例如 「image/jpeg|image/png」,使用 */* 容許全部類型的文件 |
MAX_SIZE |
最大容許上傳的附件體積,單位爲 MB,例如 4 |
MAX_FILES |
最大容許一次性上傳的附件個數,例如 5 |
time
)名稱 | 描述 |
---|---|
FORMAT |
指定日期的輸出格式,默認爲 RFC1123,其它可選的格式爲 ANSIC、UnixDate、RubyDate、RFC82二、RFC822Z、RFC850、RFC112三、RFC1123Z、RFC333九、RFC3339Nano、Kitchen、Stamp、StampMilli、StampMicro 和 StampNano。訪問 http://golang.org/pkg/time/#pkg-constants 查看詳情 |
log
)名稱 | 描述 |
---|---|
ROOT_PATH |
日誌文件的根目錄 |
MODE |
日誌記錄模式,默認爲 console 。若是想要開啓多模式,請使用逗號分割,例如:"console, file" |
LEVEL |
基本日誌級別,默認爲 Trace |
log.console
)名稱 | 描述 |
---|---|
LEVEL |
控制檯日誌級別,留空則繼承父值 |
log.file
)名稱 | 描述 |
---|---|
LEVEL |
文件日誌級別,留空則繼承父值 |
LOG_ROTATE |
激活該選項以啓用日誌文件自轉 |
DAILY_ROTATE |
激活該選項以進行平常自轉 |
MAX_SIZE_SHIFT |
自轉須要達到的最大文件體積,使用位左移,默認爲 28 即 1 << 28,表示 256MB |
MAX_LINES |
自轉須要達到的最大文件行數,默認爲 1000000 |
MAX_DAYS |
保留自轉文件的最長期限,默認爲 7 天后刪除 |
log.slack
)名稱 | 描述 |
---|---|
LEVEL |
Slack 日誌級別,留空則繼承父值 |
URL |
Slack Web 鉤子 URL |
log.discord
)名稱 | 描述 |
---|---|
LEVEL |
Discord 日誌級別,留空則繼承父值 |
URL |
Discord Web 鉤子 URL |
USERNAME |
在 Web 鉤子中顯示的用戶名 |
cron
)名稱 | 描述 |
---|---|
ENABLED |
激活該選項以容許週期性運行 Cron 任務 |
RUN_AT_START |
激活該選項以容許在啓動時執行 Cron 任務 |
cron.update_mirrors
)名稱 | 描述 |
---|---|
SCHEDULE |
定時更新倉庫鏡像的 Cron 語法,例如:@every 1h |
cron.repo_health_check
)名稱 | 描述 |
---|---|
SCHEDULE |
定時進行倉庫健康檢查的 Cron 語法,例如:@every 24h |
TIMEOUT |
倉庫健康檢查超時的定義語法,例如:60s |
ARGS |
git fsck 命令的參數,例如:--unreachable --tags |
cron.check_repo_stats
)名稱 | 描述 |
---|---|
RUN_AT_START |
激活該選項以在啓動時執行倉庫統計檢查 |
SCHEDULE |
定時進行倉庫統計檢查的 Cron 語法,例如:@every 24h |
cron.repo_archive_cleanup
)名稱 | 描述 |
---|---|
RUN_AT_START |
激活該選項以在啓動時執行倉庫歸檔清理 |
SCHEDULE |
定時進行倉庫歸檔清理的 Cron 語法,例如:@every 24h |
OLDER_THAN |
倉庫歸檔的文件有效期,過時的歸檔將被清理,例如:24h |
git
)名稱 | 描述 |
---|---|
DISABLE_DIFF_HIGHLIGHT |
激活該選項以禁用行內差別高亮 |
MAX_GIT_DIFF_LINES |
差別對比頁面單個文件顯示的最大行數 |
MAX_GIT_DIFF_LINE_CHARACTERS |
差別對比頁面單行顯示的最大字符數 |
MAX_GIT_DIFF_FILES |
差別對比頁面文件顯示的最多個數 |
GC_ARGS |
git gc 命令的參數,例如:--aggressive --auto |
git.timeout
)名稱 | 描述 |
---|---|
MIGRATE |
倉庫遷移操做超時,默認爲 600 秒 |
MIRROR |
倉庫鏡像同步操做超時,默認爲 300 秒 |
CLONE |
倉庫克隆操做超時,默認爲 300 秒 |
PULL |
倉庫拉取操做超時,默認爲 300 秒 |
GC |
倉庫垃圾回收操做超時,默認爲 60 秒 |
ui
)名稱 | 描述 |
---|---|
EXPLORE_PAGING_NUM |
探索頁面每頁顯示倉庫的數量 |
ISSUE_PAGING_NUM |
每頁顯示工單(Issue)的數量(應用到全部以列表形式顯示工單的頁面) |
FEED_MAX_COMMIT_NUM |
一條最新活動中顯示代碼提交(Commit)的最大數量 |
THEME_COLOR_META_TAG |
被用於 Android >= 5.0 版本 「theme-color」 標記的值,無效的值將被忽略並使用默認值(查看詳情) |
MAX_DISPLAY_FILE_SIZE |
顯示到頁面的最大文件體積(Byte) |
ui.admin
)名稱 | 描述 |
---|---|
USER_PAGING_NUM |
用戶管理頁面每頁顯示記錄條數 |
REPO_PAGING_NUM |
倉庫管理頁面每頁顯示記錄條數 |
NOTICE_PAGING_NUM |
系統提示管理頁面每頁顯示記錄條數 |
ORG_PAGING_NUM |
組織管理頁面每頁顯示記錄條數 |
prometheus
)名稱 | 描述 |
---|---|
ENABLED |
激活該選項以啓用 Prometheus 監控信息,默認爲 true |
ENABLE_BASIC_AUTH |
激活該選項以啓用 HTTP 基本認證保護監控信息數據,默認爲 false |
BASIC_AUTH_USERNAME |
HTTP 基本認證的用戶名 |
BASIC_AUTH_PASSWORD |
HTTP 基本認證的密碼 |
other
)名稱 | 描述 |
---|---|
SHOW_FOOTER_BRANDING |
激活該選項以在頁腳顯示 Gogs 推廣信息 |
SHOW_FOOTER_VERSION |
激活該選項以在頁腳顯示 Gogs 版本信息 |
SHOW_FOOTER_TEMPLATE_LOAD_TIME |
激活該選項以在頁腳顯示 Gogs 模板加載時間 |