【小团队私有化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 服务以正确的用户身份运行。
相关推荐
Elastic 中国社区官方博客38 分钟前
为 Elastic Cloud Serverless 和 Elasticsearch 引入统一的 API 密钥
大数据·运维·elasticsearch·搜索引擎·云原生·serverless
vastsmile3 小时前
(R)26.04.23 hermes agent执行本地命令超级慢的原因
开发语言·elasticsearch·r语言
CS创新实验室3 小时前
CS实验室行业报告:机器人领域就业分析报告
大数据·人工智能·机器人
老陈头聊SEO5 小时前
生成引擎优化(GEO)为内容创作引入新视角与用户体验提升策略
其他·搜索引擎·seo优化
LinuxGeek10247 小时前
Kylin-Server-V11、openEuler-22.03和openEuler-24.03的MySQL 9.7.0版本正式发布
大数据·mysql·kylin
容智信息7 小时前
国家级算力底座+企业级智能体:容智Agent OS 获选入驻移动云能中心,联手赋能千行百业
大数据·人工智能·自然语言处理·智慧城市
Chuer_7 小时前
讲透财务Agent核心概念,深度拆解财务Agent应用趋势
大数据·数据库·安全·数据分析·甘特图
gushinghsjj7 小时前
什么是主数据管理平台?怎么构建主数据管理平台?
大数据·数据库
焦糖玛奇朵婷7 小时前
解锁扭蛋机小程序的五大优势
java·大数据·服务器·前端·小程序
OtIo TALL8 小时前
Java进阶(ElasticSearch的安装与使用)
java·elasticsearch·jenkins