【小团队私有化git搭建】

Gitea 安装和配置教程

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


1️⃣ 安装 Gitea

🛠️ 安装前准备

  1. 更新系统 :

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

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

    安装必要的依赖包,如 Git 和 curl。

    复制代码
    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 的安装页面,按照以下步骤进行配置:

    • 数据库类型 :选择 MySQL 或 SQLite。
    • 数据库连接 :如果使用 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 服务以正确的用户身份运行。
相关推荐
4SAPI8 小时前
官方API、API聚合平台与自建LLM Gateway:三种方案怎么选
大数据·人工智能·gateway·php
ManageEngineITSM8 小时前
工单优先级怎么定?影响×紧急度矩阵的设计与落地方法
java·大数据·运维·前端·数据库·变更管理
智商网输送线配件8 小时前
电子制造零散耗材补货实战:小批量混批采购平台怎么选才不停机?
大数据·服务器·前端·数据库·自动化
程序员IT行业9 小时前
广东行政事业单位物资管理系统选型:先定功能需求,再定部署架构
大数据·架构
橙色云-智橙协同研发9 小时前
汽车零部件行业:如何应对主机厂的严苛审核?
大数据·运维·服务器·人工智能·安全
努力变大白9 小时前
把“会说话的模型“变成“会干活的 Agent“
大数据·人工智能·机器学习
starzy19909 小时前
Flink Task 执行源码深度剖析:从 Task 线程启动到算子链执行的完整链路
大数据·flink
KING-WU5129 小时前
Git 版本控制器实战指南
大数据·git·elasticsearch
SelectDB技术团队9 小时前
日志场景 Elasticsearch 替换实操:建表、索引、写入链路与查询改写的完整参数
大数据·数据库·数据仓库·elasticsearch·全文检索·日志分析·apache doris
大大大大晴天️10 小时前
每天认识一个组件:Spark Catalyst
大数据·spark