公司局域网用gogs搭建git服务器实践

马克飞 3月前 229

刚创业公司,技术部也就个位数颗人,我想在公司局域网搭建个git服务器,看了很久基本就是gitlab推荐的多;之前我也写过docker里装gitlab的文章;但是我觉得gitlab太重,很多我们这个小团队是用不到的,终于还是发现了gogs,本文就记录下CentOS7下面gogs的安装搭建配置.

一、准备工作

二、安装

  • 远程连接到局域网的服务器主机命令:
ssh root@192.168.1.3 //回车后输入密码,@后面的IP根据自己情况替换
  • 进入到下载了gogs二进制包的目录,因为上面我用了root的帐户,官方建议不要用root帐户,所以我用已经存在的www帐户,当然也可以当场新建一个帐户;切换到到www帐户命令:
su www
  • 这里还会有一个问题,这个二进制包因为都是root操作,所以权限都是root的,你切到www后,会没权限操作,可以ll查看下:
[www@localhost git]$ ll
总用量 25092
-rw-r--r--. 1 root root 25690601 2月   6 13:43 gogs_0.11.91_linux_amd64.tar.gz

​ 可以看到,我的就是root的;我们可以改下权限和所有者;命令如下:

chown -R www:www git //git目录的所有者改成www(gogs的二进制包我下在了www下面的git目录里)

​ 我们再ll看下:

[www@localhost git]$ ll
总用量 25092
-rw-r--r--. 1 www www 25690601 2月   6 13:43 gogs_0.11.91_linux_amd64.tar.gz

​ 所有者已经是www了;

  • 用www用户解压二进制包;命令如下:
tar xvf gogs_0.11.91_linux_amd64.tar.gz

​ 一顿刷屏之后,发现多了个gogs目录;

  • 进入gogs目录,执行如下命令:
./gogs web

​ 结果如下:

[www@localhost gogs]$ ./gogs web
2020/02/06 14:12:11 [ WARN] Custom config '/home/www/git/gogs/custom/conf/app.ini' not found, ignore this if you're running first time
2020/02/06 14:12:11 [TRACE] Custom path: /home/www/git/gogs/custom
2020/02/06 14:12:11 [TRACE] Log path: /home/www/git/gogs/log
2020/02/06 14:12:11 [TRACE] Log Mode: Console (Trace)
2020/02/06 14:12:11 [ INFO] Gogs 0.11.91.0811
2020/02/06 14:12:11 [ INFO] Cache Service Enabled
2020/02/06 14:12:11 [ INFO] Session Service Enabled
2020/02/06 14:12:11 [ INFO] SQLite3 Supported
2020/02/06 14:12:11 [ INFO] Run Mode: Development
2020/02/06 14:12:11 [ INFO] Listen: http://0.0.0.0:3000

​ 说明服务已经启动了,赶紧按照提示在浏览器中打开 http://192.168.1.3:3000 看看;我发现我不行,被拒绝了;网上有很多种说法导致;我结合我的情况,想到应该是防火墙或者3000端口没开放;

  • 暴力操作:直接关防火墙;命令如下:
    • 查看防火墙状态
firewall-cmd --state

​ 结果如下:

[root@localhost git]# firewall-cmd --state
running

​ 果然 runing,关了它;

    • 停止防火墙
systemctl stop firewalld.service
    • 也可以禁止防火墙开机启动
systemctl disable firewalld.service
    • 关闭selinux

    修改/etc/selinux/config文件;将SELINUX=enforcing改为SELINUX=disabled

vim /etc/selinux/config
  • 推荐操作-开放3000端口就完事了;
    • 查看已开放的端口命令:
firewall-cmd --list-ports

​ 我结果显示为空,那就是没有开放的端口;

    • 开放端口命令:
firewall-cmd --zone=public --add-port=3000/tcp --permanent

​ 命令含义:

​ --zone #作用域

​ --add-port=80/tcp #添加端口,格式为:端口/通讯协议

​ --permanent #永久生效,没有此参数重启后失效

​ 80端口以后肯定也要用,我这里开放了80和3000两个端口;执行完后查看结果如下:

[root@localhost git]# firewall-cmd --list-ports
80/tcp 3000/tcp
    • 最后重启下防火墙;命令如下:
firewall-cmd --reload
  • 现在去浏览器打开 http://192.168.1.3:3000 可以看到,已经可以打开安装配置界面了;结果如下;

三、结果

今天就到这吧-_-!!!

