Gitea——私有git服务器搭建详细教程

原文章大佬

原文链接:https://blog.csdn.net/qq_45173404/article/details/122277620

什么是Gitea

Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证.
官网:https://gitea.io/zh-cn/

一、源代码安装方式

实验环境为MacOS系统,Windows系统以下操作大同小异官方文档:https://docs.gitea.io/zh-cn/install-from-source/

2. 下载gitea

Github:https://github.com/go-gitea/gitea
Gitee镜像:https://gitee.com/mirrors/gitea

通过git将项目下载到$GOPATH/src目录下

git clone https://github.com/go-gitea/gitea

3. 构建运行

下载完成后用Goland打开,在项目根目录下使用以下命令安装各种前端依赖,下载好的依赖在项目根目录下生的node_modules目录中

npm install

然后通过以下目录构建后端代码

TAGS="bindata" make backend

构建完成后,会在项目根目录下生成gitea可执行文件,我们使用以下命令来启动项目

./gitea web

启动成功后我们访问本机的3000端口,可以看到如下界面:

这里我们配置我们所安装的mysql数据库和密码即可,这里的数据库名称需要我们提前创建一个数据库,这里创建的名称为gitea,此外还可以更改站点名称为自己想要的名称。

设置更新完后,点击安装即可,然后就进入到gitea的控制台,到此即安装配置成功。

二、Docker安装方式

实验环境为CentOS7.6服务器,可以使用任意云厂商或者centos虚拟机官方文档:https://docs.gitea.io/zh-cn/install-with-docker/
  1. Docker安装
https://docs.docker.com/engine/install/centos/     官方文档:
# 1.移除以前docker相关包
sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine# 2. 配置yum源
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 3. 安装docker
sudo yum install -y docker-ce docker-ce-cli containerd.io# 4. 启动docker
systemctl enable docker --now# 5. 配置阿里云加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

以上操作完成后,我们可以使用 systemctl status docker来查看 Docker 服务是否启动

  1. Dokcer Compose安装
    官方文档:Install Docker Compose | Docker Documentation

1.安装docker compose

官方连接;https://docs.docker.com/compose/install/
# 1.安装docker compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose# 2.赋予下载的docker-compose执行权限
sudo chmod +x /usr/local/bin/docker-compose

注意:

Docker Compose 存放在GitHub不太稳定,可以通过镜像网址高速安装。
https://docs.docker.com/compose/install/

镜像网站:

http://get.daocloud.io/
curl -L https://get.daocloud.io/docker/compose/releases/download/v2.2.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-compose

下载完成后可以输入docker-compose --version来查看是否安装成功

3. 安装启动gitea

我们通过docker compose的yaml配置文件来安装gitea,其中选用数据库mysql来存储gitea的数据文件。

创建docker-compose.yml文件,内容如下:

version: "3"networks:gitea:external: falseservices:server:image: gitea/gitea:1.15.9container_name: giteaenvironment:- USER_UID=1000- USER_GID=1000- DB_TYPE=mysql- DB_HOST=db:3306- DB_NAME=gitea- DB_USER=gitea- DB_PASSWD=gitearestart: alwaysnetworks:- giteavolumes:- ./gitea:/data- /etc/timezone:/etc/timezone:ro- /etc/localtime:/etc/localtime:roports:- "3000:3000"- "222:22"depends_on:- dbdb:image: mysql:8restart: alwaysenvironment:- MYSQL_ROOT_PASSWORD=gitea- MYSQL_USER=gitea- MYSQL_PASSWORD=gitea- MYSQL_DATABASE=giteanetworks:- giteavolumes:- ./mysql:/var/lib/mysql

编写完成后,我们通过以下命令再启动 Gitea

# 后台启动gitea
docker-compose up -d server

待启动成功,可以看到它启动在3000端口,然后我们通过服务器公网IP:3000即可访问到其web界面,注意服务器安全组规则要放行3000端口

其中数据库设置我们不需要更改,因为是根据上述docker-compose.yml文件中的数据库配置来读取的,我们需要更改ssh服务的域名为服务器的公网ip,通知基础url的前缀也更改为服务器的公网ip

然后创建一个管理员用户(zsr/123456)即可,然后点击安装

设置完成后,点击立即安装,然后即可进入如下界面

到此gitea的已经安装部署完成

4. 基本操作实例

我们来新建一个仓库:

然后我们将仓库克隆下来新增一个文件然后再推送回去:下面内容是摘取别人的

