简介
Gitea 是一个开源的代码托管平台,它以其轻量级和易用性而闻名。作为一个自托管的 Git 服务,它提供了类似 GitHub/GitLab 的核心功能,包括仓库管理、问题追踪、代码审查等,但资源占用更少,部署维护更简单。
无论是个人开发者想要搭建私人代码库,还是小型团队需要一个自主可控的协作平台,Gitea 都是一个理想的选择。它的主要特点包括:
- 安装简单:一个二进制文件即可运行
- 资源友好:最低配置即可流畅运行
- 功能完整:支持 Pull Requests、Wiki、CI/CD 等
- 跨平台:支持 Linux、Windows、macOS 等多个系统
本教程将指导你在 Ubuntu 22.04 系统上搭建 Gitea 服务,包括环境配置、安装部署和安全加固等完整步骤。
接下来,我将一步一步教大家如何进行安装和部署!!
准备工作
服务器准备
必要前提:
- 一个充满求知欲的大脑。
- 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。
我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。
注册链接: https://rainyun.ivwv.site
创建雨云服务器
以下步骤仅供参考,请根据实际需求选择配置。
- 点击 云产品 → 云服务器 → 立即购买。
- 选择距离你较近的区域,以保证低延迟。
- 按照自己需求选择配置,选择 Ubuntu 22.04 版本,按照自己需求是否预装 Docker。
- 最后按照提示进行购买。
- 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。
- 我们使用
PowerShell
进行SSH
远程连接到服务器,Win+R
打开运行窗口,输入powershell
后点击确定。
- 输入
ssh root@你的服务器IP
例如ssh root@154.9.227.239
回车后,首次需要输入yes
,再次回车后即可登录服务器。
- 到此为止,我们的云服务器就远程连接上了。
安装步骤
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 的初始化页面:
在这个页面中,你需要:
- 填写数据库配置信息
- 设置管理员账号(建议不要使用 admin 作为用户名)
- 根据需要调整其他配置项
至此,你已经完成了 Gitea 的完整安装和配置。现在你可以通过 HTTPS 安全地访问你的 Gitea 实例了。
相关链接
雨云 - 新一代云服务提供商: https://rainyun.ivwv.site
我的博客:https://blog.ivwv.site