有时候github访问速度很慢,而手里头刚好有一台闲置的云服务器,就用来自己搭建一个轻量级代码托管。在gitlab、gitea中,gitlab需要的配置较高,而且平常也用不到一些复杂的git功能,剩下的gitea就是一个比较好的选择,而且2核1G就能够带动gitea。
分享搭建过程,(没有学过linux和服务器,因此充满曲折......写笔记来记录
云服务器
阿里云、腾讯云、华为云等
Xshell
Xshell提供了个人和家庭的免费使用版本,从下面给出的网址可以免费下载Xshell和Xftp[需要提供邮箱]
家庭/学校免费 - NetSarang Website (xshell.com)
阿里云ECS服务器[2核2G]
Xshell、Xftp
服务器系统: Ubuntu 20.04
1.下载 git mysql-server
2.配置mysql
3.下载gitea
4.gitea系统服务
5.网站配置
设置服务器密码用于远程连接
一般云服务器设置密码都可以在控制台中找到
[阿里云控制台] https://home.console.aliyun.com/
[华为云控制台] https://console.huaweicloud.com/
[腾讯云控制台] https://console.cloud.tencent.com/
1.在服务器资源管理中找到服务器的公网ip
2.在Xshell中新建会话,主机输入ip信息
3.连接刚刚新建的会话,第一次会提示输入用户名和密码
用户名:root
密码:云服务器简单配置步骤中为服务器配置的密码
0.切换用户【可忽略】
如果非root用户想要切换至root用户,可以输入
sudo su # 之后输入密码,且密码隐藏不会显示,输完回车就行
root用户切换普通用户
su demoUser
1.更新
# root用户不需要输入 sudo sudo apt update && sudo apt upgrade # root 示例 apt update && apt upgrade #更新过程中如果需要用户选择,默认回车
2.下载需要的软件
# 安装基本软件 其中mysql版本需要大于5.7 apt install git mysql-server # 安装完成之后可以输入下列指令检查mysql版本 mysql --version
Ver 后面数字大于5.7就可以,一般ubuntu20.04中mysql版本已经满足要求
# 如果没有mysql apt install mysql-server
1-0 linux创建用户的原因
官方gitea二进制程序不支持root用户打开,需要创建一个普通用户来代替root执行gitea二进制程序。
在linux命令行中创建的用户用于执行gitea二进制文件,在mysql中创建的用户用于连接数据库
1-1 创建用户
# 使用 adduser 创建用户,会提示输入密码 sudo adduser gitea
tip: 这个步骤如果无特殊需要默认回车跳过,在最后一行输入y回车确认信息
# 如果设置的密码不合心 # sudo passwd 用户名 sudo passwd gitea
1-2 删除用户
如果用户创建感觉有问题可以执行指令删除gitea用户
# sudo userdel -r demoname sudo userdel -r gitea
添加 -r 删除用户及相关文件记录
不带 -r 只删除用户不删除相关文件记录
1-1进入mysql
# 使用mysql的root用户来登录 sudo mysql -u root -p
提示输入密码,但是之前并没有给mysql中root用户设置密码,此时输入任何密码都能够进入mysql命令行。
1-2创建mysql的用户同时绑定gitea用户
mysql>中以分号[;]结束一个语句,如果回车没用,记得检查语句有没有分号
#创建用户CREATE USER 'gitea' IDENTIFIED BY 'gitea123';
'gitea123'是gitea用户的密码
1-2创建数据库giteadb
CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
官方文档给出的创建一个名为giteadb的数据库,之后这个giteadb将作为gitea网站的数据库
1-3给gitea用户操作giteadb的所有权限
GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea';# 刷新FLUSH PRIVILEGES;# 退出EXIT
1-0 wget下载gitea位置的选择
可以选择在opt目录下下载,也可以自定义,笔记选择的位置: /opt/gitea/
1-1下载gitea
#创建gitea文件夹 mkdir /opt/gitea #下载gitea二进制程序 wget -O /opt/gitea/gitea https://dl.gitea.io/gitea/1.18.0/gitea-1.18.0-linux-amd64 #一步到位 mkdir /opt/gitea && wget -O /opt/gitea/gitea https://dl.gitea.io/gitea/1.18.0/gitea-1.18.0-linux-amd64
1-1-1下载过慢
服务器下载gitea过慢,在自己电脑使用下载工具下载gitea,再通过xshell上传文件至服务器。
选择用Xftp打开在上传至/opt/gitea/下。后重命名文件为gitea
1-2设置权限
# 目录设置权限 可读可写可执行 chmod 777 /opt/gitea/ # 文件添加可执行权限 chmod +x /opt/gitea/gitea
使用systemd
sudo vim /etc/systemd/system/gitea.service
点击 i 键,启动写入模式,并复制下列代码,默认不需要修改
[Unit] Description=Gitea (Git with a cup of tea) After=syslog.target After=network.target # mysql service Wants=mysql.service After=mysql.service [Service] RestartSec=2s Type=simple # 值取决于 adduser 创建的用户 User=gitea # 下载gitea程序的位置 WorkingDirectory=/opt/gitea/ # 这一行是开启web服务,app.ini是网站初始配置,目录可以自定义,这里放在与gitea程序目录下 ExecStart=/opt/gitea/gitea web --config /opt/gitea/app.ini Restart=always # Environment=USER=gitea | 如果创建的linux用户不是gitea,则修改成你创建的用户 Environment=USER=gitea # 存放gitea项目的位置 GITEA_WORK_DIR=/opt/gitea [Install] WantedBy=multi-user.target
开启服务
# 先启用服务 systemctl enable gitea # 后开启服务 systemctl start gitea # 查看服务启动状态 systemctl status gitea # 修改配置文件后需要重新加载 systemctl restart gitea
检查是否开启成功
浏览器地址栏中输入[公网地址:端口]打开网站,例如[123.123.123.123:3000],网站端口默认3000
端口
网站默认端口为3000,修改默认端口可以在第一次打开网站的时候修改,也可以在app.ini中修改,修改之后要重新开放端口,并以[公网地址:端口]在浏览器中访问
开放端口
在相应控制台中开放 3000 端口,以阿里云为例
输入数据库用户密码并修改数据库名称为giteadb
将所有localhost修改成云服务器公网ip,其余可以默认
可选设置中 管理员账号设置可以自行添加
Linux普通用户与gitea
上文中创建的gitea用户用于启动gitea程序,在gitea.service的文件配置中,User的值就是我们在Linux命令行下使用adduser创建的gitea用户。
Mysql用户与gitea
使用[mysql -u root -p]进入mysql命令行,后面创建的gitea用户和giteadb数据库用于最终用于网站服务,在网站配置中就能看出
Gitea官方文档、视频
转自 https://zhuanlan.zhihu.com/p/599688704