# 克隆仓库
zhongsiru@zhongsirudeMacBook-Air Desktop % git clone http://139.198.40.248:3000/zsr/hello.git
Cloning into 'hello'...
warning: You appear to have cloned an empty repository.# 进入本地仓库目录
zhongsiru@zhongsirudeMacBook-Air Desktop % cd hello # 新增hello.txt文件
zhongsiru@zhongsirudeMacBook-Air hello % vim hello.txt
zhongsiru@zhongsirudeMacBook-Air hello % ls
hello.txt# 将变更添加到暂存区
zhongsiru@zhongsirudeMacBook-Air hello % git add .# 将暂存区的内容添加到本地仓库
zhongsiru@zhongsirudeMacBook-Air hello % git commit -m "添加hello.txt"
[master (root-commit) 1f46f0e] 添加hello.txt1 file changed, 1 insertion(+)create mode 100644 hello.txt# 推送到远程仓库(要输入用户名和密码)
zhongsiru@zhongsirudeMacBook-Air hello % git push origin master
Username for 'http://139.198.40.248:3000': zsr
Password for 'http://zsr@139.198.40.248:3000':
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 230 bytes | 230.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: . Processing 1 references
remote: Processed 1 references in total
To http://139.198.40.248:3000/zsr/hello.git* [new branch]      master -> master

上述命令操作完成后,我们回到gitea web页面,即可看到变更

使用source-Tree

首先拉取代码下来

使用Code.exe

使用这个打开git代码原路径,创建修改代码

回到source-Tree

代码发现更新,进行提交

先进行暂存所有

进行推送

输入账号密码

账号:aike
密码:aike1101

回到gitea发现更新

5. ssh配置

上述我们推送到远程仓库要输入用户名和密码进行校验,这是十分麻烦的,我们可以配置ssh实现免密登陆:

1️⃣ 首先在本机生成公钥
# 进入到.ssh目录
cd ~/.ssh# 生成密钥对
ssh-keygen -t rsa -C "邮箱"# 查看公钥内容
cat id_rsa.pub

2️⃣ gitea中添加公钥

在gitea web界面的ssh配置页面新增一个ssh密钥,复制上面生成的公钥粘贴进去即可

添加完成后如下所示

此时如果我们修改hello.txt的内容再重新推送到gitea仓库,就不需要输入密码了

采用ssh的方式克隆

我们复制这个ssh地址来看看:

发现还让我们输密码,我们不是刚刚配置的ssh吗?我们仔细看这个ssh地址:

git@139.198.40.248:zsr/hello.git

在服务器公网ip后面直接接了zsr用户名,没有接任何端口,也就是想当于走了默认端口22,等价于服务器公网ip:22也就是要登陆服务器的操作,这当然是需要密码的,我们应该是登陆服务器内部gitea容器的操作,因此我们需要修改gitea的一些配置:

在docker-compose.yml文件中,由于我们将gitea的data目录挂在到本季的gitea目录中,因此我们需要进入该目录中来修改相关配置,需要修改/gitea/gitea/conf/app.ini文件

由于我们将主机的222端口映射到gitea容器中的22端口,因此我们将app.ini中的ssh_portssh_listen_port修改为222端口

修改完成后我们通过docker-compose restart命令重启一下gitea容器

然后再次访问web界面,可以看到ssh地址已经变更,在服务器的公网ip后接了222端口(注意服务器安全组要放行222端口),也就相当于访问服务器内部gitea容器的22端口

此时我们再通过ssh进行克隆,然后修改文件再推送回去

这次期间任何流程无需再需要输入密码进行验证,到此ssh配置已经完毕。

创建其他用户

账号管理

这里给大家提个小意见,新创建的用户如果权限很高,在项目里面是有设置这个选项的

g-Ezr3OSyh-1655878255156)]

然后再次访问web界面,可以看到ssh地址已经变更,在服务器的公网ip后接了222端口(注意服务器安全组要放行222端口),也就相当于访问服务器内部gitea容器的22端口

[外链图片转存中…(img-N4iiaZC9-1655878255156)]

此时我们再通过ssh进行克隆,然后修改文件再推送回去

[外链图片转存中…(img-LFjKFITc-1655878255157)]

这次期间任何流程无需再需要输入密码进行验证,到此ssh配置已经完毕。

创建其他用户

[外链图片转存中…(img-vp4fuldw-1655878255157)]

账号管理

[外链图片转存中…(img-Bm5zMhNQ-1655878255157)]

这里给大家提个小意见,新创建的用户如果权限很高,在项目里面是有设置这个选项的