最新回复 (2)
  • 马克飞 3月前
    2

    补充: 刚点了下安装,发现没有git会报错缺少一个什么的所以需要先安装git,命令如下:

    yum install git

    一阵刷屏,有询问选y后,完成;再点安装就可以了

  • 马克飞 3月前
    3

    继续补充:

    三、启用守护线程执行

    ​ 以上我们已经安装成功了gogs了,但是还有一个问题; 当我们把命令行关闭或者终端关闭的时候,gogs的服务就停止了;接下来我们就用官方给出的守护线程进行优化.

    • 复制脚本到系统system下;命令如下:
    cp scripts/systemd/gogs.service /etc/systemd/system/
    • 修改复制过去的gogs.service脚本文件;因为我的环境和路径及用户与官方定的不一样,所以需要修改;如果是和官方一样的就可以跳过这一步;打开官方的内容如下:
    [Unit]
    Description=Gogs
    After=syslog.target
    After=network.target
    After=mariadb.service mysqld.service postgresql.service memcached.service redis.service
    
    [Service]
    # Modify these two values and uncomment them if you have
    # repos with lots of files and get an HTTP error 500 because
    # of that
    ###
    #LimitMEMLOCK=infinity
    #LimitNOFILE=65535
    Type=simple
    User=git
    Group=git
    WorkingDirectory=/home/git/gogs
    ExecStart=/home/git/gogs/gogs web
    Restart=always
    Environment=USER=git HOME=/home/git
    
    # Some distributions may not support these hardening directives. If you cannot start the service due
    # to an unknown option, comment out the ones not supported by your version of systemd.
    ProtectSystem=full
    PrivateDevices=yes
    PrivateTmp=yes
    NoNewPrivileges=true
    
    [Install]
    WantedBy=multi-user.target

    ​ 修改后的符合我服务器环境的内容如下:

    [Unit]
    Description=Gogs
    After=syslog.target
    After=network.target
    After=mariadb.service mysqld.service postgresql.service memcached.service redis.service
    
    [Service]
    # Modify these two values and uncomment them if you have
    # repos with lots of files and get an HTTP error 500 because
    # of that
    ###
    #LimitMEMLOCK=infinity
    #LimitNOFILE=65535
    Type=simple
    User=www
    Group=www
    WorkingDirectory=/home/www/git/gogs
    ExecStart=/home/www/git/gogs/gogs web
    Restart=always
    Environment=USER=www HOME=/home/www
    
    # Some distributions may not support these hardening directives. If you cannot start the service due
    # to an unknown option, comment out the ones not supported by your version of systemd.
    ProtectSystem=full
    PrivateDevices=yes
    PrivateTmp=yes
    NoNewPrivileges=true
    
    [Install]
    WantedBy=multi-user.target
    • 修改好后;执行它:
    systemctl start gogs.service
    • 如果需要开机启动的话执行:
    systemctl enable gogs.service
    • 查看服务运行状态
    systemctl status gogs.service

    ​ 成功后我们可以看到:

    [root@localhost system]# systemctl status gogs.service
    ● gogs.service - Gogs
       Loaded: loaded (/etc/systemd/system/gogs.service; disabled; vendor preset: disabled)
       Active: active (running) since 四 2020-02-06 22:09:30 CST; 4s ago
     Main PID: 1854 (gogs)
        Tasks: 10
       CGroup: /system.slice/gogs.service
               └─1854 /home/www/git/gogs/gogs web
    
    2月 06 22:09:30 localhost.localdomain systemd[1]: Started Gogs.
    2月 06 22:09:30 localhost.localdomain gogs[1854]: 2020/02/06 22:09:30 [TRACE] Custom path: /home/www/git/gogs/custom
    2月 06 22:09:30 localhost.localdomain gogs[1854]: 2020/02/06 22:09:30 [TRACE] Log path: /home/www/git/log
    2月 06 22:09:30 localhost.localdomain gogs[1854]: 2020/02/06 22:09:30 [ INFO] 码池 0.11.91.0811
    2月 06 22:09:30 localhost.localdomain gogs[1854]: 2020/02/06 22:09:30 [ INFO] Cache Service Enabled
    2月 06 22:09:30 localhost.localdomain gogs[1854]: 2020/02/06 22:09:30 [ INFO] Session Service Enabled
    2月 06 22:09:30 localhost.localdomain gogs[1854]: 2020/02/06 22:09:30 [ INFO] Git Version: 1.8.3.1
    2月 06 22:09:30 localhost.localdomain gogs[1854]: 2020/02/06 22:09:30 [ INFO] SQLite3 Supported
    2月 06 22:09:30 localhost.localdomain gogs[1854]: 2020/02/06 22:09:30 [ INFO] Run Mode: Production
    2月 06 22:09:31 localhost.localdomain gogs[1854]: 2020/02/06 22:09:31 [ INFO] Listen: http://0.0.0.0:3000

    最后我们退出终端;退出远程连接;去浏览器打开 http://192.168.1.3:3000,

    完美打开如下图:

    • 都市菜鸟网
      4
        立即登录 立即注册 
返回