在Ubuntu24环境下搭建一个可用的Git托管平台使用Gitea

准备

  1. 一个域名(如果你不打算公开你的gitea实例则不需要)
  2. 一个装有Ubuntu系统的服务器
  3. 本文所有使用到域名的地方均为repo.rtast.cn
  4. 本文使用的Gitea版本是1.22.x

 

安装Gitea

首先到 Github Release下载你的机器架构的gz包解压后放到一个文件夹内, 然后赋予可执行权限,使用

chmod +x gitea

来赋予权限。

 

配置Gitea

由于gitea无法使用root用户运行所以添加一个用户使用以下命令添加用户, 一个名为git的用户

adduser git

添加完成后以后不要使用这个用户进行ssh登录(因为你登陆不上, gitea的限制), 最好将gitea的可执行文件放到/home/git/路径下并且确保git用户对这个文件夹有读写权限。现在开始在网页上安装Gitea, 浏览器打开: <you server host>:3000 例如http://localhost:3000然后选择你需要的数据库类型,我使用了sqlite。安装完成之后会在custom/conf/生成一个app.ini文件打开这个文件看到 “[server]”块

[server]
SSH_DOMAIN = rtast.cn
DOMAIN = repo.rtast.cn
HTTP_PORT = 3000
ROOT_URL = https://repo.rtast.cn/
APP_DATA_PATH = /home/git/gitea/data
DISABLE_SSH = true
LFS_START_SERVER = true
LFS_JWT_SECRET = 23jSgGl0fuPngMwZWRVWZRdyNCtNtZITiJTg8ILtofU
OFFLINE_MODE = false

这是我的server块, 因为我用不到SSH所以将DISABLE_SSH关掉了。DOMAIN是逻辑上的地址,并不会真正的影响gitea的使用(这个地址用来显示git pull的地址和其他的操作),HTTP_PORT设置为默认的3000(因为需要使用到nginx反代gitea)。

配置Nginx反向代理

以下是我的nginx server块配置

server {
    listen 3001 ssl;
    server_name repo.rtast.cn;

    ssl_certificate /etc/letsencrypt/live/rtast.cn/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/rtast.cn/privkey.pem;

    location / {
        client_max_body_size 512M;
        proxy_pass http://localhost:3000;
        proxy_set_header Connection $http_connection;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_read_timeout 300;
        proxy_connect_timeout 300;
        proxy_send_timeout 300;
    }
}

server {
    listen 3002;
    server_name repo.rtast.cn;

    location / {
        return 301 https://$host$request_uri;
    }
}

 

我反向代理了3001和3002因为我使用frp将这两个端口暴露在公网,3001是带ssl的3002会跳转到带ssl的域名,你需要替换你的域名和你的证书位置。

 

配置Gitea Action

你需要额外下载一个软件点这里下载软件, 你还需要安装docker使用以下命令安装docker

sudo apt install -y apt-transport-https ca-certificates curl software-properties-common

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

sudo apt update

sudo apt install docker-ce docker-ce-cli containerd.io

# 启动docker
sudo systemctl start docker

 

安装完成之后使用 

sudo docker info

来验证安装。 如果你需要配置docker镜像使用以下命令

sudo vim /etc/docker/daemon.json

在文件末尾添加以下内容

{
    "registry-mirrors": ["you mirror url here"]
}

将你的镜像地址填入。使用以下命令来重启docker使其读取配置文件

sudo systemctl restart docker

然后开始配置act_runner 下载好二进制文件并且赋予可执行权限, 先进入你的gitea实例按照以下步骤点击

在Ubuntu24环境下搭建一个可用的Git托管平台使用Gitea

进去后点击 Create new runner 然后会显示一个token复制这个token进到ssh使用以下命令注册

sudo ./act_runner register

输入你的gitea示例,注意这个地址必须是外部可以访问的地址不能是本地回环地址,然后输入token,回车之后输入名字这个随意,再次回车之后再次回车选择默认值。 然后打开刚才的gitea实例页面刷新一下你就能发现多了一个Runner但是显示的是Offline, 你需要使用以下命令来运行Act runner Daemon

sudo ./act_runner daemon

你可以用service来将其作为一个服务启动。 再次刷新就会发现状态变成了Idle 。当然你还需要在app.ini添加以下内容来启用action

[actions]
ENABLED = true

 

注意: 如果你的Workflows需要用到actions/upload-artifact这个插件来上传产物,请使用v3版本

温馨提示:

1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:xiaoman1221@yhdzz.cn,工作室将第一时间处理!

2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。

3.所有资源仅限于参考和学习,版权归原作者所有。

给TA投喂
共{{data.count}}人
人已投喂
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
搜索