简介

Gitea 是一个开源的代码托管平台,它以其轻量级和易用性而闻名。作为一个自托管的 Git 服务,它提供了类似 GitHub/GitLab 的核心功能,包括仓库管理、问题追踪、代码审查等,但资源占用更少,部署维护更简单。

无论是个人开发者想要搭建私人代码库,还是小型团队需要一个自主可控的协作平台,Gitea 都是一个理想的选择。它的主要特点包括:

  • 安装简单:一个二进制文件即可运行
  • 资源友好:最低配置即可流畅运行
  • 功能完整:支持 Pull Requests、Wiki、CI/CD 等
  • 跨平台:支持 Linux、Windows、macOS 等多个系统

本教程将指导你在 Ubuntu 22.04 系统上搭建 Gitea 服务,包括环境配置、安装部署和安全加固等完整步骤。

接下来,我将一步一步教大家如何进行安装和部署!!

准备工作

  • 准备一台云服务器

若尚未拥有服务器,可前往 雨云官网 https://rainyun.ivwv.site 进行注册,新用户有专属优惠。

安装步骤

1. 更新系统

首先更新系统包:

sudo apt update -y

2. 安装 Nginx

Nginx 将作为反向代理,让我们能够通过域名访问 Gitea:

sudo apt install nginx -y

3. 配置防火墙

如果你启用了防火墙,需要开放 HTTP 和 HTTPS 端口:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

4. 安装 PostgreSQL 数据库

Gitea 支持多种数据库,这里我们选择 PostgreSQL(版本 >= 12)作为数据库。

添加 PostgreSQL 官方源:

sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

导入签名密钥:

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

更新包列表:

sudo apt-get update

安装 PostgreSQL:

sudo apt-get -y install postgresql

5. 配置 PostgreSQL

首先修改密码加密方式为 SCRAM-SHA-256:

sudo nano /etc/postgresql/16/main/postgresql.conf

找到并修改(如果没有则添加):

password_encryption = scram-sha-256

登录 PostgreSQL 控制台:

su -c "psql" - postgres

创建数据库用户:

CREATE ROLE gitea WITH LOGIN PASSWORD 'gitea';

创建数据库:

CREATE DATABASE giteadb WITH OWNER gitea TEMPLATE template0 ENCODING UTF8 LC_COLLATE 'en_US.UTF-8' LC_CTYPE 'en_US.UTF-8';

编辑认证配置:

local    giteadb    gitea    scram-sha-256

重启 PostgreSQL:

sudo systemctl restart postgresql

6. 安装 Gitea

下载 Gitea 二进制文件:

wget -O gitea https://dl.gitea.com/gitea/1.21.4/gitea-1.21.4-linux-amd64

设置执行权限:

chmod +x gitea

创建 git 用户:

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

创建必要的目录结构:

mkdir -p /var/lib/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea

复制 Gitea 二进制文件到系统目录:

cp gitea /usr/local/bin/gitea

7. 配置 Gitea 系统服务

创建服务配置文件:

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

添加以下内容:

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
Wants=postgresql.service
After=postgresql.service
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.target

启用并启动服务:

systemctl daemon-reload
systemctl enable gitea
systemctl start gitea

8. 配置 Nginx

创建 Nginx 配置文件:

sudo nano /etc/nginx/sites-available/your_domain.conf

添加以下配置:

server {
    listen 80;
    server_name your_domain;
    location / {
        client_max_body_size 512M;
        proxy_pass <http://localhost:3000>;
        proxy_set_header Connection $http_connection;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

启用配置:

sudo ln -s /etc/nginx/sites-available/your_domain.conf /etc/nginx/sites-enabled/your_domain.conf

测试并重启 Nginx:

nginx -t
sudo systemctl restart nginx

9. 配置 SSL 证书

安装 Certbot:

sudo apt install certbot python3-certbot-nginx -y

获取 SSL 证书:

sudo certbot --nginx -d your_domain

完成以上步骤后,访问你的域名,你会看到 Gitea 的初始化页面:

image.png

在这个页面中,你需要:

  1. 填写数据库配置信息
  2. 设置管理员账号(建议不要使用 admin 作为用户名)
  3. 根据需要调整其他配置项

至此,你已经完成了 Gitea 的完整安装和配置。现在你可以通过 HTTPS 安全地访问你的 Gitea 实例了。

相关链接
我的博客:https://blog.ivwv.site
雨云官网:https://rainyun.ivwv.site

Logo

2万人民币佣金等你来拿,中德社区发起者X.Lab,联合德国优秀企业对接开发项目,领取项目得佣金!!!

更多推荐