如何在 CentOS 8 上安装 Gitea

2023-11-10

Gitea 是一个用 Go 编写的自托管开源 git 服务器。它配备了存储库文件编辑器、项目问题跟踪、用户管理、通知、内置 wiki 等等。

Gitea是一个轻量级应用程序,可以安装在功能较弱的系统上。如果您正在寻找内存占用小得多的 Gitlab 替代方案,并且不需要 Gitlab 提供的所有功能,那么您应该尝试 Gitea。

本文向您展示如何在 CentOS 8 上安装和配置 Gitea。

先决条件#

Gitea 支持 SQLite,PostgreSQL , and MySQL /MariaDB作为数据库后端。

我们将使用 SQLite。它是一个轻量级数据库,将数据存储在单个文件中。如果您的 CentOS 计算机上未安装 SQLite,您可以通过运行以下命令来安装它:须藤用户 :

sudo dnf install sqlite

我们假设SELinux 被禁用或设置为宽容模式。

安装Gitea#

Gitea 可以从源代码、二进制文件或软件包的形式安装。它还可以部署为 Docker 映像。我们将使用二进制文件安装 Gitea。

安装Git#

第一步是安装Git在你的 CentOS 上:

sudo dnf install git

通过显示 Git 版本来验证安装:

git --version
git version 2.18.4

创建 Git 用户#

创建新的系统用户运行 Gitea 应用程序:

sudo useradd \   --system \   --shell /bin/bash \   --comment 'Git Version Control' \   --create-home \   --home /home/git \   git

该命令将创建一个名为的新用户和组git,并将主目录设置为/home/git.

下载 Gitea 二进制文件#

最新的 Gitea 二进制文件可以从吉泰亚下载页面。确保为您的架构下载正确的二进制文件。

在撰写本文时,最新版本是 1.12.3。如果有新版本可用,请更改VERSION下面的命令中的变量。

Use wget下载 Gitea 二进制文件/tmp目录:

VERSION=1.12.3sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64

您可以从任何位置运行二进制文件。我们将遵循约定并将二进制文件移动到/usr/local/bin目录:

sudo mv /tmp/gitea /usr/local/bin

使二进制可执行文件:

sudo chmod +x /usr/local/bin/gitea

以下命令将创建必要的目录并设置所需的权限和所有权 :

sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}sudo chown git: /var/lib/gitea/{data,indexers,log}sudo chmod 750 /var/lib/gitea/{data,indexers,log}sudo mkdir /etc/giteasudo chown root:git /etc/giteasudo chmod 770 /etc/gitea

上面的目录结构是Gitea官方文档推荐的。

的权限/etc/gitea目录设置为770以便安装向导可以创建配置文件。安装完成后,我们将设置更严格的权限。

创建 Systemd 单元文件#

Gitea 提供了一个 Systemd 单元文件,该文件的配置与我们的设置相匹配。

将文件下载到/etc/systemd/system/目录,输入:

sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/

完成后,启用并启动 Gitea 服务:

sudo systemctl daemon-reloadsudo systemctl enable --now gitea

验证服务是否启动成功:

sudo systemctl status gitea
● gitea.service - Gitea (Git with a cup of tea)
   Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2020-01-04 21:27:23 UTC; 3s ago
 Main PID: 14804 (gitea)
    Tasks: 9 (limit: 1152)
   CGroup: /system.slice/gitea.service
           └─14804 /usr/local/bin/gitea web --config /etc/gitea/app.ini
...

配置Gitea#

现在 Gitea 已启动并运行,是时候通过 Web 界面完成安装了。

默认情况下,Gitea 监听端口上的连接3000在所有网络接口上。您需要配置您的firewall启用对 Gitea Web 界面的访问:

sudo firewall-cmd --permanent --zone=public --add-port=3000/tcpsudo firewall-cmd --reload

打开浏览器,输入http://YOUR_DOMAIN_IR_IP:3000/install,然后会出现初始配置页面:

填写必填字段,如下所示:

数据库设置:

  • 数据库类型:SQLite3
  • 路径:使用绝对路径,/var/lib/gitea/data/gitea.db

