• 搜索
  • 夜间模式
    ©2012-2026  陈十一的小破站 Theme by OneBlog

    陈十一的小破站博客

    搜索
    标签
    # Nodejs # CentOS # Git # Golang # Docker # Windows # Nginx # 反向代理 # 脚本 # Linux
  • 首页>
  • 技术>
  • 正文
  • Gitea轻量级的 DevOps 平台软件搭建

    2025年05月24日 613 阅读 0 评论 4359 字

    关于Gitea

    Gitea 是一个轻量级的 DevOps 平台软件。从开发计划到产品成型的整个软件生命周期,他都能够高效而轻松的帮助团队和开发者。包括 Git 托管、代码审查、团队协作、软件包注册和 CI/CD。它与 GitHub、Bitbucket 和 GitLab 等比较类似。 Gitea 最初是从 Gogs 分支而来,几乎所有代码都已更改。

    目标

    Gitea的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git 服务。

    采用Go作为后端语言,只需生成一个可执行程序即可。 支持 Linux, macOS 和 Windows等多平台, 支持主流的x86,amd64、 ARM 和 PowerPC等架构。

    Gitea二进制文件安装指南

    一、下载与验证二进制文件

    (一)选择合适版本

    Gitea为不同平台提供了丰富的二进制文件,可从下载页面获取。以Linux系统为例:

    • 64位Intel/AMD平台:选择linux-amd64版本。
    • 树莓派4等ARM64设备:选择arm64版本。
    • 32位系统:可选386或arm-5/arm-6版本。

    (二)命令行下载(以64位Linux为例)

    wget -O gitea https://dl.gitea.com/gitea/1.23.8/gitea-1.23.8-linux-amd64
    chmod +x gitea  # 添加执行权限

    (三)GPG签名验证

    通过GPG校验确保文件未被篡改:

    # 导入GPG公钥
    gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
    # 验证签名
    gpg --verify gitea-1.23.8-linux-amd64.asc gitea-1.23.8-linux-amd64

    校验成功提示:Good signature from "Teabot <teabot@gitea.io>"
    校验失败处理:检查下载链接或重新获取公钥。

    二、环境准备与用户配置

    (一)依赖检查

    确保已安装Git(版本≥2.0):

    git --version

    若未安装,需先通过系统包管理器安装(如apt install git或yum install git)。

    (二)创建专用用户

    建议创建名为git的系统用户用于运行Gitea:

    # Ubuntu/Debian系统
    adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
    
    # Fedora/RHEL/CentOS系统
    groupadd --system git
    adduser --system --shell /bin/bash --comment 'Git Version Control' --gid git --home-dir /home/git --create-home git

    (三)创建工作目录与权限设置

    # 创建目录结构
    mkdir -p /var/lib/gitea/{custom,data,log}
    # 授权给git用户
    chown -R git:git /var/lib/gitea
    chmod -R 750 /var/lib/gitea
    # 创建配置目录并设置权限
    mkdir /etc/gitea
    chown root:git /etc/gitea
    chmod 770 /etc/gitea  # 临时允许Web安装程序写入

    安装完成后建议权限修正:

    chmod 750 /etc/gitea
    chmod 640 /etc/gitea/app.ini  # 配置文件设为只读

    三、配置与启动Gitea

    (一)设置工作目录

    通过环境变量指定Gitea工作路径:

    export GITEA_WORK_DIR=/var/lib/gitea/

    若使用Systemd管理服务,可在服务文件中通过WorkingDirectory参数配置。

    (二)复制二进制文件

    将可执行文件移动到系统路径:

    cp gitea /usr/local/bin/gitea

    (三)启用自动补全(可选)

    • Bash自动补全:

      cp contrib/autocompletion/bash_autocomplete /usr/share/bash-completion/completions/gitea
      # 或在~/.bashrc中引用
      source /path/to/bash_autocomplete
    • Zsh自动补全:

      cp contrib/autocompletion/zsh_autocomplete /usr/share/zsh/_gitea
      # 或在~/.zshrc中引用
      source /path/to/zsh_autocomplete

    (四)启动方式

    1. 命令行临时启动(适用于测试)

    GITEA_WORK_DIR=/var/lib/gitea/ /usr/local/bin/gitea web -c /etc/gitea/app.ini

    2. Systemd服务启动(推荐)

    创建服务文件/etc/systemd/system/gitea.service,内容示例:

    [Unit]
    Description=Gitea Git Service
    After=syslog.target
    After=network.target
    
    [Service]
    Type=simple
    User=git
    Group=git
    WorkingDirectory=/var/lib/gitea
    ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
    Restart=always
    Environment=USER=git HOME=/home/git
    
    [Install]
    WantedBy=multi-user.target

    启用并启动服务:

    systemctl enable gitea
    systemctl start gitea

    四、升级与故障处理

    (一)版本升级步骤

    1. 停止当前运行的Gitea服务:

      systemctl stop gitea  # 或kill -1 $PID(优雅停止)
    2. 替换二进制文件(保持文件名gitea不变):

      wget -O /usr/local/bin/gitea https://dl.gitea.com/gitea/最新版本/gitea-最新版本-linux-amd64
      chmod +x /usr/local/bin/gitea
    3. 重启服务:

      systemctl start gitea

    (二)常见问题排查

    1. 旧版glibc报错

    错误提示:./gitea: /lib/x86_64-linux-gnu/libc.so.6: version 'GLIBC_2.14' not found
    解决方案:从源代码编译安装(不包含SQLite支持)或升级系统glibc版本。

    2. 端口被占用

    错误提示:listen tcp 0.0.0.0:3000: bind: address already in use
    解决方法:指定其他端口启动:

    gitea web -p 8080  # 替换3000为可用端口

    3. 树莓派运行问题(v1.8+版本)

    问题描述:arm7版本无法运行
    解决方案:改用arm6版本(经测试兼容树莓派)。

    4. 更新后Git钩子失效

    错误提示:remote: ./hooks/pre-receive.d/gitea: line 2: [...] No such file or directory
    解决步骤:

    1. 进入Gitea管理面板,运行任务Resynchronize pre-receive, update and post-receive hooks of all repositories更新钩子路径。
    2. 若使用自定义SSH服务器,运行Update the '.ssh/authorized_keys' file with Gitea SSH keys重新生成授权文件。

    五、安全建议

    1. 配置文件权限:确保/etc/gitea/app.ini仅允许root:git用户组读取(权限640)。
    2. 禁止root运行:始终使用非root用户(如git)运行Gitea,避免权限滥用。
    3. 定期备份:对/var/lib/gitea/data(数据库)和/var/lib/gitea/repositories(仓库)目录进行定期备份。
    本文著作权归作者 [ 陈十一 ] 享有,未经作者书面授权,禁止转载,封面图片来源于 [ 互联网 ] ,本文仅供个人学习、研究和欣赏使用。如有异议,请联系博主及时处理。
    Gitea
    — END —
    Copyright©2012-2026  All Rights Reserved.  Load:0.013 s
    Theme by OneBlog V3.6.5
    夜间模式

    开源不易,请尊重作者版权,保留基本的版权信息。