gitea 是一个在 go 中编写的自托管开源 git 服务器。它配备了存储库文件编辑器、项目问题跟踪、用户管理、通知、内置 wiki 等。
gitea是一个轻量级应用程序,可以安装在功能不太强大的系统上。如果您正在寻找内存占用空间更小的 gitlab 替代方案,并且不需要 gitlab 提供的所有铃声和口哨,您应该尝试 gitea。
本文介绍如何在 上安装和配置 gitea。
先决条件
gitea 支持sqlite、postgresql和mysql /mariadb作为数据库后端。
我们将使用 sqlite。它是一个轻量级数据库,在单个文件中存储数据。如果 centos 计算机上未安装 sqlite,您可以通过以 sudo 用户方式运行以下命令来安装它:
sudo dnf install sqlite
我们假设selinux 已禁用或设置为允许模式。
gitea 可以从源、二进制和作为包安装。它也可以部署为 docker 映像。我们将使用 thr 二进制安装 gitea。
安装 git
第一步是在centos上安装 git:
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二进制文件可以从gitea下载页面下载。请确保下载适合体系结构的二进制文件。
在编写本文时,最新版本为 1.12.3。如果有新版本可用,请更改下面的命令中的变量。version
使用wget
下载目录中的 gitea 二进制文件:/tmp
version=1.12.3
sudo 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/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
上述目录结构由官方 gitea 文档推荐。
目录的权限设置为以便安装向导可以创建配置文件。安装完成后,我们将设置更严格的权限。/etc/gitea
770
创建系统单元文件
gitea 提供了一个系统单元文件,该文件配置为与我们的设置相匹配。
通过键入以下类型将文件下载到目录:/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
验证服务是否成功启动:
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 侦听所有网络接口上的端口上的连接。您需要配置防火墙才能访问gitea web 界面:3000
sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp
sudo 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 配置文件的权限更改为只读:
sudo chmod 750 /etc/gitea
sudo chmod 640 /etc/gitea/app.ini
就是这样。gitea 已安装在 centos 计算机上。
将 nginx 配置为 ssl 终止代理
此步骤是可选的,但强烈建议这样做。若要使用 nginx 作为反向代理,需要有指向服务器公共 ip 的域或子域。在本教程中,我们将使用 。git.example.com
首先,安装 nginx 并使用以下教程生成免费的”让我们加密 ssl 证书”:
完成后,打开文本编辑器并编辑域服务器块文件:
sudo nano /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;
}
}
不要忘记将计算机替换为 gitea git.example.com,并设置 ssl 证书文件的正确路径。http 流量重定向到 https 。
完成后,重新启动 nginx 服务以使更改生效:
sudo systemctl restart nginx
接下来,更改 gitea 域和根 url。为此,请打开配置文件并编辑以下行:
sudo nano /etc/gitea/app.ini
[server]
domain = git.example.com
root_url = https://git.example.com/
通过键入:
sudo systemctl restart gitea
此时,gitea 代理已配置,您可以在:https://git.example.com
配置电子邮件通知
对于要发送的通知电子邮件,您可以安装 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 服务才能使更改生效:app.ini
sudo systemctl restart gitea
要验证设置并发送测试电子邮件,请登录到 gitea 并转到:站点管理 > 配置 > smtp 邮件配置。
gitea 还允许您通过创建 webhook连接到 slack,并向 slack 通道发送通知。
升级吉泰亚
升级到最新的 gitea 版本是一项简单的任务。您只需要下载并替换二进制文件。
- 停止 gitea 服务:
sudo systemctl stop gitea
- 下载最新的 gitea 二进制文件并移动到目录:
/usr/local/bin
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
就是这样。
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/yun35712.html