应用程序常规设置:

  • 站点标题 - 输入您的组织名称。
  • 存储库根路径 - 保留默认值/home/git/gitea-repositories.
  • Git LFS 根路径 - 保留默认值/var/lib/gitea/data/lfs.
  • 作为用户名运行 - git
  • SSH 服务器域 - 输入您的域或服务器 IP 地址。
  • SSH 端口 - 22,如果 SSH 是,请更改它监听其他端口
  • Gitea HTTP 监听端口 - 3000
  • Gitea 基本 URL - 使用 http 和您的域或服务器 IP 地址。
  • 日志路径 - 保留默认值/var/lib/gitea/log
稍后,您可以通过编辑 Gitea 配置文件来更改设置。

完成后,点击“安装 Gitea”按钮。安装是即时的。完成后,您将被重定向到登录页面。

单击“立即注册”链接。第一个注册用户会自动添加到管理员组。

为了使安装更加安全,请更改权限使用以下命令将 Gitea 配置文件设置为只读:

sudo chmod 750 /etc/giteasudo chmod 640 /etc/gitea/app.ini

就是这样。 Gitea 已安装在您的 CentOS 计算机上。

将 Nginx 配置为 SSL 终止代理#

此步骤是可选的,但强烈建议这样做。使用Nginx 作为反向代理,您需要有一个指向您的服务器公共IP的域或子域。在本教程中,我们将使用git.example.com.

首先,安装 Nginx 并使用以下指南生成免费的 Let’s Encrypt SSL 证书:

  • 如何在 CentOS 8 上安装 Nginx
  • 在 CentOS 8 上使用 Let's Encrypt 保护 Nginx

完成后,打开文本编辑器并编辑域服务器块 file:

sudo nano /etc/nginx/conf.d/git.example.com.conf
/etc/nginx/conf.d/git.example.com.conf
server {
    listen 80;
    server_name git.example.com;

    include snippets/letsencrypt.conf;
    return 301 https://git.example.com$request_uri;
}

server {
    listen 443 ssl http2;
    server_name git.example.com;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    client_max_body_size 50m;

    # Proxy headers
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/git.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/git.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/git.example.com/chain.pem;
    include snippets/letsencrypt.conf;
    include snippets/ssl.conf;

    # log files
    access_log /var/log/nginx/git.example.com.access.log;
    error_log /var/log/nginx/git.example.com.error.log;

    # Handle / requests
    location / {
       proxy_redirect off;
       proxy_pass http://127.0.0.1:3000;
    }
}

不要忘记将 git.example.com 替换为您的 Gitea 域,并设置 SSL 证书文件的正确路径。这HTTP 流量重定向到 HTTPS .

一旦完成,重启 Nginx 服务使更改生效:

sudo systemctl restart nginx

接下来,更改 Gitea 域和根 url。为此,请打开配置文件并编辑以下行:

sudo nano /etc/gitea/app.ini
/etc/gitea/app.ini
[server]
DOMAIN           = git.example.com
ROOT_URL         = https://git.example.com/

输入以下命令重新启动 Gitea 服务:

sudo systemctl restart gitea

至此,Gitea代理就配置完成了,您可以通过以下地址访问它:https://git.example.com

配置电子邮件通知#

对于要发送的通知电子邮件,您可以安装 Postfix 或使用事务性邮件服务,例如 SendGrid、MailChimp、MailGun 或 SES。

要启用电子邮件通知,请打开配置文件并编辑以下行:

sudo nano /etc/gitea/app.ini
/etc/gitea/app.ini
[mailer]
ENABLED = true
HOST    = SMTP_SERVER:SMTP_PORT
FROM    = SENDER_EMAIL
USER    = SMTP_USER
PASSWD  = YOUR_SMTP_PASSWORD

确保您使用正确的 SMTP 服务器信息。

每次编辑时app.ini文件中,您需要重新启动 Gitea 服务才能使更改生效:

sudo systemctl restart gitea

要验证设置并发送测试电子邮件,请登录 Gitea 并转至:站点管理 > 配置 > SMTP 邮件程序配置。

Gitea 还允许您通过创建一个连接到 Slack网络钩子并向您发送通知松弛通道 .

升级Gitea#

升级到最新的 Gitea 版本是一项简单的任务。您只需下载并替换二进制文件。

  1. 停止 Gitea 服务:

    sudo systemctl stop gitea
  2. 下载最新的 Gitea 二进制文件并将其移至/usr/local/bin目录:

    VERSION=<THE_LATEST_GITEA_VERSION>wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64sudo mv /tmp/gitea /usr/local/bin
  3. 使二进制可执行文件:

    sudo chmod +x /usr/local/bin/gitea
  4. 重启Gitea服务:

    sudo systemctl restart gitea

