Linux安装gogs搭建Git仓库

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 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


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
缓存 Linux 测试技术
安装【银河麒麟V10】linux系统--并挂载镜像
安装【银河麒麟V10】linux系统--并挂载镜像
43 0
|
6天前
|
Linux C语言
linux yum安装ffmpeg 图文详解
linux yum安装ffmpeg 图文详解
23 0
|
6天前
|
NoSQL Linux Redis
linux 下和win下安装redis 并添加开机自启 图文详解
linux 下和win下安装redis 并添加开机自启 图文详解
13 0
|
6天前
|
Linux
linux yum 安装rar和unrar
linux yum 安装rar和unrar
27 0
|
7天前
|
开发工具 git
git篇3:idea中创建项目并提交到远程Git仓库
git篇3:idea中创建项目并提交到远程Git仓库
|
18天前
|
Java Linux Maven
Linux中安装MAVEN环境配置
Linux中安装MAVEN环境配置
42 3
|
19天前
|
存储 负载均衡 索引
linux7安装elasticsearch-7.4.0集群配置
linux7安装elasticsearch-7.4.0集群配置
108 0
|
23天前
|
Linux 数据安全/隐私保护 虚拟化
Linux技术基础(1)——操作系统的安装
本文是龙蜥操作系统(Anolis OS) 8.4 的安装指南,用户可以从[龙蜥社区下载页面](https://openanolis.cn/download)获取ISO镜像。安装方法包括物理机的光驱和USB闪存方式,以及虚拟机中的VMware Workstation Pro设置。安装过程涉及选择语言、配置安装目标、选择软件集合和内核,设置Root密码及创建新用户。安装完成后,可通过文本模式或图形化界面验证系统版本,如Anolis OS 8.4,标志着安装成功。
|
19天前
|
消息中间件 Java Linux
Linux下RabbitMQ安装与使用
Linux下RabbitMQ安装与使用
32 1
|
14天前
|
Ubuntu Linux 虚拟化
【Linux】ubuntu安装samba服务器
【Linux】ubuntu安装samba服务器