2

如何在debian 11安装gitea

 1 year ago
source link: https://www.myfreax.com/how-to-install-gitea-on-debian-11/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

如何在debian 11安装gitea

Gitea是用Go语言编写的自托管开源git服务器。它是Gogs的分支。Gitea包括存储库文件编辑器,项目问题跟踪,用户管理,通知,内置Wiki等

Updated At 18 Oct 2022 9 min read
By myfreax
如何在debian 11安装gitea

如何在debian 11安装gitea

Gitea是用Go语言编写的自托管开源git服务器。它是Gogs的分支。Gitea包括仓库,文件编辑器,项目问题跟踪,用户管理,通知,内置Wiki等。

Gitea是轻型应用程序,可以安装在低配置系统。如果您正在寻找内存占用量少得多的Gitlab替代产品,并且不需要Gitlab提供的所有功能,那么您绝对应该尝试Gitea。

本教程介绍如何在debian 11安装Gitea。相同的说明适用于基于debian 11的Linux发行版,例如Linux mint。

Gitea支持SQLite,PostgreSQLMySQL/MariaDB作为数据库后端。

我们将使用SQLite作为Gitea的数据库。 如果您的debian 11未安装SQLite,则运行命令sudo apt update && sudo apt install sqlite3安装SQLite。

Gitea提供Docker映像,可以从源码,二进制文件和软件包中安装。我们将从二进制文件安装Gitea。

安装Gitea的第一步是安装git。当git安装完成后,可以运行git --version命令验证git的安装。

我们将创建一个普通用户运行Gitea。运行命令adduser命令创建用户git。命令将创建一个名为git的用户和组,并将家目录设置为/home/git

sudo apt update
sudo apt install sqlite3 git

sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' 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.17.3。

如果有可用的新版本,请在下面的命令中更改VERSION变量。然后运行wget命令下载Gitea二进制文件到/tmp目录。

gitea二进制文件可以在任何目录运行。我们将遵循约定并将二进制文件移动到/usr/local/bin目录。

Linux在默认情况下二进制文件不具有可执行权限。因此需要为gitea二进制文件添加可执行权限,运行chmod命令

运行mkdir命令创建目录并设置所需的权限和所有权。这是官方的Gitea文档建议使用目录结构。

/etc/gitea目录的权限设置为770,以便安装向导可以创建配置文件。安装完成后,我们将设置更多限制性权限。

VERSION=1.17.3
sudo 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

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

创建Systemd服务

Gitea提供已配置的Systemd Unit文件。运行wget命令将Systemd Unit文件下载到/etc/systemd/system/目录。

完成后,重新加载Systemd,运行命令sudo systemctl daemon-reload。然后启用并启动Gitea服务。

验证Gitea服务的运行状态,运行命令sudo systemctl status gitea。你将会看到Gitea服务已成功启动。

sudo wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/

sudo systemctl daemon-reload
sudo systemctl start gitea
sudo systemctl enable 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的连接。

如果您debian 11正在运行运行UFW防火墙,则需要打开Gitea端口。允许端口3000的连接。运行命令sudo ufw allow 3000/tcp

sudo ufw allow 3000/tcp

打开浏览器,输入http://127.0.0.1:3000。将数据库设置的为以下参数。

Database Type: SQLite3。路径:/var/lib/gitea/data/gitea.db,必须是绝路径。

应用的设置,Site Title可是你喜欢的任意名称。Repository Root Path: /home/git/gitea-repositories。Git LFS Root Path: /var/lib/gitea/data/lfs

Run As Username: git。SSH Server Port: 22,如果SSH正在监听其他端口,请更改它端口。

Server Domain: localhost。Gitea HTTP Listen Port: 3000。Gitea Base URL: http://localhost:3000/。Log Path: /var/lib/gitea/log

您可以随时通过编辑Gitea配置文件来更改设置。完成后,点击install Gitea按钮。安装是实时的。

完成后,您将被重定向到登录页面。点击立即注册。 第一个注册用户将自动添加到管理员组。

然后运行命令sudo chmod 750 /etc/gitea将Gitea配置文件的权限更改为只读。至此, Gitea已安装在您的debian 11。

how-install-nginx-in-debian11.webp

如何在Debian 11 安装 Nginx

how-to-set-up-nginx-server-blocks-on-debian-11.webp

如何在Debian 11 配置Nginx虚拟主机

Nginx Gitea

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

使用你喜欢的文本编辑器创建文件Nginx配置文件git.example.com.conf。在本教程中,我们将使用vim创建文件

复制Nginx配置内容文件到文件/etc/nginx/conf.d/git.example.com.conf。完成后保存文件并退出vim

sudo vim /etc/nginx/conf.d/git.example.com.conf
server {
    listen 80;
    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;
    # 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;
    }
}

/etc/nginx/conf.d/git.example.com.conf

你应该在每次编辑Nginx配置文件后,使用nginx -t命令测试Nginx配置的语法是否正确。然后重新启动Nginx服务,以使更改生效。

为了能够正确解释域名domain1.com。因此我们还需要映射domain1.com本地回环地址127.0.0.1

运行命令echo "127.0.0.1 git.example.com" | sudo tee -a /etc/hosts

接下来,更改Gitea域和根URL。继续使用你喜欢编辑器,打开Gitea配置文件修改DOMAIN和ROOT_URL。

完成gitea的配置更改后,重启gitea服务运行命令sudo systemctl restart gitea。至此,已配置Gitea代理,您可以在以下位置访问它:https://git.example.com

sudo systemctl restart nginx
echo "127.0.0.1 git.example.com" | sudo tee -a /etc/hosts

sudo vim /etc/gitea/app.ini
sudo systemctl restart gitea
[server]
DOMAIN           = git.example.com
ROOT_URL         = https://git.example.com/

/etc/gitea/app.ini

如果你需要配置SSL为你的Nginx虚拟主机,请参考我们的教程如何在Debian 11 Nginx配置Let's Encrypt SSL证书

secure-nginx-with-let-s-encrypt-on-debian-11.webp

如何在Debian 11 Nginx配置Let's Encrypt SSL证书

电子邮件通知

为了使Gitea能够发送通知电子邮件,您可以安装Postfix或使用某些事务性邮件服务,例如SendGrid,MailChimp,MailGun或SES。

要启用电子邮件通知,继续使用你喜欢编辑器,打开Gitea配置文件app.ini。修改以下内容。

请确保您输入了正确的SMTP服务器信息。重新启动Gitea服务以使更改生效。

sudo vim /etc/gitea/app.ini
sudo systemctl restart gitea
[mailer]
ENABLED = true
HOST    = SMTP_SERVER:SMTP_PORT
FROM    = SENDER_EMAIL
USER    = SMTP_USER
PASSWD  = YOUR_SMTP_PASSWORD

/etc/gitea/app.ini

升级Gitea

要升级到最新的Gitea版本,只需下载并替换二进制文件。首先是停止Gitea服务。

下载最新的Gitea版本并将其移动到/usr/local/bin目录。运行chmod命令使Gitea二进制具有可执行权限。

最后重启Gitea服务,运行命令sudo systemctl restart gitea

sudo systemctl stop gitea
VERSION=<THE_LATEST_GITEA_VERSION>
sudo chmod +x /usr/local/bin/gitea
sudo systemctl restart gitea

本教程向您介绍了在Debian 11安装Gitea的过程。您现在应该访问Gitea文档页面,并学习如何配置Gitea实例并创建第一个项目。

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK