debian12部署Gitea服务

news2024/9/28 11:21:03

首先安装git、wget、sqlite,然后进行用户和组的相关设置

sudo apt install -y git wget sqlite3
新增一个git用户与一个git组
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git
给git用户设置密码
sudo passwd git
将当前用户加入到git组
sudo usermod -a -G git [username]
将当前用户切换到git组
newgrp git

关于下载gitea的二进制文件,有如下两种方案: 

方案一,网络情况良好的情况:

使用wget从github下载gitea二进制文件(一定要注意下载与自己平台对应的版本

wget -O gitea https://github.com/go-gitea/gitea/releases/download/v1.21.3/gitea-1.21.3-linux-amd64
sudo mv gitea /usr/local/bin
sudo chmod +x /usr/local/bin/gitea

方案二,网络情况不好的情况:

使用在别的地址下载好的gitea二进制文件,上传到debian系统上:

首先创建一个文件夹用来放gitea的二进制文件,路径随意:

mkdir /mnt/HuHDD/Git/GiteaInstallFile

然后将另外一台主机下载的gitea文件上传到上面的路径下,需要先退出ssh远程,然后使用cd命令将位置重定向到本地下载的gitea文件的位置:

我这里是用PowerShell,所以直接用资源管理器找到文件位置,然后直接在地址栏输入powershell并回车,就直接定位到当前的文件夹位置了:

然后使用以下命令上传:

scp gitea-1.21.3-linux-amd64 hu@192.168.124.6:/mnt/HuHDD/Git/GiteaInstallFile

修改gitea文件的执行权限

sudo chmod +x gitea-1.21.3-linux-amd64
重命名
sudo mv gitea-1.21.3-linux-amd64 gitea
移动到这里
sudo mv gitea /usr/local/bin

创建部署gitea所需的目录结构

sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}

修改目录的权限

sudo chown git:git /var/lib/gitea/
sudo chown git:git /var/lib/gitea/{custom,data,indexers,public,log}
sudo chmod 754 /var/lib/gitea/
sudo chmod 754 /var/lib/gitea/{custom,data,indexers,public,log}
注:八进制754即二进制111101100,每三位为一组,分别代表着创建者、所在组、其他人这三者的读取、写入、执行权限。

在etc创建文件夹

sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea

下载Gitea提供已配置的Systemd Unit文件

依旧是根据网络情况分为两种方案

方案一

sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/

方案二

直接往etc目录上传可能会因为没有权限而失败,所以先上传到一个有权限的目录:
scp gitea.service hu@192.168.124.6:/mnt/HuHDD/Git/GiteaInstallFile
然后再将文件移动到etc文件夹
sudo mv gitea.service /etc/systemd/system

重新加载Systemd,启动gitea服务

sudo systemctl daemon-reload
sudo systemctl start gitea
sudo systemctl enable gitea
sudo systemctl status gitea

 

配置Gitea

现在我们成功运行Gitea,是时候通过Web界面完成安装。默认情况下,Gitea监听所有接口在端口3000的连接。

如果您debian正在运行运行UFW防火墙,则需要打开Gitea端口。允许端口3000的连接。运行命令

sudo ufw allow 3000/tcp

创建存放仓库的目录,当然如果你的默认路径容量够大就不用创建了,我这里创建到了一个大硬盘上

mkdir /mnt/HuHDD/Git/Gitea/Repo
mkdir /mnt/HuHDD/Git/Gitea/lfs
修改所有者
sudo chown git:git /mnt/HuHDD/Git/Gitea
sudo chown git:git /mnt/HuHDD/Git/Gitea/{Repo,lfs}
修改权限
sudo chmod 774 /mnt/HuHDD/Git/Gitea
sudo chmod 774 /mnt/HuHDD/Git/Gitea/{Repo,lfs}

 

添加客户机公钥到Gitea服务器,在客户机生成密钥对,找到公钥,用文本方式打开,复制其中内容,然后在以下界面添加到Gitea服务器中:

添加成功之后,在debian系统上执行以下命令可以看到如下输出:

sudo cat /home/git/.ssh/authorized_keys

# gitea public key
command="/usr/local/bin/gitea --config=/etc/gitea/app.ini serv key-1",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty,no-user-rc,restrict
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCmDS+M1Q7mhBF7FYy1RZTg9gxHaKcIxNaa5dQJgvosRgyuouJoC/qHiAVT8/FXkfj7jlBeUvEww7QWttBf4n3nqe4x7fkBgNuKDO+6fnYHMN88msJfn6IKbyttYRuU1ccvkDkdOJ+beEpFBkSEqzhs9MjWK+gYMTv+hdw6DK7uG7GskibRkXvFWZczmOx+slZKtUk5AVKDGKtVgO3CVZ2SbPIHzlnKllaCyHhEGNnZx9PDD7qEZMWvFcl5YgtanpB/kuKqMKoYL/WfiGmnivprMS0t1wO0IWYas/bi2s8NbBXH35DJCAFcSAdkiOj3MpoinFLSuktCVone+eAxOmEZfOB6IezyQKq6QqpwVcA9heO3oVdxeNNZLCNBXY9YWAEUaPf1FDKVSCEMa80EaKzOtZpNQ8/c4FpWjfgLDDu7D7Kr2hTLMOXdNVKXbxVI8PkT93Xo2c7VY8yLuTsXTFGihPbTnIKZC9y0d+n4l7gg0bALyciBVqxzRrSEk2C6+0k= hu@DESKTOP-RV4GAAP

上面红色的部分就是基于ssh调用gitea服务的关键,我们可以发现其实原理就是一个ssh command映射,当ssh识别到当前的连接客户端为咱们通过gitea注册公钥的客户端时,就会通过这个command找到gitea的可执行文件,然后就可以让gitea接手shell的工作了。

这也就解释了为什么我们通过gitea生成的sshUrl就能进行gitea的相关操作,因为gitea生成的仓库路径完全是相对路径,如果是shell进行命令处理的话,它肯定是无法通过这个url找到仓库的。

gitea生成的仓库路径示例:git@192.168.124.6:hu/TestRepo.git

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1379510.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

必看!2023年机器人领域十大事件!

原创 | 文 BFT机器人 2023年,机器人产业快速发展,成就了机器人领域的一个又一个里程碑。机器人行业涌现了许多令人瞩目的事件,实现了重大突破,展示了机器人技术在各个领域的广泛应用和革命性变革。 本文将对2023年机器人领域的十…

数字化时代,VR全景展示如何让用户一窥全貌?

数字化时代,VR全景展示为各行各业提供了无限的可能性。随着VR全景技术的逐步普及,VR全景展示以其独特的呈现方式和新颖十足的交互体验,正在不断改变着人们对于展示宣传的理解。 传统的展示方式,通常需要将产品、图文、品牌等元素集…

131基于matlab的差分进化算法优化K均值聚类问题

基于matlab的差分进化算法优化K均值聚类问题,可调整K参数得到最佳聚类结果。输出聚类可视化图和优化迭代曲线。可替换自己的数据,程序已调通,可直接运行。 131matlab差分进化算法K均值聚类 (xiaohongshu.com)

一份保姆级的 Stable Diffusion 部署教程,开启你的炼丹之路

市面上有很多可以被用于AI绘画的应用,例如DALL-E、Midjourney、NovelAI等,他们的大部分都依托云端服务器运行,一部分还需要支付会员费用来购买更多出图的额度。 在2022年8月,一款叫做Stable Diffusion的应用,通过算法…

GPT-4V的图片识别和分析能力原创

GPT-4V是OpenAI开发的大型语言模型,是GPT-4的升级版本。GPT-4V在以下几个方面进行了改进: 模型规模更大:GPT-4V的参数量达到了1.37T,是GPT-4的10倍。 训练数据更丰富:GPT-4V的训练数据包括了1.56T的文本和代码数据。 …

伴鱼实时数仓建设案例

伴鱼实时数仓建设案例 文章目录 伴鱼实时数仓建设案例伴鱼实时作业应用场景伴鱼实时数仓的建设体系DWD 层复杂场景数据处理方案1. 数据的去重2. join场景两条实时数据流相关联对于关联历史数据 3. 从数据形态观查join DWS 数据层数据处理方案未来与展望 随着伴鱼业务的快速发展…

openAI API key不需要中转,自己就可以使用正版

