Gitea 是一个用 Go 编写的快速且易于使用的自托管 git 服务器。它包括存储库文件编辑器、项目问题跟踪、用户管理、通知、内置 wiki 等等。
Gitea 是一个轻量级应用程序,可以安装在低功耗系统上。如果您正在寻找内存占用小得多的 Gitlab 替代品,并且您不需要所有附加功能Gitlab 提供,那么你应该尝试一下 Gitea。
本文介绍如何在 Ubuntu 20.04 上安装和配置 Gitea。
先决条件#
Gitea 支持 SQLite,PostgreSQL
, and MySQL
/MariaDB 作为数据库后端。
仅建议小型安装使用 SQLite。较大的安装应使用 MySQL 或 PostgreSQL。
我们将使用 SQLite 作为 Gitea 的数据库。如果您的 Ubuntu 系统上未安装 SQLite,请输入以下命令来安装它:须藤用户
:
sudo apt update
sudo apt install sqlite3
安装Gitea#
Gitea 提供 Docker 镜像,可以从源代码、二进制文件或软件包的形式安装。我们将从二进制安装 Gitea。
安装Git#
第一步是安装Git 在您的服务器上:
sudo apt update
sudo apt install git
通过显示 Git 版本来验证安装:
git --version
git version 2.25.1
创建 Git 用户#
创建新的系统用户 这将通过键入以下内容来运行 Gitea 应用程序:
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
上面的命令创建一个名为的新用户和组git
,并将主目录设置为/home/git
。输出如下所示:
Adding system user `git' (UID 112) ...
Adding new group `git' (GID 118) ...
Adding new user `git' (UID 112) with group `git' ...
Creating home directory `/home/git' ...
下载 Gitea 二进制文件#
前往吉泰亚下载页面 并下载适合您的架构的最新二进制文件。在撰写本文时,最新版本是 1.10.2。如果有新版本可用,请更改VERSION
下面的命令中的变量。
Use wget 下载 Gitea 二进制文件/tmp
目录:
VERSION=1.14.1
sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/${VERSION}/gitea-${VERSION}-linux-amd64
您可以运行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,log}
sudo chown -R git:git /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
上面的目录结构是Gitea官方文档推荐的。
的权限/etc/gitea
目录设置为770
以便安装向导可以创建配置文件。安装完成后,我们将设置更严格的权限。
创建 Systemd 单元文件#
我们将把 Gitea 作为 systemd 服务运行。
将示例 systemd 单元文件下载到/etc/systemd/system
目录,输入:
sudo wget https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/systemd/gitea.service -P /etc/systemd/system/
您不需要编辑该文件,它已配置为与我们的设置相匹配。
启用并启动Gitea服务:
sudo systemctl daemon-reload
sudo systemctl enable --now gitea
验证 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 Thu 2021-05-06 05:32:04 UTC; 7s ago
Main PID: 77781 (gitea)
Tasks: 6 (limit: 470)
Memory: 130.6M
CGroup: /system.slice/gitea.service
└─77781 /usr/local/bin/gitea web --config /etc/gitea/app.ini
...
现在 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
应用程序常规设置:
站点标题:输入您的组织名称。
存储库根路径:保留默认值var/lib/gitea/data/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/gitea
sudo chmod 640 /etc/gitea/app.ini
就是这样。 Gitea 已安装在您的 Ubuntu 计算机上。
将 Nginx 配置为 SSL 终止代理#
此步骤是可选的,但强烈建议这样做。 SSL 终止意味着 Nginx 将充当 Gitea 应用程序和 Web 客户端之间的中间点,以便您可以通过 HTTPS 访问 Gitea。
To use Nginx 作为反向代理 ,您需要有一个指向您服务器的公共IP的域或子域。在这个例子中,我们将使用git.example.com
.
首先,安装 Nginx 并使用以下指南生成免费的 Let’s Encrypt SSL 证书:
如何在 Ubuntu 20.04 上安装 Nginx
在 Ubuntu 20.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 版本,只需下载并替换二进制文件即可。
停止 Gitea 服务:
sudo systemctl stop gitea
下载最新的 Gitea 版本并将其移至/usr/local/bin
目录:
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
使二进制可执行文件:
sudo chmod +x /usr/local/bin/gitea
重启Gitea服务:
sudo systemctl restart gitea
就是这样。
结论#
本教程引导您完成在 Ubuntu 20.04 上安装 Gitea。有关如何配置 Gitea 实例和创建第一个项目的更多信息,请访问Gitea 文档页面
.
如果您有疑问,请随时在下面发表评论。