【小团队私有化git搭建】

Gitea 安装和配置教程

Gitea 是一个轻量级的 Git 服务器,支持版本控制、团队协作等功能。在这篇教程中,我们将通过详细的步骤指导你如何在 Linux 服务器上安装和配置 Gitea,解决常见问题并给出解决方案。


1️⃣ 安装 Gitea

🛠️ 安装前准备

  1. 更新系统

    首先,确保系统是最新的,运行以下命令更新系统:

    复制代码
    sudo dnf update -y
  2. 安装依赖包

    安装必要的依赖包,如 Gitcurl

    复制代码
    sudo dnf install -y git curl

📥 下载 Gitea 安装包

  1. 你可以从 Gitea 官方网站 下载适合你操作系统的 Gitea 安装包。

    复制代码
    wget -O gitea https://dl.gitea.io/gitea/1.20.6/gitea-1.20.6-linux-amd64
  2. 赋予执行权限

    复制代码
    chmod +x gitea

🛠️ 创建 Gitea 用户和目录

Gitea 通常作为 git 用户运行,因此我们需要为其创建一个系统用户,并配置相关目录。

创建 git 用户

复制代码
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git

创建 Gitea 所需目录

复制代码
sudo mkdir -p /var/lib/gitea/{custom,data,log}

修改目录权限

复制代码
sudo chown -R git:git /var/lib/gitea/

📝 配置 Gitea 服务

  1. /etc/systemd/system/ 目录下创建 Gitea 服务文件,让 Gitea 在系统启动时自动启动:

    复制代码
    sudo vi /etc/systemd/system/gitea.service
  2. 在文件中添加以下内容:

    复制代码
    [Unit]
    Description=Gitea (Git with a cup of tea)
    After=network.target
    
    [Service]
    RestartSec=2s
    Type=simple
    User=git
    Group=git
    WorkingDirectory=/var/lib/gitea/
    ExecStart=/usr/local/bin/gitea web --config /var/lib/gitea/custom/app.ini
    
    [Install]
    WantedBy=multi-user.target
  3. 重新加载系统服务配置:

    复制代码
    sudo systemctl daemon-reload

🚀 启动 Gitea

  1. 启动并设置 Gitea 服务开机自启:

    复制代码
    sudo systemctl enable gitea
    sudo systemctl start gitea
  2. 查看 Gitea 服务状态:

    复制代码
    sudo systemctl status gitea

2️⃣ 配置 Gitea

  1. 通过浏览器访问 Gitea 的 Web UI:

    http://<your_server_ip>:3000

    初次访问时,你会看到 Gitea 的安装页面,按照以下步骤进行配置:

    • 数据库类型 :选择 MySQLSQLite
    • 数据库连接 :如果使用 MySQL,输入以下信息:
      • 数据库名称:gitea
      • 用户名:root
      • 密码:你设置的密码
    • 应用程序设置:配置 Gitea 管理员账户等信息。
  2. 完成后,点击 "安装 Gitea",Gitea 会自动创建数据库并完成初始化。


3️⃣ 常见问题与解决方案

🔥 问题1:Gitea 服务无法启动

错误信息:

Failed to start Gitea: No such file or directory

🧰 解决方案:
  1. 确保 /etc/systemd/system/gitea.service 文件中的路径正确,特别是 ExecStart 中的路径应该指向正确的 Gitea 可执行文件(例如 /home/git/gitea)。

  2. 重新加载系统服务并重启 Gitea:

    sudo systemctl daemon-reload

    sudo systemctl restart gitea


🔥 问题2:Gitea 页面无法访问(端口 3000 不可用)

错误信息:

Connection refused

🧰 解决方案:
  1. 检查防火墙配置:确保防火墙没有阻止端口 3000。

    sudo firewall-cmd --permanent --add-port=3000/tcp

    sudo firewall-cmd --reload

  2. 检查 Gitea 配置:确保 Gitea 配置文件中的端口设置正确。

    sudo vi /var/lib/gitea/custom/conf/app.ini

    找到并确认以下配置项:

    server

    HTTP_PORT = 3000

    ROOT_URL = http://<your_server_ip>:3000


🔥 问题3:Gitea 无法连接数据库

错误信息:

Error: database connection failed

🧰 解决方案:
  1. 检查数据库配置 :确保 app.ini 文件中的数据库连接配置正确。

    sudo vi /var/lib/gitea/custom/conf/app.ini

    对于 MySQL,配置应如下:

    database

    DB_TYPE = mysql

    HOST = 127.0.0.1:3306

    NAME = gitea

    USER = root

    PASSWD = your_password

  2. 检查 MySQL 状态:确保 MySQL 服务已启动,并且数据库连接正常。

    sudo systemctl status mysqld

  3. 查看数据库日志:如果问题依旧,查看 Gitea 或 MySQL 的日志以获取更多信息。

    sudo tail -f /var/lib/gitea/log/gitea.log


🔥 问题4:权限问题导致 Gitea 无法正常工作

错误信息:

Permission denied

🧰 解决方案:
  1. 检查目录权限:确保 Gitea 的数据和日志目录具有正确的权限:

    sudo chown -R git:git /var/lib/gitea/

    sudo chmod -R 750 /var/lib/gitea/

  2. 确保服务用户正确 :确保 Gitea 是以 git 用户身份运行的。

    sudo systemctl status gitea


4️⃣ 总结

通过以上步骤,你已经成功安装和配置了 Gitea 作为 Git 服务器。常见问题的解决方法包括:

  • 服务无法启动:检查路径和权限设置,重新加载服务。
  • 页面无法访问:确保防火墙配置正确,并检查端口和配置文件。
  • 数据库连接失败:检查数据库配置和数据库服务状态。
  • 权限问题:确保 Gitea 目录的权限正确,并且 Gitea 服务以正确的用户身份运行。
相关推荐
2501_928817125 分钟前
大模型如何决定推荐谁?拆解精准触达的底层算法工艺
大数据
ApacheSeaTunnel1 小时前
AI 让 SeaTunnel 读源码和调试过时了吗?
大数据·ai·开源·数据集成·seatunnel·技术分享·数据同步
TDengine (老段)1 小时前
MNode 内部机制深度解析 — SDB、事务引擎与 DDL 处理全链路
大数据·数据库·物联网·时序数据库·iot·tdengine·涛思数据
白鲸开源1 小时前
杀疯了!SeaTunnel AI CLI 解锁数据集成新玩法
大数据·人工智能·github
Elastic 中国社区官方博客1 小时前
在 Elasticsearch 中使用利润率与流行度加权来优化电商搜索
大数据·数据库·elasticsearch·搜索引擎·全文检索
随缘而动,随遇而安1 小时前
第九十八篇 工程落地视角:Session/Cookie/Token 原理辨析与大数据实战
大数据·spark·token·cookie·session
实习僧企业版3 小时前
从“抢人”到“识人”,回归匹配本质
大数据·人工智能·雇主品牌·招聘技巧
SEO_juper3 小时前
谷歌本地 GEO 权重拆解,全域 SEO 落地实操
大数据·网络·ai·seo·跨境电商·geo·跨境电商独立站
Irene19913 小时前
大数据开发面试常问的 Linux 命令 总结
大数据·linux
GIOTTO情3 小时前
大数据技术应用:媒介投放全域舆情风控与数据优化解决方案
大数据