Linux安装gogs搭建Git仓库

简介: Gogs由Go语言编写,运行时需要安装Golang运行环境如果系统中其他程序并不需要运行Go语言程序,可以只为上文创建的git用户配置运行环境,也可以选择配置全系统所有用户的Go语言运行环境
安装Gogs之前先安装好mysql,nginx(nginx用作反向代理)


一.gogs默认以git用户运行


新建git用户


adduser git


以git用户登录


sugit


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运行环境


sugitcd ~


2.写入环境变量


 vim /etc/profile最后一行加入


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


3.使环境变量生效


source /etc/profile


4.测试Golang是否安装成功


go env


三.安装 Gogs


1.下载预编译的二进制安装包


安装包各版本地址:https://gogs.io/docs/installation/install_from_binary


sugitcd ~
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 -pgrant 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


sugitcd ~/gogs
./gogs web


加入服务运行


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


service gogs stop|start|restart|reload|status


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
12月前
|
安全 开发工具 git
git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡
git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡
945 5
git添加远程仓库报错To add an exception for this directory解决方案-优雅草卓伊凡
|
开发工具 git
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
2049 69
如何操作github,gitee,gitcode三个git平台建立镜像仓库机制,这样便于维护项目只需要维护一个平台仓库地址的即可-优雅草央千澈
|
开发工具 git 开发者
Git流程控制:远程仓库操作的实用指南
通过遵循这些步骤和策略,你将能够更有效地与远程仓库进行交互,确保代码变更的透明度和项目历史的干净。同时,良好的版本控制习惯可以减少潜在的冲突,并帮助保持代码库的整洁。在日常工作中应用这些实用的Git流程控制技巧将是非常有益的。
363 0
|
Shell 开发工具 git
解决git bash报错:在仓库中检测到可疑的所有权
总的来说,解决“在仓库中检测到可疑的所有权”的报错,关键在于理解和调整文件或目录的所有权。只要我们正确地设置了文件或目录的所有权,那么我们就可以避免这种问题,让Git Bash正常工作。
866 22
|
网络安全 开发工具 git
Git仓库创建与代码上传指南
本教程介绍了将本地项目推送到远程Git仓库的完整流程,包括初始化本地仓库、添加和提交文件、创建远程仓库、关联远程地址及推送代码。同时,还提供了`.gitignore`配置、分支管理等可选步骤,并针对常见问题(如认证失败、分支不匹配、大文件处理及推送冲突)给出了解决方案。适合初学者快速上手Git版本控制。
|
文字识别 网络协议 开发工具
GitHub封锁?推荐5个国产的Git仓库替代平台
近日,GitHub对中国区IP的部分限制引发了广泛关注。未登录用户被拒,已登录用户功能受限,南北网络环境差异更显“内卷”。为应对这一挑战,本文推荐了多个国产Git平台:Gitee(码云)、GitCode(CSDN旗下)、CODING(腾讯系)、CodeUP(阿里云支持)及微信代码管理工具。这些平台功能全面、稳定性强,是开发者迁移项目的理想选择。通过同步代码、配置CI/CD流水线等简单步骤,可确保项目平稳过渡。此次事件提醒我们,掌握核心技能与支持国产平台同样重要!
20163 11
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
695 10
|
Devops Shell 网络安全
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
982 16
git使用之如何将一套代码同时推送至github|gitee|gitcode|gitlab等多个仓库-含添加ssh-优雅草央千澈完美解决-提供整体提交代码
|
安全 Shell 开发工具
Windows下使用git配置gitee远程仓库
就在前几天因为一些原因,我的电脑重装了系统,然后再重新配置git的环境的时候就遇到了一些小问题。所以我决定自己写一篇文章,以便以后再配置git时,避免一些错误操作,而导致全网搜方法,找对的文章去找对应的解决方法。下面为了演示方便就拿gitee来演示,不拿GitHub了写文章了。
745 0
|
Linux 开发工具 git
解决 Linux git push 成功后(但没有出现绿点)的问题
最近学习使用Git,发现有时候在Linux下提交自己的小绿点并没有增加,单在仓库中却可以看到提交的代码。看着连续的绿点中出现几个零零散散的灰点,着实让一个强迫症患者十分难受。接下来分享以下我所知道的问题。
429 0