如何在Debian 9上安装Gitea

Gitea是由Git支持的替代开源,自托管版本控制系统。Gitea用Golang编写,是可在任何平台上托管的轻量级解决方案。

先决条件

  • 新的Vultr Debian 9实例。
  • 具有sudo特权的非root用户。
  • Nginx的
  • 吉特
  • 玛丽亚数据库

步骤1:安装Nginx

更新您的包裹清单。

sudo apt update

安装Nginx。

sudo apt -y install nginx

安装完成后,运行以下命令以启动并启用Nginx服务。

sudo systemctl enable nginx.service
sudo systemctl start nginx.service

步骤2:安装Git

可以使用以下命令来完成。

sudo apt -y install git

步骤3:安装MariaDB数据库服务器

Gitea支持以下数据库服务器。

  • MariaDB / MySQL
  • PostgreSQL的
  • SQLite的
  • TiDB

在本教程中,我们将使用MariaDB服务器和客户端。

sudo apt -y install mariadb-server mariadb-client

完成后,请确保MariaDB已启用并正在运行。

sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service

之后,运行以下命令以通过创建root密码并禁止远程root访问来保护MariaDB服务器。

sudo mysql_secure_installation

出现提示时,请按照指南回答以下问题。

Enter current password for root (enter for none): Just press the Enter
Set root password? [Y/n]: Y
New password: Enter password
Re-enter new password: Repeat password
Remove anonymous users? [Y/n]: Y
Disallow root login remotely? [Y/n]: Y
Remove test database and access to it? [Y/n]:  Y
Reload privilege tables now? [Y/n]:  Y

重新启动MariaDB。

sudo systemctl restart mariadb.service

输入以下命令以登录MariaDB控制台。

sudo mysql -u root -p

然后输入您在上方创建的密码进行登录。您将看到MariaDB欢迎消息。

创建一个名为的数据库gitea

CREATE DATABASE gitea;

创建一个giteauser使用新密码调用的数据库用户。

CREATE USER 'giteauser'@'localhost' IDENTIFIED BY 'new_password_here';

确保new_password_here用一个复杂的强密码代替。

然后,授予用户对数据库的完全访问权限。

GRANT ALL ON gitea.* TO 'giteauser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;

最后,保存您的更改并退出。

FLUSH PRIVILEGES;
EXIT;

步骤4:准备Gitea环境

创建一个用户来运行Gitea。

sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git

创建所需的目录结构。

sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown git: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

步骤5:安装Gitea

可以通过运行以下命令来下载Gitea二进制文件。

sudo wget -O gitea https://dl.gitea.io/gitea/1.5.0/gitea-1.5.0-linux-amd64 
sudo chmod +x gitea

将二进制文件复制到全局位置。

sudo cp gitea /usr/local/bin/gitea

步骤6:创建服务文件以自动启动Gitea

创建一个Linux服务文件。

sudo touch /etc/systemd/system/gitea.service

使用您选择的文本编辑器,打开这个新创建的文件,并使用以下命令进行填充。

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mariadb.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
# If you want to bind Gitea to a port below 1024 uncomment
# the two values below
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target

在启动时启用并启动Gitea。

sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea

确保Gitea正在运行。

sudo systemctl status gitea

步骤7:将Nginx配置为反向代理

删除默认的nginx配置文件。

sudo rm /etc/nginx/sites-enabled/default

为Gitea创建反向代理配置。

sudo touch /etc/nginx/sites-available/git

使用以下配置填充文件,请确保将其替换example.com为域名或IP地址。

upstream gitea {
    server 127.0.0.1:3000;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server;
    server_name example.com;
    root /var/lib/gitea/public;
    access_log off;
    error_log off;

    location / {
      try_files maintain.html $uri $uri/index.html @node;
    }

    location @node {
      client_max_body_size 0;
      proxy_pass http://localhost:3000;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $http_host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_max_temp_file_size 0;
      proxy_redirect off;
      proxy_read_timeout 120;
    }
}

启用Gitea Nginx反向代理配置。

sudo ln -s /etc/nginx/sites-available/git /etc/nginx/sites-enabled/git

然后重新加载Nginx服务。

sudo systemctl reload nginx.service

接下来,打开浏览器并浏览到服务器主机名或IP地址。

http://YOUR_SERVER_IP/install

按照屏幕上的说明完成Gitea设置。



Leave a Comment

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

如何在Debian 9 LAMP VPS上安装October 1.0 CMS

使用其他系统?October 1.0 CMS是基于Laravel框架构建的简单,可靠,免费和开源的内容管理系统(CMS)

如何在Debian 9上安装Monica

如何在Debian 9上安装Monica

使用其他系统?Monica是一个开源的个人关系管理系统。可以将其视为CRM(销售团队使用的一种流行工具

将Debian 9升级到Debian 10

将Debian 9升级到Debian 10

简介Debian 10(Buster)是Debian 9(Stretch)的后继产品。它于2019年7月6日发布。在本教程中,我们将升级一个existin

如何在Debian 9上安装Grav CMS

如何在Debian 9上安装Grav CMS

使用其他系统?Grav是用PHP编写的开源平面文件CMS。Grav源代码公开托管在GitHub上。本指南将向您展示如何

在Debian / Ubuntu中使用Rsync设置文件镜像

在Debian / Ubuntu中使用Rsync设置文件镜像

简介如果您经营一个重要的网站,则最好将文件镜像到辅助服务器。如果您的主服务器有网络

在适用于Minecraft服务器的Ubuntu 14.04上安装MineOS

在适用于Minecraft服务器的Ubuntu 14.04上安装MineOS

MineOS是一个完整的Minecraft服务器平台,具有Web GUI,自动备份,存档,性能统计信息以及其他功能。配置

在Debian 7上安装Prosody

在Debian 7上安装Prosody

在Debian 7上安装Prosody Prosody是用LUA编写的XMPP通信服务器。它旨在易于设置和配置,并通过syste高效

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在Debian 9上安装Mailtrain Newsletter应用程序

如何在Debian 9上安装Mailtrain Newsletter应用程序

使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。Mailtrains源位于GitHub上。锡

如何在Debian 9上安装Attendize

如何在Debian 9上安装Attendize

使用其他系统?Attendize是一个基于Laravel PHP框架的开源门票销售和事件管理平台。参加源鳕鱼

如何安装ARK:Debian 9的生存进化

如何安装ARK:Debian 9的生存进化

简介在本指南中,您将学习如何在Vultr VPS上创建ARK:Survival Evolved服务器。要求Vultr VPS至少为8192 M

在Debian / Ubuntu上设置您自己的DNS服务器

在Debian / Ubuntu上设置您自己的DNS服务器

本教程说明了如何在Debian或Ubuntu上使用Bind9设置DNS服务器。在整篇文章中,请相应地替换your-domain-name.com。在

在Debian上安装带有PHP-FPM和MySQL的Hiawatha Web服务器

在Debian上安装带有PHP-FPM和MySQL的Hiawatha Web服务器

Hiawatha是一种Web服务器,具有简单性,易用性和安全性。对于小型服务器,较旧的硬件或嵌入式设备,它是完美的解决方案

在Debian 7(Wheezy)上安装Plesk

在Debian 7(Wheezy)上安装Plesk

使用其他系统?Plesk是专有的Web主机控制面板,允许用户管理其个人和/或客户的网站,数据库

在Debian / Ubuntu上设置vsFTPd

在Debian / Ubuntu上设置vsFTPd

简介vsftpd代表“非常安全的FTP守护程序”。它是一个轻量级的FTP服务器。这个简短的教程说明了如何在Debian或Ubuntu上安装vsftpd

如何在Debian 9上安装LimeSurvey CE

如何在Debian 9上安装LimeSurvey CE

使用其他系统?LimeSurvey是一个用PHP编写的开源调查软件。LimeSurvey源代码托管在GitHub上。本指南将向您展示

在Debian 7上使用MySQL视图

在Debian 7上使用MySQL视图

简介MySQL具有一个伟大的功能,称为视图。视图是存储的查询。可以将它们视为否则会很长查询的别名。在本指南中,

如何在Debian 9上安装和配置TaskBoard

如何在Debian 9上安装和配置TaskBoard

使用其他系统?简介TaskBoard是一个免费的开源工具,可以用来跟踪要做的事情。它提供了一个用户友好

如何在Debian 9上安装Osclass

如何在Debian 9上安装Osclass

使用其他系统?Osclass是一个开放源代码项目,可让您轻松创建分类站点,而无需任何技术知识。它的来源

如何在Debian 9上使用块存储设置Samba

如何在Debian 9上使用块存储设置Samba

Samba是一个开放源代码解决方案,允许用户设置快速安全的文件和打印共享。在本文中,我将介绍如何设置Samba wit

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。