centos6.5 安装Gogs

单刀恐惧者 · · 1643 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

安装Gogs之前先安装好mysql,nginx

创建git用户

gogs默认以git用户运行

  1. 新建git用户
    adduser git

  2. 以git用户登录
    su git

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

安装Go语言运行环境

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

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

    su git
    cd ~
  2. 写入环境变量

    export GOROOT=$HOME/go
    export GOARCH=386   #系统位数,386表示32位系统,amd64表示64位系统。
    export GOOS=linux   #系统类型
    export PATH=$PATH:$GOROOT/bin
  3. 使环境变量生效
    source ~/.bashrc

安装Go

  1. 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 $GOROOT

    Go语言运行环境就安装完成了

  2. 测试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
    create user 'gogs'@'localhost' identified by '密码';
    grant all privileges on gogs.* to 'gogs'@'localhost';
    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

  1. 手动开启gogs

    su git
    cd ~/gogs
    ./gogs web
  2. 守护进程开启
    nohup ./gogs web &

  3. 加入服务运行
    将 /home/git/gogs/scripts/init/centos/gogs复制到/etc/init.d中
    root用户下 service gogs stop|start|restart|reload|status


Gogs开启后就可以使用 http://ip:3000 访问 或者使用上面nginx配置的ip或域名访问
如需要通过3000端口访问请注意在防火墙中开启端口

配置说明

配置文件位于 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 相关的选项

设置仓库和站点目录同步

  1. 切换到git用户
    su git
    cd /www
    mkdir git-repo
    cd git-repo
    git clone /home/git/gogs-repositories/user/demo.git
  2. 编辑 /home/git/gogs-repositories/user/demo.git/hooks/post-receive
    !/bin/sh  
    export LANG=zh_CN.UTF-8  
    cd /www/git-repo/demo
    unset GIT_DIR //重要是这里..  
    git pull origin master
    chmod +x post-receive

其他

  1. 为git用户设置密码
    passwd git

  2. 生成SSH密钥
    设置全局的name和email

    git config --global user.name "xxx"
    git config --global user.email "xxx"

    或在仓库目录下设置该仓库的name和email

    git config user.name x1
    git config user.email x1@xx.com

    ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

注意

  • 如果本地 push到远程时提示没有权限
  • 可能是 gogs/data 和 gogs/data/sessions 目录为root权限 导致用户新建的仓库的权限也为root

参考文章
https://mynook.info/blog/post/host-your-own-git-server-using-gogs
http://www.tuicool.com/articles/bYBnu2V https://gogs.io/docs/installation/install_from_binary


有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:单刀恐惧者

查看原文:centos6.5 安装Gogs

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

1643 次点击  
加入收藏 微博
上一篇:Go接口详解
下一篇:golang(tao框架)
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传