就是这样。

结论#

我们已经向您展示了如何在 CentOS 8 上安装 Gitea。您现在应该访问Gitea 文档页面并了解如何配置您的安装并创建您的第一个项目。

如果您有疑问,请随时在下面发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 CentOS 8 上安装 Gitea 的相关文章

  • Git 2.2.x 无缘无故更新旧包文件的时间戳

    Git 2 2 0 和 2 2 1 似乎修改了旧的时间戳 git objects pack pack pack偶尔会无缘无故地文件 它只是改变时间戳 内容是相同的 调试这一点很困难 因为它似乎很少进行更改 我在 2 2 0 之前的任何 Gi
  • 自定义 SSH 端口上的 Git

    我的 VPS 提供商建议我将 SSH 端口保留为他们默认分配的自定义端口号 不是 22 问题是 虽然我知道我可以在创建远程配置时提供端口号 但在进行 Git 克隆时似乎无法提供相同的操作 我在用gitolite https wiki arc
  • 如何让 Aptana Studio 记住 git ssh 密码

    我找不到任何有关如何获得 Aptana Studio 的内置 git 支持来记住执行推 拉操作的 ssh 密码的指南 信息 有人有什么想法吗 Aptana Studio 实际上是内置的 GIT 程序 它将在 Windows 上的 C Use
  • 如何在CentOS 5.3上安装php-mongodb?

    我已经在我的 VPS 上安装了 mongoDB 效果很好 现在我想安装 php 驱动程序以使 php 与 mongoDB 一起工作 我跟着蒙戈安装 http www php net manual en mongo installation
  • 为什么 Git 无法将文件更改与修改后的父级/主控合并?

    我有一个文件 里面只有一行 我创建一个分支并向同一文件添加第二行 保存并提交到分支 我切换回主人 并向文件中添加不同的第二行 保存并提交给master 现在总共有 3 条独特的线路 如果我现在尝试将分支合并回主分支 则会遇到合并冲突 为什么
  • 仅使用 Git grep 的文件名

    我只想查看文本中包含特定单词的不同文件 current directory git grep word 显示文件中具有匹配单词的每一行 所以我尝试了这个 current directory git grep word files with
  • `git push` -- 没有输出,什么也没有发生

    touch test git add test git commit m test git push u origin master 这奏效了 该文件已上传到存储库 rm test cp R website website git rm t
  • Git 无法识别重命名和修改的包文件

    我有一个名为的java文件package old myfile java 我已经通过 git 提交了这个文件 然后我将我的包重命名为new所以我的文件在package new myfile java 我现在想将此文件重命名 和内容更改 提交
  • git 2.32 git push -u origin master 没有任何反应

    I ve starting to use git github and I m stucked on how to push my codes to github I m following some tutorials and when
  • git merge 冲突的不同场景

    我试图了解 git 合并后可能发生 git 冲突的情况以及如何避免它们 我创建了一个 git 存储库并向其中添加了一个文本文件 我已将 1 添加到文本文件中并将其提交给 master 我已经从 master 创建了一个新分支 分支 2 并将
  • MSysGit 与 Windows 版 Git

    我无法确定MSysGit 和 Windows 版 Git 之间的区别 http msysgit github com 它们有何不同 为什么我会选择其中之一而不是另一个 它们不是同一个东西吗 On http msysgit github co
  • GIT:提交时“致命:无法写入 new_index 文件”

    当我尝试将更改提交到本地存储库时 我收到以下消息 致命 无法写入 new index 文件 As this 线程说明 http luhman org blog 2010 04 05 git fatal unable write newind
  • 有没有办法导入/导出容器绑定脚本

    我有一个插件 它使用 appscripts gs 以及 html js 和 css 文件 目前我们所做的是我们有一个参考 Google 文档 其中有一个脚本项目包含所有这些源代码 但是除了手动复制和粘贴之外 没有办法在 GIT 中保留源代码
  • Gitolite git 克隆错误

    我正在尝试在我的服务器 Macos 服务器 上设置 gitolite 我按照此处找到的安装文档中的说明进行操作 http sitaramc github com gitolite doc 1 INSTALL html http sitara
  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta
  • git-lfs 中的多个文件版本

    我正在尝试估计 GitHub 上我的项目的存储要求 并对 git lfs 如何存储多个版本的文件有一些疑问 git lfs 是否存储多个版本的文件 如果是这样 对文件的每次更改都会导致复制整个文件 还是仅存储差异 所有版本都会计入 gith
  • 以非交互式方式查找合并提交的正确父级

    我正在准备 svn2git 迁移 同时https github com nirvdrum svn2git https github com nirvdrum svn2git虽然非常有用 但我仍然遇到了一些恶作剧 我已经清理掉了大部分 但还剩
  • 有没有一种干净的方法来处理两个以相同内容开头的原始 git 存储库?

    假设我有两个根据相同的初始内容创建的存储库 例如 如果我使用 git 来管理 etc apache2 中的 apache 配置文件 然后我运行git init分别在机器 A 和机器 B 上 此后 我对 machine b 进行了一些配置更改
  • 仅使用 git 存储未暂存的更改(不是 --keep-index)

    首先 我确实知道 keep index 这不是我想要的 因为它仍然隐藏着all更改 但将暂存的更改保留在工作树中 如果可能的话 我只想存储未暂存的文件 而无需再次添加所有更改git stash patch 如果您想存储索引 已暂存的内容 和
  • 如何在多个不同的分支上工作,以便我可以在它们之间轻松切换?

    有没有办法在 GIT 中处理同一个文件但不同的功能 分支 我确信有办法 但最简单的方法是什么 我不想隐藏我的更改 因为这很麻烦 借助 SVN 我能够将 2 个独立的分支作为 2 个不同的实体进行工作 无需任何干预 并且可以轻松在两者之间切换

