如何在Ubuntu 18.04上安装Gitea
Gitea是用Go编写的自托管开源git服务器。本教程说明了如何在Ubuntu 18.04上安装和配置Gitea。相同的说明适用于Ubuntu 16.04和任何其他基于Debian的发行版。
Gitea是用Go编写的自托管开源git服务器。这是Gogs的Fork。Gitea包括存储库文件编辑器,项目问题跟踪,用户管理,通知,内置Wiki等。
Gitea是轻量级的应用程序,可以安装在低功率系统上。如果您正在寻找内存占用量少得多的Gitlab替代品,并且不需要Gitlab提供的所有功能,那么您绝对应该尝试Gitea。
先决条件
Gitea支持SQLite,PostgreSQL和MySQL / MariaDB作为数据库后端。
我们将使用SQLite作为Gitea的数据库。如果您的Ubuntu系统上未安装SQLite,则可以通过以sudo user输入以下命令来安装它:
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.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二进制文件
访问Gitea下载页面,并下载适用于您的体系结构的最新二进制文件。在撰写本文时,最新版本为1.10.2。如果有可用的新版本,请VERSION
在下面的命令中更改变量。
/tmp
使用以下wget
命令将Gitea二进制文件下载到目录中:
VERSION=1.10.2
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,indexers,public,log}
sudo chown git: /var/lib/gitea/{data,indexers,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
上面的目录结构由官方的Gitea文档推荐。
/etc/gitea
目录的权限设置为,770
以便安装向导可以创建配置文件。安装完成后,我们将设置更多限制性权限。
创建系统单位文件
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-reload
sudo systemctl enable --now 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端口:
要允许port上的流量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”按钮。安装是即时的。完成后,您将被重定向到登录页面。
点击“立即注册”链接。第一个注册用户将自动添加到Admin组。
使用以下命令将Gitea配置文件的权限更改为只读:
sudo chmod 750 /etc/gitea
sudo 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 SSL证书 来保护Nginx
完成后,打开文本编辑器并编辑域服务器阻止文件:
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;
}
}
不要忘记用您的Gitea域替换git.example.com,并设置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还允许您通过创建Web Webhook连接到Slack 并将通知发送到您的Slack频道。
升级Gitea
要升级到最新的Gitea版本,只需下载并替换二进制文件即可。
停止Gitea服务:
sudo systemctl stop gitea
下载最新的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
使二进制文件可执行:
sudo chmod +x /usr/local/bin/gitea
启动Gitea服务:
sudo systemctl restart gitea
结论
本教程将引导您完成在Ubuntu 18.04上安装Gitea的过程。
现在,您应该访问Gitea文档页面,并学习如何配置Gitea实例并创建第一个项目。
如有疑问,请在下面发表评论。
{{ nComment.author.nickname }}
{{ nComment.time }}