debian12部署Gitea服务

首先安装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

相关推荐
周杰伦的稻香8 天前
Debian 9 (Stretch)仓库无法使用
运维·debian
MaoSource8 天前
Debian 12 安装 FFmpeg 命令
服务器·ffmpeg·debian
weixin_462446239 天前
一键安装单节点 Zookeeper 3.8.5(附完整 Bash 脚本)
zookeeper·debian·bash
胖好白9 天前
【RK3588开发】Debian系统的驱动开发配置
驱动开发·debian
网硕互联的小客服12 天前
Debian系统提示“Media change...”如何处理?
运维·debian
shhpeng12 天前
Debian packages 的签名与验证
运维·debian
shhpeng13 天前
Debian 包的制作与安装完整指南
运维·debian
shhpeng13 天前
如何制作一个简单的 .deb Debian 包 ?
运维·debian
不像程序员的程序媛13 天前
gitea基本操作
gitea
weixin_4307509314 天前
OpenMediaVault debian Linux安装配置企业私有网盘(三) 静态ip地址配置
linux·服务器·debian·nas·网络存储系统