Gitea—私有git服务器搭建教程相关推荐

  1. Gitea——私有git服务器搭建详细教程

    本文将从源代码和docker安装两种方式带大家从0-1通过Gitea搭建一个私有git服务器 Gitea--私有git服务器搭建教程 什么是Gitea 一.源代码安装方式 1. 前置环境要求 2. 下 ...

  2. 私有云服务器搭建教程(保姆级)——台式电脑+ubuntu+docker+nextcloud+mysql+花生壳内网穿透

    文章目录 前言 一.Nextcloud是什么? 二.安装步骤 1. 安装 docker 1.1 更新apt 1.2 允许apt通过HTTPS使用存储库 1.3 添加Docker的官方GPG密钥 1.4 ...

  3. 搭建私有Git服务器

    前言  远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改.GitHub就是一个免费托管开源代码的远程仓库.但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得 ...

  4. linux ubuntu 安装git服务器,[linux] Ubuntu20.04上安装搭建私有Git服务器Gitea

    [linux] Ubuntu20.04上安装搭建私有Git服务器Gitea [linux] Ubuntu20.04上安装搭建私有Git服务器Gitea Gitea 是相比于gitlab更加轻量化,而且 ...

  5. Windows平台使用Gitblit搭建Git服务器图文教程

    Git服务现在独树一帜,相比与SVN有更多的灵活性,最流行的开源项目托管网站Github上面,如果托管开源项目,那么就是免费使用的,但是闭源的项目就会收取昂贵的费用,如果你不缺米,那么不在本文讨论的范 ...

  6. centos 6.8安装git_git 入门教程之 git 私服搭建教程

    git 私服搭建教程 前几节我们的远程仓库使用的是 github 网站,托管项目大多是公开的,如果不想让任何人都能看到就需要收费,而且 github 网站毕竟在国外,访问速度太慢,基于上述两点原因,我 ...

  7. git 入门教程之 git 私服搭建教程

    git 私服搭建教程 前几节我们的远程仓库使用的是 github 网站,托管项目大多是公开的,如果不想让任何人都能看到就需要收费,而且 github 网站毕竟在国外,访问速度太慢,基于上述两点原因,我 ...

  8. gitlab服务器搭建教程

    gitlab服务器搭建教程 ----2016年终总结 三 参考https://bbs.gitlab.cc/topic/35/gitlab-ce-8-7-%E6%BA%90%E7%A0%81%E5%AE ...

  9. Minecraft(我的世界) Fabric 1.19.3 服务器搭建教程

    Debian系统使用MCSManager9面板搭建MC Java版MOD服务器的教程,本教程用的Fabric1.19.3服务端,用其他服务端的也可以参考一下. 视频教程:https://www.bil ...

最新文章

  1. 使用小技巧教你用Selenium获取鼠标指向的元素
  2. Atom CSScomb 增强版
  3. 网易云携手美云智数掀起企业移动信息化发展新浪潮
  4. python和sas哪个有用考研_金融学研究生用好计量软件的好处呢? stata sas s-plus python R哪个更有重要呢?...
  5. python文件合并_用Python 将两个文件的内容合并成一个新的文件.
  6. .net fileupload批量上传可删除_【JavaWeb基础】文件上传和下载(修订版)
  7. 【CodeVS】p1174 靶形数独
  8. 吴昊品游戏核心算法 Round 16 —— 吴昊教你玩口袋妖怪 完结篇 由金手指想到的...
  9. win7录屏_录屏软件Bandicam安装教程
  10. 【ARM学习笔记】问题Processor ARM920T raised an exception.Cause:Undefined instruction的解决方法
  11. HDTune硬盘检测工具
  12. 武威市教师职称计算机考试,关于高级教师职称评定述职报告(精选5篇)
  13. Unity2019.4—AnroidStudio—AndroidX接入SDK详细版
  14. oracle rac 心跳参数 misscount disktimeout
  15. 刀具的磨损与破损、刀具寿命及刀具状态监控
  16. Keras LSTM对20 Newsgroups数据集进行分类
  17. ASP + Serv-u 實現FTP的代碼
  18. 机器学习基础-23:矩阵理论(L0/L1/L2范数等)
  19. Solidity:源文件结构
  20. win10计算机点对点连接,win10如何建立点对点网络连接?

热门文章

  1. 发电机励磁问题的简单解决——发电机不发电的简单判断和解决
  2. Python - 两数相除 递进版
  3. 动态规划总结以及状态转移方程的推导(一)
  4. 600以内的蓝牙耳机哪款好?盘点600元蓝牙耳机性价比之王
  5. springboot Vue退休人员管理信息系统java
  6. python使用微信推送消息
  7. 易基因:RRBS揭示晚年锻炼可以减缓骨骼肌表观遗传衰老(甲基化年龄)|新研究
  8. 我是怎么让微信1天加到200个精准粉丝的
  9. 普通人和厉害的人,最大的差距在哪里?
  10. Nerry实现服务器端指定客户端发送消息。