很多小伙伴因为不知道怎么使用原版,用的都是国内套壳的,国内套壳的有些价格不合适,如何是3.5的话只需要绑定虚拟信用卡就可以使用 想使用openai API key4.0的话你需要先开通ChatGPTplus,在绑定openai API key,绑定ope…

磁盘直通卡/阵列卡讲解

服务器SAS卡 ① 华为SR120 (LSI 2308 6Gb SAS直通卡),适合数据安全等级不高或 更换简单 硬盘即插即用 ② 华为SR320 (LSI 2208 6Gb SAS阵列卡 带512M缓存),适合对数据安全等级要求高或追求磁盘性能的客户 推荐上阵列卡 ③ 华为SR130 (LSI 3008 12Gb SAS直通卡),适合数据安全等…

APM链路监控: Linux 部署 pinpoint

目录 一、实验 1.环境 2. 准备 3.HBase单机部署 4.pinpoint部署 二、问题 1.pinpoint有哪些功能 2.pinpoint架构是如何组成的 3.Linux中自带的jdk 如何设置JAVA_HOME 4. hbase启动报错 5.hbase的master启动失败 6.JPS命令如何安装和使用 一、实验 1.环境 &#x…

大一统的监控探针采集器 cprobe

需求背景 监控数据采集领域,比如 Prometheus 生态有非常多的 Exporter,虽然生态繁荣,但是无法达到开箱即用的大一统体验,Exporter 体系的核心问题有: 良莠不齐:有的 Exporter 写的非常棒,有的…

爬虫—响应页面乱码问题解决方法

爬虫—响应页面乱码问题解决方法 案例:腾牛网图片抓取 源代码如下: import requestsurl https://www.qqtn.com/wm/meinvtp_1.html headers {user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) …

七麦数据js逆向(补环境版)

本文目标地址如下,使用base64解码获得 aHR0cHM6Ly93d3cucWltYWkuY24vcmFuay9tYXJrZXRSYW5rL21hcmtldC82L2NhdGVnb3J5LzUvY29sbGVjdGlvbi9hbGwvZGF0ZS8yMDI0LTAxLTEy 本文逆向破解分为扣代码版和补环境版,扣代码版请看专栏另一篇文章 废话不多说了&#…

SAP OData(三)Query Option

Query option是指客户端在获取EntitySet的URL中后缀的一些指令,在第一篇第四小节我们已经见识了一部分Query指令。在下面表中列出了最重要的QueryOption。注意指令在URL中必须小写。 Operation Query Option Filtering and projecting $filter and $select Sort…

ubuntu 22 搭建git服务

第一步,安装git: sudo apt-get install git 创建用户信息 git config --global user.name soft 第二步,创建一个git用户,用来运行git服务: sudo adduser git 创建git仓库的存储目录、更改文件目录属主为代码仓库…

6. 逻辑删除

逻辑删除对应的是物理删除,分别介绍一下这两个概念: 物理删除 :指的是真正的删除,即:当执行删除操作时,将数据表中的数据进行删除,之后将无法再查询到该数据逻辑删除 :并不是真正意…

TensorRT模型优化模型部署(七)--Quantization量化(PTQ and QAT)(二)

系列文章目录 第一章 TensorRT优化部署(一)–TensorRT和ONNX基础 第二章 TensorRT优化部署(二)–剖析ONNX架构 第三章 TensorRT优化部署(三)–ONNX注册算子 第四章 TensorRT模型优化部署(四&am…

JVM基础(12)——G1调优

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖&…

解释程序基本原理

解释程序基本原理 1、解释程序的基本结构2、高级语言编译与解释方式的比较 语言处理程序是一类系统软件的总称,其主要作用是将高级语言或汇编语言编写的程序翻译成某种机器语言程序,使程序可在计算机上运行。语言处理程序主要分为汇编程序、编译程序和解…

【详解】结构体的内存对齐(每步配图)

目录 引言: 为什么存在结构体内存对齐? 结构体内存对齐规则: 练习一: 测试代码: 结果如下: 第二个练习:结构体的嵌套问题 测试代码: 代码结果如下: 两个关于结构体的易错…

thinkphp递归实现无限级子分类合并上级children

//设别分类列表public function getCategoryList(){$list = Db::name(categorys)->select(