Linux安装gogs搭建Git仓库

安装Gogs之前先安装好mysql,nginx(nginx用作反向代理)

一.gogs默认以git用户运行

  • 新建git用户

adduser git
  • 以git用户登录

su git

cd 到git用户主目录 /home/git 新建.ssh文件夹 权限设置为0755

二.安装Go

  • Go语言官网 可以获取最新的二进制安装包

wget https://storage.googleapis.com/golang/go1.5.2.linux-386.tar.gz
tar xzvf go1.5.2.linux-386.tar.gz
mv go /usr/local/lib/go
  • 安装Go语言运行环境

Gogs由Go语言编写,运行时需要安装Golang运行环境
如果系统中其他程序并不需要运行Go语言程序,可以只为上文创建的git用户配置运行环境,也可以选择配置全系统所有用户的Go语言运行环境

1. 配置环境变量,切换到用户git,并只为该用户配置Go运行环境

su git
cd ~

 2.写入环境变量
  vim /etc/profile最后一行加入

export PATH=$PATH:/usr/local/lib/go/bin

 3.使环境变量生效

source /etc/profile

4.测试Golang是否安装成功

go env

三.安装 Gogs

1.下载预编译的二进制安装包
安装包各版本地址:https://gogs.io/docs/installation/install_from_binary

su git
cd ~
wget -c http://7d9nal.com2.z0.glb.qiniucdn.com/gogs_v0.8.10_linux_386.tar.gz
tar zxf gogs_v0.8.10_linux_386.tar.gz

2.建立数据库
/home/git/gogs/scripts/mysql.sql是数据库初始化文件
提示:数据库必须支持InnoDB引擎

cd gogs
mysql -u root -p < scripts/mysql.sql #(需输入密码)即可初始化好数据库

3.登录 MySQL 创建一个新用户 gogs,并将数据库 gogs 的所有权限都赋予该用户

mysql -u root -p
grant all privileges on gogs.* to 'gogs'@'localhost' identified by '密码';
flush privileges;
exit;

4.编辑 gogs/scripts/supervisor/gogs 修改如下

directory=/home/git/gogs/
command=/home/git/gogs/gogs web

四.nginx 反向代理

1. http

server {
    server_name 域名或IP;
    listen 80;
    location / { # 如果你希望通过子路径访问,此处修改为子路径,注意以 / 开头并以 / 结束
        proxy_pass http://127.0.0.1:3000/;
    }
}

2. https 

server {
    listen 443 ssl;
    server_name 域名或IP;
    ssl_certificate /path/to/gogs.io.unified.crt;
    ssl_certificate_key /path/to/gogs.io-decrypted.key;
    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://localhost:3000 $request_uri;
    }
}

五.配置详解

配置文件位于 Gogs 目录的 custom/conf/app.ini,是 INI 格式的文本文件。详细的配置解释和默认值请参考 官方文档 ,其中关键的配置大概是下面这些。

  • RUN_USER默认是 git,指定 Gogs 以哪个用户运行
  • ROOT所有仓库的存储根路径
  • PROTOCOL如果你使用 nginx 反代的话请使用 http,如果直接裸跑对外服务的话随意
  • DOMAIN域名。会影响 SSH clone 地址
  • ROOT_URL完整的根路径,会影响访问时页面上链接的指向,以及 HTTP clone 的地址
  • HTTP_ADDR监听地址,使用 nginx 的话建议 127.0.0.1 ,否则 0.0.0.0 也可以
  • HTTP_PORT监听端口,默认 3000
  • INSTALL_LOCK锁定安装页面
  • Mailer 相关的选项

其中,Mailer 可以使用 Mailgun 的免费邮件发送服务,将 Mailgun 的 SMTP 配置填入到配置中就好。

六.运行gogs

手动开启gogs

su git
cd ~/gogs
./gogs web

加入服务运行

将 /home/git/gogs/scripts/init/debian/gogs复制到/etc/init.d中
root用户下

service gogs stop|start|restart|reload|status

猜你喜欢

转载自blog.csdn.net/qq_21137441/article/details/122327996