快速搭建輕量級git服務Gogs

準備

  • centos7 64位
  • nginx
  • git
  • mysql/PostgreSQL/MSSQL(非必須)

開始

效果預覽:gitfan.clubmysql

建立並切換git用戶

adduser git
passwd git # 輸入密碼
su git
複製代碼

下載Gogs二級制包

訪問官網下載最新編譯好的二進制包,我的以爲這是最省事最方便的方法。linux

wget http://7d9nal.com2.z0.glb.qiniucdn.com/0.11.34/linux_amd64.tar.gz
tar zxvf linux_amd64.tar.gz
cd gogs
./gogs web -port 10086 # 啓動應用,指定端口,也能夠不指定用默認80
複製代碼

初始化配置

瀏覽器訪問上一步啓動的地址:http://localhost:10086/nginx

說明

  1. 數據庫我選擇應用自帶的輕量級數據庫SQLite3,可根據實際狀況選擇
  2. 若是有部署上線打算,能夠把localhost部分修改爲你的域名
  3. 郵件服務我選用了gmail的smtp發送服務,有條件的可使用本身搭建郵件服務器
  4. 若是你點了【當即安裝】想修改配置,能夠修改用戶配置文件./custom/conf/app.ini後重啓應用

後臺進程

nohup ./gogs web >> /your/path/to/save/nohup.out 2>&1 &
複製代碼

這時,你已經基本搭建好Gogs,若是局域網內使用能夠到此爲止,但若是須要部署上線,請繼續往下看。git

部署外網

假設你已經配置好DNS解析。github

綁定域名

執行命令vi ./custom/conf/app.ini,找到[server]內容:web

[server]
DOMAIN           = gitfan.club
HTTP_PORT        = 10086
ROOT_URL         = http://gitfan.club/
DISABLE_SSH      = false
SSH_PORT         = 22
START_SSH_SERVER = true
OFFLINE_MODE     = false
複製代碼

nginx配置

/etc/nginx/conf.d/增長gitfan.conf文件,配置如下內容:sql

server {
    server_name gitfan.club;
    listen 80;

    client_max_body_size 5G; # 突破上傳大文件限制

    location / {
        proxy_pass http://localhost:10086;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
    }
}
複製代碼

而後啓動nginx:數據庫

systemctl start nginx.service
複製代碼

這時候已經能夠訪問了。centos

部署升級版

支持https

衆所周知,網站支持https是大勢所趨,如今咱們要把站點升級到https。我採用的是免費的DV證書服務Let's Encrypt,有效期是3個月,過時後須要續簽。瀏覽器

獲取證書

git clone https://github.com/certbot/certbot.git
cd certbot
chmod +x letsencrypt-auto
./letsencrypt-auto certonly --webroot -w /home/git/gogs/public -d gitfan.club
複製代碼

此時,生成的證書存放在/etc/letsencrypt/live/gitfan.club/裏,而後配置nginx監聽443端口。

# /etc/nginx/conf.d/gitfan.conf
server {
    server_name gitfan.club;
    listen 443;
    ssl on;
    ssl_certificate /etc/letsencrypt/live/gitfan.club/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/gitfan.club/privkey.pem;

    client_max_body_size 5G;

    location / {
        proxy_pass http://localhost:10086;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_buffering off;
    }
}
複製代碼

假如須要把www.gitfan.clubgitfan.club都強制跳轉https,須要在gitfan.conf文件增長配置:

server {
    listen      80;
    server_name gitfan.club www.gitfan.club;
    return      301         https://gitfan.club$request_uri;
}
複製代碼

設置防火牆

可能你還須要設置防火牆來增長服務器安全性,centos自帶的firewall-cmd支持設置開放端口:

systemctl start firewalld.service
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
firewall-cmd --list-ports # 查看端口是否設置成功
複製代碼

其餘問題

  1. 若是我想修改頁面模板怎麼辦?

    答:參考這裏,在custom/templates/inject/增長模板文件。

  2. 若是我想中止Gogs服務怎麼辦?

    答:ps -ef|grep gogs找到進程ID,而後kill -9 進程ID

相關文章
相關標籤/搜索