随机推荐

  • Linux中的Fdisk命令(创建磁盘分区)

    安装新的 SSD 或硬盘后 您需要做的第一件事就是对其进行分区 驱动器至少需要有一个分区 然后才能对其进行格式化并在其上存储文件 在 Linux 中 您可以使用多种工具来创建分区 其中fdisk是最常用的一种 在这篇文章中 我们将讨论fdi
  • Linux 中的 Rsync 命令及示例

    rsync是一个快速且多功能的命令行实用程序 用于通过远程 shell 在两个位置之间或从 到远程 Rsync 守护进程同步文件和目录 它通过仅传输源和目标之间的差异来提供快速增量文件传输 Rsync 可用于镜像数据 增量备份 在系统之间复
  • 如何在 Linux 中创建目录(mkdir 命令)

    在 Linux 系统中 您可以从命令行或借助桌面文件管理器创建新目录 允许您创建目录 也称为文件夹 的命令是mkdir 本教程涵盖了使用的基础知识mkdir命令 包括日常示例 Linux mkdir 命令语法 语法为mkdir命令如下 mk
  • 如何在 Ubuntu 20.04 上安装 Apache

    Apache 是世界上最流行的 Web 服务器之一 它是一个开源 跨平台的 HTTP 服务器 为大部分互联网网站提供支持 Apache 提供了许多强大的功能 可以通过附加模块进行扩展 本教程介绍如何在 Ubuntu 20 04 上安装和管理
  • 如何在 Debian 9 上设置 SSH 密钥

    Secure Shell SSH 是一种加密网络协议 用于客户端和服务器之间的安全连接 支持各种身份验证机制 两种最流行的机制是基于密码和基于公钥的身份验证 使用 SSH 密钥比传统的密码身份验证更安全 更方便 在本教程中 我们将描述如何在
  • 什么是 503 服务不可用错误

    浏览网页时最常见的错误之一是 503 服务不可用错误 此消息表明网络服务器遇到技术问题 无法处理请求 本文解释了 503 错误的含义 为什么会收到 HTTP 503 代码以及如何解决这些错误 什么是 HTTP 503 错误 当您打开网页时
  • 如何使用 SSHFS 通过 SSH 挂载远程目录

    SSHFS SSH 文件系统 是基于 FUSE 的文件系统客户端 用于通过 SSH 连接挂载远程目录 SSHFS 使用 SFTP 协议 它是 SSH 的一个子系统 并且在大多数 SSH 服务器上默认启用 与其他网络文件系统协议 例如 NFS
  • Linux 中的 pidof 命令

    pidof是一个命令行实用程序 可让您查找正在运行的程序的进程 ID 在这篇文章中 我们将解释如何使用Linuxpidof命令 如何使用pidof命令 有不同的实现pidof适用于基于 Red Hat 和 Debian 的发行版 在 Red
  • 在 Ubuntu 20.04 上安装 ONLYOFFICE 文档

    ONLYOFFICE Docs 是一个根据 AGPLv3 许可证分发的开源办公套件 它允许处理办公文档 电子表格和演示文稿 以及可填写的表格 您可以将其另存为 PDF 文件 该套件使用 DOCX XLSX 和 PPTX 作为核心格式 保证与
  • 如何在 CentOS 8 上安装 VirtualBox 来宾添加

    虚拟盒子是开源的跨平台虚拟化软件 允许您同时运行多个来宾操作系统 虚拟机 VirtualBox 提供了一组驱动程序和应用程序 VirtualBox Guest Additions 可以安装在来宾操作系统中以扩展来宾操作系统的功能 例如共享文
  • 如何在Linux中检查监听端口(正在使用的端口)

    在对网络连接或特定于应用程序的问题进行故障排除时 首先要检查的事情之一应该是系统上实际使用的端口以及哪个应用程序正在侦听特定端口 本文介绍了如何使用netstat ss and lsof命令来找出哪些服务正在侦听哪些端口 这些说明适用于所有
  • 如何在 CentOS 7 上安装 Nginx

    Nginx 发音engine x是一个免费 开源 高性能的 HTTP 和反向代理服务器 负责处理 Internet 上一些最大网站的负载 Nginx 可以用作独立的 Web 服务器 也可以用作反向代理 for Apache和其他网络服务器
  • 如何在 Debian 10 上安装 Anaconda

    Anaconda 是最流行的 Python R 数据科学和机器学习平台 它用于大规模数据处理 预测分析和科学计算 Anaconda 发行版附带 1 500 多个开源数据包 它还包括 conda 命令行工具和名为 Anaconda Navig
  • 如何在 Linux 中更改用户密码

    在本指南中 我们将解释如何在 Linux 中更改用户密码 我们还将向您展示如何强制用户在下次登录时更改密码 这些说明适用于任何 Linux 发行版 包括 Ubuntu Debian 和 CentOS 介绍 在 Linux 中 您可以使用以下
  • 如何在 Ubuntu 18.04 上安装 Elasticsearch

    Elasticsearch 是一个开源分布式全文搜索和分析引擎 它支持 RESTful 操作 允许您实时存储 搜索和分析大量数据 Elasticsearch 是最流行的搜索引擎之一 为具有复杂搜索要求的应用程序 例如大型电子商务商店和分析应
  • 如何在 CentOS 8 上更改主机名

    通常 主机名是在操作系统安装期间设置的 或者在创建虚拟机时动态分配给虚拟机的 您可能需要更改主机名的原因有很多 最常见的是在创建实例时自动设置主机名 本指南介绍了如何在 CentOS 8 上设置或更改主机名 而无需重新启动系统 先决条件 在
  • 如何在 Debian 9 上安装 VLC 媒体播放器

    VLC 是一个免费的开源多媒体播放器 它是跨平台的 可以播放几乎所有多媒体文件以及 DVD 音频 CD 和不同的流媒体协议 本教程介绍如何在 Debian 9 上安装 VLC 媒体播放器 先决条件 您需要以以下身份登录具有 sudo 访问权
  • 如何在 CentOS 8 上安装和配置 Fail2ban

    所有暴露在互联网上的服务器都面临着恶意软件攻击的风险 例如 如果您有一个连接到公共网络的软件 攻击者可以使用暴力尝试来获取对该应用程序的访问权限 Fail2ban 是一款开源工具 可通过监控服务日志中的恶意活动来帮助保护您的 Linux 计
  • 如何在 Debian 10 Linux 上安装 Apache Cassandra

    Apache Cassandra 是一个免费的开源 NoSQL 数据库 不存在单点故障 它提供线性可扩展性和高可用性 而不会影响性能 许多拥有大型活跃数据集的公司都在使用 Apache Cassandra 包括 Reddit NetFlix
  • 如何在 CentOS 8 上安装 Gitea

    Gitea 是一个用 Go 编写的自托管开源 git 服务器 它配备了存储库文件编辑器 项目问题跟踪 用户管理 通知 内置 wiki 等等 Gitea是一个轻量级应用程序 可以安装在功能较弱的系统上 如果您正在寻找内存占用小得多的 Gitl