共计 5780 个字符,预计需要花费 15 分钟才能阅读完成。
Gitea 是用 Go 编写的自托管开源 git 服务器。这是 Gogs 的分叉。Gitea 包括存储库文件编辑器,项目问题跟踪,用户管理,通知,内置 Wiki 等。
Gitea 是轻量级的应用程序,可以安装在低功率系统上。如果您正在寻找内存占用量少得多的 Gitlab 替代产品,并且不需要 Gitlab 提供的所有功能,那么您绝对应该尝试 Gitea。
本教程说明了如何在 Ubuntu 18.04 上安装和配置 Gitea。相同的说明适用于 Ubuntu 16.04 和任何其他基于 Debian 的发行版。
必要条件
Gitea 支持 SQLite,PostgreSQL 和 MySQL/MariaDB 作为数据库后端。
我们将使用 SQLite 作为 Gitea 的数据库。如果您的 Ubuntu 系统上未安装 SQLite,则可以通过以 sudo 用户身份输入以下命令来安装它:
[linuxidc@linux:~/www.linuxidc.com]$ sudo apt update
[linuxidc@linux:~/www.linuxidc.com]$ sudo apt install sqlite3
安装 Gitea
Gitea 提供了 Docker 映像,可以从源代码,二进制文件或作为软件包安装。
我们将从二进制文件安装 Gitea。完成以下步骤,在 Ubuntu 上安装 Gitea。
安装 Git
第一步是在您的服务器上安装 Git:
[linuxidc@linux:~/www.linuxidc.com]$ sudo apt install git
通过显示 Git 版本来验证安装:
[linuxidc@linux:~/www.linuxidc.com]$ git –version
git version 2.17.1
创建一个 Git 用户
创建一个新的系统用户,将通过键入以下内容来运行 Gitea 应用程序:
该命令将创建一个名为 git 的新用户和组,并将主目录设置为 /home/git。输出如下所示:
[linuxidc@linux:~/www.linuxidc.com]$ sudo adduser –system –group –disabled-password –shell /bin/bash –home /home/git –gecos ‘Git Version Control’ git
正在添加系统用户 ”git” (UID 122)…
正在添加新组 ”git” (GID 127)…
正在将新用户 ”git” (UID 122)添加到组 ”git”…
创建主目录 ”/home/git”…
下载 Gitea 二进制文件
访问 Gitea 下载页面,并下载适用于您的体系结构的最新二进制文件。在撰写本文时,最新版本为 1.10.2。如果有可用的新版本,请在下面的命令中更改 VERSION 变量。
使用以下 wget 命令在 /tmp 目录中下载 Gitea 二进制文件:
[linuxidc@linux:~/www.linuxidc.com]$ VERSION=1.10.2
[linuxidc@linux:~/www.linuxidc.com]$ sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
gitea 二进制文件可以在任何位置运行。我们将遵循约定并将二进制文件移至 /usr/local/bin 目录:
[linuxidc@linux:~/www.linuxidc.com]$ sudo mv /tmp/gitea /usr/local/bin
赋予二进制文件可执行权限:
[linuxidc@linux:~/www.linuxidc.com]$ sudo chmod +x /usr/local/bin/gitea
运行以下命令以创建目录并设置所需的权限和所有权:
[linuxidc@linux:~/www.linuxidc.com]$ sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
[linuxidc@linux:~/www.linuxidc.com]$ sudo chown git: /var/lib/gitea/{data,indexers,log}
[linuxidc@linux:~/www.linuxidc.com]$ sudo chmod 750 /var/lib/gitea/{data,indexers,log}
[linuxidc@linux:~/www.linuxidc.com]$ sudo mkdir /etc/gitea
[linuxidc@linux:~/www.linuxidc.com]$ sudo chown root:git /etc/gitea
[linuxidc@linux:~/www.linuxidc.com]$ sudo chmod 770 /etc/gitea
/etc/gitea 目录的权限设置为 770,以便安装向导可以创建配置文件。安装完成后,我们将设置更多限制性权限。
创建 Systemd Unit 位文件
Gitea 提供了已配置为与我们的设置匹配的 Systemd Unit 文件。
通过键入以下命令将文件下载到 /etc/systemd/system/ 目录:
[linuxidc@linux:~/www.linuxidc.com]$ sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/
完成后,启用并启动 Gitea 服务:
[linuxidc@linux:~/www.linuxidc.com]$ sudo systemctl daemon-reload
[linuxidc@linux:~/www.linuxidc.com]$ sudo systemctl enable –now gitea
Created symlink /etc/systemd/system/multi-user.target.wants/gitea.service → /etc/systemd/system/gitea.service.
配置 Gitea
现在已经下载并运行了 Gitea,是时候通过 Web 界面完成安装了。
默认情况下,Gitea 会侦听所有网络接口上端口 3000 上的连接。
如果您的服务器上运行着 UFW 防火墙,则需要打开 Gitea 端口:
要允许端口 3000 上的流量,请输入以下命令:
[linuxidc@linux:~/www.linuxidc.com]$ sudo ufw allow 3000/tcp
[sudo] linuxidc 的密码:
防火墙规则已更新
规则已更新(v6)
打开浏览器,输入 http://git.linuxidc.com: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”按钮。安装是即时的。完成后,您将被重定向到登录页面。
点击“立即注册”链接。第一个注册用户将自动添加到 Admin 组。
使用以下命令将 Gitea 配置文件的权限更改为只读:
[linuxidc@linux:~/www.linuxidc.com]$ sudo chmod 750 /etc/gitea
[linuxidc@linux:~/www.linuxidc.com]$ sudo chmod 640 /etc/gitea/app.ini
就这样。Gitea 已安装在您的 Ubuntu 计算机上。
将 Nginx 配置为 SSL/TLS 代理(termination proxy)
此步骤是可选的,但强烈建议这样做。要将 Nginx 用作反向代理,您需要具有一个指向服务器公共 IP 的域或子域。在本教程中,我们将使用 git.linuxidc.com。
首先,安装 Nginx 并使用以下指南生成免费的“加密 SSL”证书:
https://www.linuxidc.com/Linux/2018-05/152257.htm
https://www.linuxidc.com/Linux/2020-02/162228.htm
完成后,打开文本编辑器并编辑域服务器块文件:
sudo nano /etc/nginx/sites-enabled/git.example.com
server {listen 80;
server_name git.linuxidc.com;
include snippets/letsencrypt.conf;
return 301 https://git.linuxidc.com$request_uri;
}
server {listen 443 ssl http2;
server_name git.linuxidc.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.linuxidc.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/git.linuxidc.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/git.linuxidc.com/chain.pem;
include snippets/letsencrypt.conf;
include snippets/ssl.conf;
# log files
access_log /var/log/nginx/git.linuxidc.com.access.log;
error_log /var/log/nginx/git.linuxidc.com.error.log;
# Handle / requests
location / {
proxy_redirect off;
proxy_pass http://127.0.0.1:3000;
}
}
不要忘记用您的 Gitea 域替换 git.linuxidc.com,并为 SSL 证书文件设置正确的路径。HTTP 流量重定向到 HTTPS
重新启动 Nginx 服务以使更改生效:
$sudo systemctl restart nginx
接下来,更改 Gitea 域和根 URL。为此,请打开配置文件并编辑以下行:
$sudo nano /etc/gitea/app.ini
[server]
DOMAIN = git.linuxidc.com
ROOT_URL = https://git.linuxidc.com/
通过键入以下命令重新启动 Gitea 服务:
sudo systemctl restart gitea
至此,已经配置了 Gitea 代理,您可以在以下位置访问它:https://git.linuxidc.com
配置电子邮件通知
为了使 Gitea 能够发送通知电子邮件,您可以安装 Postfix 或使用某些事务性邮件服务,例如 SendGrid,MailChimp,MailGun 或 SES。
要启用电子邮件通知,请打开配置文件并编辑以下行:
$sudo nano /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 还允许您通过创建 Web Webhook 连接到 Slack 并将通知发送到您的 Slack 频道。
升级 Gitea
要升级到最新的 Gitea 版本,只需下载并替换二进制文件即可。
01、停止 Gitea 服务:
sudo systemctl stop gitea
02、下载最新的 Gitea 版本并将其移至 /home/git 目录:
VERSION=<THE_LATEST_GITEA_VERSION>
wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
sudo mv /tmp/gitea /usr/local/bin
03、赋予二进制文件可执行权限:
sudo chmod +x /usr/local/bin/gitea
04、启动 Gitea 服务:
sudo systemctl restart gitea
就这样。
总结
本教程将引导您完成在 Ubuntu 18.04 上安装 Gitea 的过程。现在,您应该访问 Gitea 文档页面,并学习如何配置 Gitea 实例并创建第一个项目。
如有疑问,请在下面发表评论。
: