Ubuntu 18 部署Gitea,搭建私有git平台 防止源码泄露

官网 https://gitea.io/en-us/

官网中文文档 https://docs.gitea.io/zh-cn/

我为什么要写这篇博客:

​ 因为公司现在用的gogs感觉功能太少了,想更新自己的代码仓库。看中青出于蓝而胜于蓝的Gitea
Gitea 是一个自己托管的Git服务程序。他和GitHub, Bitbucket or Gitlab等比较类似。他是从 Gogs 发展而来,不过他们已经Fork并且重新开发命名为Gitea

功能特性

  • 支持活动时间线
  • 支持 SSH 以及 HTTP/HTTPS 协议
  • 支持 SMTP、LDAP 和反向代理的用户认证
  • 支持反向代理子路径
  • 支持用户、组织和仓库管理系统
  • 支持添加和删除仓库协作者
  • 支持仓库和组织级别 Web 钩子(包括 Slack 集成)
  • 支持仓库 Git 钩子和部署密钥
  • 支持仓库工单(Issue)、合并请求(Pull Request)以及 Wiki
  • 支持迁移和镜像仓库以及它的 Wiki
  • 支持在线编辑仓库文件和 Wiki
  • 支持自定义源的 Gravatar 和 Federated Avatar
  • 支持邮件服务
  • 支持后台管理面板
  • 支持 MySQL、PostgreSQL、SQLite3, MSSQL 和 TiDB(实验性支持) 数据库
  • 支持多语言本地化(21 种语言)

系统要求

  • 最低的系统硬件要求为一个廉价的树莓派
  • 如果用于团队项目,建议使用 2 核 CPU 及 1GB 内存

搭建方式官方给出了很多种,我今天选择的是直接下载编译好的二进制包来安装运行


首先需要安装的东西

  1. 安装Mysql,并添加gitea用户

    1. sudo apt-get update
    
    2. sudo apt-get upgrade
    
    3. sudo apt-get install mysql-server
    
    4. sudo mysql -uroot -p  # 进入数据库
    
    5. use mysql;
    
    6. update user set authentication_string=PASSWORD("你要设置的密码") where user='root';`
    
    7. update user set plugin="mysql_native_password";
    
    8. CREATE USER `gitea`@`localhost` IDENTIFIED BY '你要设置的密码'; # 创建用户
    
    9. GRANT Alter, Alter Routine, Create, Create Routine, Create Temporary Tables, Create User, Create View, Delete, Drop, Event, Execute, File, Grant Option, Index, Insert, Lock Tables, Process, References, Reload, Replication Client, Replication Slave, Select, Show Databases, Show View, Shutdown, Super, Trigger, Update ON *.* TO `gitea`@`localhost`;
     # 赋予权限
    
    10. flush privileges;  # 刷新
    
    11. exit # 退出数据库
    
    12. service mysql restart # 重启数据库服务
    
    sudo service mysql start   # 启动 
    sudo service mysql stop   # 暂停 
    sudo service mysql restart  # 重启 
    
    数据库默认配置文件在  /etc/mysql/my.cnf
    

  2. 安装supervisor 用于托管gitea进程

    sudo apt-get install supervisor
    或者基于python库安装
    pip2 install supervisor
    easy_install supervisor
    
    配置文件在/etc/supervisor/conf.d/路径下
    
    root@ubuntu:~# supervisorctl
    unix:///var/run/supervisor.sock no such file supervisor
    #这有可能是由于supervisor服务没有启动 #解决办法
    sudo service  supervisor  start
    配置文件更新之后需要执行 
    sudo supervisorctl update
    
    sudo supervisorctl status # 查看supervisorctl状态
    
    sudo supervisorctl start [进程名]
    
    sudo supervisorctl stop [进程名]
    
    sudo supervisorctl restart [进程名]
    

  3. 安装git

    sudo apt-get install git  # 安装 Git
    

依赖的程序安装完成之后:

  1. 先创建一个git用户

    sudo adduser git  # 新建git用户 根据提示设置新密码,其他的信息不用管
    su git            # 切换到git用户 输入密码
    cd ~              # 进入git用户的家目录
    
  2. 下载二进制可执行文件并添加可执行权限

    wget -O gitea https://dl.gitea.io/gitea/1.11.0/gitea-1.11.0-linux-amd64  # 下载二进制文件
    chmod +x gitea   # 添加可执行权限
    
  3. 创建一个log文件夹用于存放log

    mkdir log        # 用于存放log
    
  4. 将gitea用supervisor以守护进程方式启动

    sudo vim /etc/supervisor/conf.d/gitea.conf
    
    然后将下面的配置复制进去保存
    
    [program:gitea]
    directory=/home/git
    command=/home/git/gitea web
    autostart=true
    autorestart=true
    startsecs=10
    stdout_logfile=/home/git/log/stdout.log
    stdout_logfile_maxbytes=1MB
    stdout_logfile_backups=10
    stdout_capture_maxbytes=1MB
    stderr_logfile=/home/git/log/stderr.log
    stderr_logfile_maxbytes=1MB
    stderr_logfile_backups=10
    stderr_capture_maxbytes=1MB
    user = git
    environment = HOME="/home/git", USER="git"
    
    
  5. 用supervisor启动gitea

    sudo supervisorctl update  # 更新配置文件,他会自动启动
    
  6. 启动后访问你的 ip:3000 会出现一个配置界面。

    ssh地址填你的ip或者域名不要带http
    后续配置可以更改配置文件路径在 /home/git/custom/conf/app.ini

简单配置之后就可以用了。想用nginx代理转发到3000端口即可

发布了2 篇原创文章 · 获赞 0 · 访问量 37

猜你喜欢

转载自blog.csdn.net/weixin_43103300/article/details/104318349