之前搭建的git服务所在的那台服务器到期,需要重新在一个新的服务器上部署。通过文档记录一下搭建过程,加深印象以及方便以后还需要搭建的时候快速查询。
选择的git服务方案是gitea,对于个人使用而言,gitlab完全是浪费了,也不需要将大量的资源浪费在它身上,毕竟对于我的低配服务器而言,内存还是很紧张的。
Gitea的首要目标是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git 服务。我们采用Go作为后端语言,这使我们只要生成一个可执行程序即可。并且他还支持跨平台,支持 Linux, macOS 和 Windows 以及各种架构,除了x86,amd64,还包括 ARM 和 PowerPC。
服务器系统的Debian 10,不同的linux发行版本安装命令可能有些不一样。
安装
- 更新软件
apt-get update
apt-get upgrade
- 安装git
apt install git # 下载并安装
git --version # 确认是否安装成功
- 数据库安装
gitea支持MySQL、PostgreSQL、MSSQL、SQLite3 或 TiDB (MySQL协议) 等数据库,这里直接使用MySQL
mysql -u root -p
# 进入数据库创建用户以及所需的数据库
CREATE USER 'gitea' IDENTIFIED BY '密码';
CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
- 创建gitea数据存放目录
# 存放仓库相关文件的目录
mkdir /var/lib/gitea
mkdir /var/lib/gitea/{custom,data,log}
# 存放配置文件的目录
mkdir /etc/gitea
- 下载gitea
- 打开下载页面,选择你要的版本直接下载
- 在服务器上可直接通过wget下载。
wget https://dl.gitea.io/gitea/1.16.8/gitea-1.16.8-linux-amd64 -O gitea # 下载 版本换成自己要下载的对应版本
mv gitea /usr/local/bin
cd /usr/local/bin
chmod +x gitea # 设置成可运行文件
- 新增git用户并更换目录的用户
adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git
chown -R git:git /etc/gitea
chown -R git:git /var/lib/gitea
- 配置service
通过systemctl可以很方便的控制gitea服务,官方提供了配置示范可以参考:gitea/gitea.service at master · go-gitea/gitea (github.com)
nano /etc/systemd/system/gitea.service
# gitea.service
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
[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 start gitea # 运行
ps -aux | grep gitea # 查看是否成功运行 如果成功会看到一条git用户运行的gitea进程
systemctl enable gitea # 开机启动
- 验证服务是否开启
curl localhost:3000
至此,服务安装阶段完成,现在我们可以通过 ip:3000 访问网站,如果访问不到,可能是服务器的端口未开放,需要放行端口。
配置
直接访问网站,进入初始配置页面,在这里最重要的事在数据库配置里选择开始创建好的数据库,其他的一些配置根据实际情况进行修改。
配置修改完后直接选择安装就行,安装完成后自定跳转到登录页面,至此,gitea的安装就完成了。