如何在 Ubuntu 18.04 上安装 Gitea

2023-11-15

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

Gitea是一个轻量级应用程序,可以安装在低功耗系统上。如果您正在寻找内存占用小得多的 Gitlab 替代品,并且您不需要所有附加功能Gitlab优惠,那么你绝对应该尝试一下 Gitea。

本教程介绍如何在 Ubuntu 18.04 上安装和配置 Gitea。相同的说明适用于 Ubuntu 16.04 和任何其他基于 Debian 的发行版。

先决条件#

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

我们将使用 SQLite 作为 Gitea 的数据库。如果您的 Ubuntu 系统上未安装 SQLite,您可以通过输入以下命令来安装它:须藤用户 :

sudo apt updatesudo apt install sqlite3

安装Gitea#

Gitea 提供 Docker 镜像,可以从源代码、二进制文件或软件包的形式安装。我们将从二进制安装 Gitea。

安装Git#

第一步是安装Git在您的服务器上:

sudo apt updatesudo apt install git

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

git --version
git version 2.17.1

创建 Git 用户#

创建新的系统用户这将通过键入以下内容来运行 Gitea 应用程序:

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

该命令将创建一个名为的新用户和组git,并将主目录设置为/home/git。输出如下所示:

Adding system user `git' (UID 111) ...
Adding new group `git' (GID 116) ...
Adding new user `git' (UID 111) with group `git' ...
Creating home directory `/home/git' ...

下载 Gitea 二进制文件#

参观吉泰亚下载页面并下载适合您的架构的最新二进制文件。在撰写本文时,最新版本是 1.10.2。如果有新版本可用,请更改VERSION下面的命令中的变量。

下载 Gitea 二进制文件/tmp使用以下目录wget命令:

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

The gitea二进制文件可以从任何位置运行。我们将遵循约定并将二进制文件移动到/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在所有网络接口上。

如果你有一个UFW防火墙在您的服务器上运行,您需要打开 Gitea 端口:

允许端口上的流量3000,输入以下命令:

sudo ufw allow 3000/tcp

打开浏览器,输入http://YOUR_DOMAIN_IR_IP:3000,并且将出现类似以下的屏幕:

数据库设置:

  • 数据库类型: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 已安装在您的 Ubuntu 计算机上。

将 Nginx 配置为 SSL 终止代理#

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

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

  • 如何在 Ubuntu 18.04 上安装 Nginx
  • 在 Ubuntu 18.04 上使用 Let’s Encrypt 保护 Nginx

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

sudo nano /etc/nginx/sites-enabled/git.example.com
/etc/nginx/sites-enabled/git.example.com
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

配置电子邮件通知#

为了使 Gitea 能够发送通知电子邮件,您可以安装 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 服务器信息。

重新启动 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

就是这样。

结论#

本教程引导您完成在 Ubuntu 18.04 上安装 Gitea。

您现在应该访问Gitea 文档页面并了解如何配置 Gitea 实例并创建您的第一个项目。

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

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

如何在 Ubuntu 18.04 上安装 Gitea 的相关文章

随机推荐

  • 如何在 Ubuntu 和 Debian 上安装和使用 Imapsync

    Imapsync是一种 IMAP 传输工具 用于将电子邮件从一个 IMAP 服务器复制到另一个 IMAP 服务器 本文将帮助您在 Ubuntu Debian 和 Linuxmint 系统上安装 imapsync 并在两个 IMAP 服务器之
  • Linux 中不存在目录时如何创建

    Linux 是全球数百万用户使用的流行操作系统 使用 Linux 时的一项常见任务是创建和管理目录 在本文中 我们将介绍如何在 Linux 中创建目录 仅当目录尚不存在时 这在编写脚本或执行需要创建多个具有唯一名称的目录的任务时非常有用 使
  • 解决 Flask 中的“AssertionError:视图函数映射正在覆盖现有端点函数”错误

    Flask 是一种广泛使用的用 Python 编写的微型 Web 框架 它因其简单性和为开发人员提供的控制而广受欢迎 但是 与任何其他框架一样 开发人员在使用 Flask 时可能会遇到错误 其中一个错误是 断言错误 视图函数映射正在覆盖现有
  • 如何在 Linux 中打开端口

    在 Linux 操作系统中 端口是用于通过网络发送或接收数据的通信端点 网络端口由数字标识 每个端口号与特定类型的网络服务相关联 例如 端口 80 用于 HTTP 流量 端口 21 用于 FTP 端口 25 用于电子邮件 为了建立网络连接
  • 在 Bash 中使用管道 (|) 运算符

    Bash 脚本是管理和在类 Unix 系统上工作的一个组成部分 管道运算符 是 Bash 脚本工具包中一个非常强大的工具 尽管外观简单 但它是高效命令行操作 简化流程和实现复杂数据操作的基石 本文深入探讨了管道运算符的使用 探讨它是什么 它
  • 如何在 Bash 脚本中获取当前日期和时间

    作为一种脚本语言 Bash 广泛用于系统管理任务和自动化 Bash 脚本中的一项常见任务是获取当前日期和时间 这 date 命令以特定格式返回当前日期和时间 但您也可以使用自定义格式字符串来获取任何格式的日期和时间 在本文中 我们将探讨如何
  • Linux 中的 Uname 命令

    在本文中 我们将介绍uname命令 uname是一个命令行实用程序 可打印有关操作系统名称和系统硬件的基本信息 uname命令 The uname工具最常用于确定处理器架构 系统主机名和内核版本系统上运行 的语法uname命令采用以下形式
  • Linux中的Find命令(查找文件和目录)

    The find命令是 Linux 系统管理员工具库中最强大的工具之一 它根据用户给定的表达式在目录层次结构中搜索文件和目录 并可以对每个匹配的文件执行用户指定的操作 您可以使用find命令根据文件和目录的权限 类型 日期 所有权 大小等搜
  • 如何在 CentOS 7 上安装 Apache Cassandra

    Apache Cassandra 是一款开源 NoSQL 数据库 无单点故障 提供线性可扩展性和高可用性 且不会影响性能 在 Cassandra 中 记录的结构与关系数据库中的表 行和列类似 Apache Cassandra 被许多组织使用
  • 猛击直到循环

    循环是编程语言的基本概念之一 当您想要一遍又一遍地运行一系列命令直到满足特定条件时 循环会很方便 在 Bash 等脚本语言中 循环对于自动执行重复任务非常有用 Bash 脚本中有 3 种基本循环结构 for loop while 循环 an
  • 如何在树莓派上安装 Ubuntu

    Raspberry Pi 是有史以来最受欢迎的单板计算机 它可用于多种用途 如台式电脑 家庭媒体中心 智能 Wi Fi 路由器 自动化系统和游戏服务器 用例是无穷无尽的 如果您的 Raspberry Pi 没有预装 NOOBS 的 SD 卡
  • 如何在 Debian 9 上安装 Python 3.7

    Python 是世界上最流行的编程语言之一 Python 以其简单易学的语法成为初学者和经验丰富的开发人员的绝佳选择 Python 是一种非常通用的编程语言 您几乎可以用它来做任何您想做的事情 编写小脚本 构建游戏 开发网站 创建机器学习算
  • 如何在 Ubuntu Linux 上挂载 exFAT 驱动器

    exFAT 扩展文件分配表 是 Microsoft 专有的文件系统 针对 SD 卡和 USB 闪存驱动器等闪存设备进行了优化 它旨在取代旧的 32 位 FAT32 文件系统 该系统无法存储大于 4 GB 的文件 所有最新版本的 Window
  • 如何在 Ubuntu 18.04 上安装 Slack

    Slack是世界上最受欢迎的协作平台之一 它将您的所有通信汇集在一起 Slack 中的对话按频道组织 您可以为您的团队 项目 主题或任何其他目的创建频道 以保持信息和对话井井有条 您可以搜索频道或消息中发布的所有内容 Slack 还允许您通
  • 如何在 Debian 9 上安装 Skype

    Skype是世界上最受欢迎的通信应用程序之一 可让您免费进行在线音频和视频通话 并以经济实惠的价格拨打全球手机和固定电话 Skype 不是开源应用程序 也不包含在 Debian 存储库中 在本教程中 我们将解释如何在 Debian 9 上安
  • Bash 序列表达式(范围)

    在本文中 我们将介绍 Bash 中序列表达式的基础知识 Bash 序列表达式通过定义范围的起点和终点来生成整数或字符范围 一般与以下组合使用for loops Bash 序列表达式 序列表达式采用以下形式 START END INCREME
  • 如何使用 psql 列出 PostgreSQL 数据库和表

    给药时PostgreSQL在数据库服务器中 您可能执行的最常见任务之一是列出数据库及其表 PostgreSQL 附带了一个交互式工具 称为psql 它允许您连接到服务器并对其运行查询 使用时psql您还可以利用它的元命令 这些命令对于脚本编
  • Linux 中的 Gunzip 命令

    Gunzip 是一个用于解压缩 Gzip 文件的命令行工具 Gzip 是最流行的压缩算法之一 它可以减小文件大小并保留原始文件模式 所有权和时间戳 按照惯例 使用 Gzip 压缩的文件要么是 gz or z扩大 在本教程中 我们将解释如何使
  • 如何在 CentOS 7 上安装和配置 Squid 代理

    Squid 是一个功能齐全的缓存代理 支持流行的网络协议 如 HTTP HTTPS FTP 等 将 Squid 放置在 Web 服务器前面可以通过缓存重复请求 过滤 Web 流量和访问地理限制内容来极大地提高服务器性能 本教程介绍如何在 C
  • 如何在 Ubuntu 18.04 上安装 Gitea

    Gitea 是一个用 Go 编写的自托管开源 git 服务器 它是一个叉子Gogs Gitea 包括存储库文件编辑器 项目问题跟踪 用户管理 通知 内置 wiki 等等 Gitea是一个轻量级应用程序 可以安装在低功耗系统上 如果您正在寻找