zoukankan      html  css  js  c++  java
  • Centos7 搭建Gogs git服务器

    Centos7 搭建Gogs git服务器

    新建用户

    Gogs 默认以 git 用户运行(你应该也不会想一个能修改 ssh 配置的程序以 root 用户运行吧?)。 运行 sudo adduser git 新建好 git 用户。 su git 以 git 用户登录,到 git 用户的主目录中新建好 .ssh 文件夹。

    下载解包

    我使用的是预编译的二进制包。需要从源码编译的话,请参考一般 Go 语言项目的编译。下载后解包到你喜欢的地方,例如 /usr/share/gogs/ 或者 /home/git/gogs/。文件夹的内容如下。

    [git@centos7 gogs]$ ls
    gogs  LICENSE  log  README.md  README_ZH.md  scripts
    
    

    运行安装

    首先建立好数据库。在 Gogs 目录的 scripts/mysql.sql 文件是数据库初始化文件。执行 mysql -u root -p < scripts/mysql.sql (需要输入密码)即可初始化好数据库。

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

    [git@centos7 scripts]$ mysql -uroot -p
    Enter password: 
    Welcome to the MySQL monitor.  Commands end with ; or g.
    Your MySQL connection id is 5465
    Server version: 5.7.32-log Source distribution
    
    Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
    
    Oracle is a registered trademark of Oracle Corporation and/or its
    affiliates. Other names may be trademarks of their respective
    owners.
    
    Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
    
    mysql> create user 'gogs'@'localhost' identified by '123456';   # 123456是密码  自己修改,尽量不要使用弱口令
     Query OK, 0 rows affected (0.01 sec)
    
    mysql> grant all privileges on gogs.* to 'gogs'@'localhost';
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> exit;
    Bye
    
    

    运行 gogs web 把 Gogs 运行起来,然后访问 http://服务器IP:3000/ 来进行安装,填写好表单之后提交就可以了。 需要注意的是,0.6.9.0903 Beta 版本有个 bug,允许在关闭注册的情况下不添加管理员,这样安装完成之后将没有任何用户可以登录。所以请务必在安装界面指定一个管理员帐号。

    [git@centos7 gogs]$ ./gogs web
    2021/03/10 10:21:40 [ WARN] Custom config "/opt/gogs/custom/conf/app.ini" not found. Ignore this warning if you're running for the first time
    2021/03/10 10:21:40 [TRACE] Log mode: Console (Trace)
    2021/03/10 10:21:40 [ INFO] Gogs 0.12.3
    2021/03/10 10:21:40 [TRACE] Work directory: /opt/gogs
    2021/03/10 10:21:40 [TRACE] Custom path: /opt/gogs/custom
    2021/03/10 10:21:40 [TRACE] Custom config: /opt/gogs/custom/conf/app.ini
    2021/03/10 10:21:40 [TRACE] Log path: /opt/gogs/log
    2021/03/10 10:21:40 [TRACE] Build time: 2020-10-07 03:03:48 UTC
    2021/03/10 10:21:40 [TRACE] Build commit: f0e3cd90f8d7695960eeef2e4e54b2e717302f6c
    2021/03/10 10:21:40 [ INFO] Run mode: Development
    2021/03/10 10:21:40 [ INFO] Listen on http://0.0.0.0:3000
    2021/03/10 10:21:54 [TRACE] Session ID: 677327e4418708e4
    2021/03/10 10:21:54 [TRACE] CSRF Token: jk8lbBz68vfAsz_InopJJzyUugQ6MTYxNTM0MjkxNDk0MTE0MjIyNQ
    2021/03/10 10:21:54 [TRACE] Session ID: 677327e4418708e4
    2021/03/10 10:21:54 [TRACE] CSRF Token: 7M1Hl1MCBWw1WUFkK577Q4LtCQ86MTYxNTM0MjkxNDk1MDczMDk5OQ
    2021/03/10 10:21:54 [TRACE] Template: install
    2021/03/10 10:22:44 [TRACE] Session ID: 677327e4418708e4
    2021/03/10 10:22:44 [TRACE] CSRF Token: n1aPUmfmbvieomcf1aCQfM9x3nI6MTYxNTM0Mjk2NDA2NDIyNDM1MQ
    2021/03/10 10:22:44 [TRACE] Template: install
    2021/03/10 10:25:11 [TRACE] Session ID: 677327e4418708e4
    2021/03/10 10:25:11 [TRACE] CSRF Token: 63qzZCVfoo1ohaXfbDZcYeTTWI46MTYxNTM0MzExMTM1NDAzMDU5MQ
    2021/03/10 10:25:11 [ INFO] 崔安兵的Git服务器 0.12.3
    [git-module] [timeout: 1m0s] git version
    git version 1.8.3.1
    
    2021/03/10 10:25:11 [ INFO] Git config user.name set to Gogs
    2021/03/10 10:25:11 [ INFO] Git config user.email set to gogs@fake.local
    2021/03/10 10:25:11 [ INFO] Run mode: Production
    2021/03/10 10:25:11 [ INFO] First-time run install finished!
    
    

    配置调整

    配置文件位于 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 配置填入到配置中就好。

    nginx 反代

    server {
        server_name 域名或IP;
        listen 80; # 或者 443,如果你使用 HTTPS 的话
        # ssl on; 是否启用加密连接
        # 如果你使用 HTTPS,还需要填写 ssl_certificate 和 ssl_certificate_key
    
        location / { # 如果你希望通过子路径访问,此处修改为子路径,注意以 / 开头并以 / 结束
            proxy_pass http://127.0.0.1:3000/;
        }
    }
    

    创建管理员

  • 相关阅读:
    Nginx 413 Request Entity Too Large
    tp U函数 logs
    div + css 边框 虚线
    html+css判断各个IE浏览器版本
    win7 cmd 常用命令
    mysql 常用命令
    ThinkPHP学习(二)理清ThinkPHP的目录结构及访问规则,创建第一个控制器
    将字符串 由一个字符集 转成 另一个字符集 及 随机生成中文
    Sublime Text 3 中实现编译C语言程序
    C语言入门
  • 原文地址:https://www.cnblogs.com/cuianbing/p/14510158.html
Copyright © 2011-2022 走看看