将ubuntu设置为NAS——22.搭建gitea自用代码托管git应用(下)
前言
上篇介绍利用docker-compose方式搭建gitea服务的方法,由于docker容器映射ssh设置有些复杂的问题,还想试试利用Ubunut直接搭建个gitea服务,继续水篇文章。本身直接采用二进制方法安装gitea是比较简单的,直接下载二进制文件到Ubuntu服务器下,再直接运行二进制文件就安装完成了。后面相对复杂的设置主要是为了让gitea作为服务器默认服务开机启动。
1、二进文件制安装gitea服务
1.1、数据库设置
先不要着急设置,首先为gitea创建数据库和用户 创建数据库gitea,用户名gitea,密码自行设置gitea,前提是Ubuntu服务器安装了数据库,参见将ubuntu设置为NAS——3. 私人网盘nextcloud安装(上)中关于安装MariaDB,版本我选择10.3版。
sudo apt-get install mariadb-server mariadb-client
- 启动MariaDB服务:sudo systemctl start mysql
- 查看状态:sudo systemctl status mysql ,ctrl+c退出
- 重启服务:service mysql restart
- 查看监听端口的情况:netstat -tunpl 或 netstat -tap
- 执行初始化安全脚本,默认root密码为空,设置root密码和其他选项:sudo mysql_secure_installation
进入MariaDB后,执行:
#进入数据库
sudo mysql -u root -p
#创建数据库,名为:giteadb,密码`gitea`
CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
#将数据库giteadb权限赋值给用户gitea
GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea'@'localhost' IDENTIFIED BY 'gitea';
#刷新数据库
FLUSH PRIVILEGES;
#退出
q
2.2、二进制文件下载及验证
接着就可以开始安装了
建议先找个文件夹,我放在自己的code文件夹下,如果下载速度太慢,可以用迅雷先下载下来,再用winscp传到服务器文件内。
#进入自定义二进制文件下载文件夹
cd /mnt/all/共享/code/gitea
#下载gitea二进制文件
wget -O gitea-1.16.1-linux-amd64 https://dl.gitea.io/gitea/1.16.1/gitea-1.16.1-linux-amd64
wget -O gitea-1.16.1-linux-amd64.asc https://dl.gitea.io/gitea/1.16.1/gitea-1.16.1-linux-amd64.asc
#设置运行权限
chmod +x gitea
Gitea 使用GPG 密钥对所有二进制文件进行签名,以防止对二进制文件进行不必要的修改。要验证二进制文件,请下载以您下载的二进制文件结尾的签名文件,.asc文件,然后使用 GPG 命令行工具。
gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
gpg --verify gitea-1.16.1-linux-amd64.asc gitea-1.16.1-linux-amd64
显示完好的签名,表明文件下载没有问题。
2.3、服务器环境设置
为了保证gitea可以作为Ubuntu服务器下一项服务可以开机自动运行,建议进行如下设置,如果只是偶尔使用,可以直接用非root用户运行二进制文件(直接在命令行`)
#在二进制文件所在文件下,用非root用户运行这行命令,程序就正常运行,可以在浏览器输入服务器IP+3000端口号下看到gitea服务
./gitea web
个人选择以系统服务方式运行,所以接着开始设置
检查服务器上是否安装了 Git。如果不是,请先安装它,Ubuntu18.04下默认是安装的。
git --version
创建用户以运行 Gitea,直接按照教程设置用户名为git
#先切换root用户,需要输入密码确定
sudo -i
#在运行如下命令
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二进制文件复制到全局位置(之前创建的/usr/local/bin/gitea)
cp /mnt/all/共享/code/gitea/gitea-1.16.1-linux-amd64 /usr/local/bin/gitea
最后就是创建系统服务方式运行gitea
sudo nano /etc/systemd/system/gitea.service
复制如下内容
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
Wants=mariadb.service
After=mariadb.service
[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
ctrl+o,回车确认修改,ctrl+x退出。
接着最后一步将gitea加入系统服务并启动:
sudo systemctl enable gitea
sudo systemctl start gitea
2.4、打开服务器
在浏览器中打开服务器IP+3000端口号,就出现如下界面
这里只需要设置数据库用户名、密码和数据库名称(数据库名称之前设置是giteadb)
最后拉到最下面,可选设置自行安装,点击立即安装。
稍等一小会,再在浏览器中输入服务器IP+3000端口号,就出现如下界面,注册后再登录就能正常使用了。
最后试验一下gitea服务是否可以开机自动重启服务,重启一下Ubuntu,再打开服务器IP+3000端口号,服务成功重启。
3、gitea连接SSH使用
上篇docker下安装的gitea服务SSH连接和代码上传修改由于容器映射问题,设置相对复杂,所以上篇采用http方式上传修改代码,而直接二进制搭建的gitea可以方便使用ssh。
同样首先再自己win主机安装git,上篇也介绍过,直接参考相关教程,推荐看看菜鸟教程。
首先生成本机(即win主机下或主要编辑代码的主机,也可以是Ubuntu服务器)的用于连接gitea用的key,在git命令行下输入,其中"youremail@example.com"替换为自己的gitea下注册的邮箱
ssh-keygen -t rsa -C "youremail@example.com"
之后会要求确认路径和输入密码,使用默认的一路回车就行,成功的话会在如下图位置生成 .ssh 文件夹,进去,打开id_rsa.pub ,复制里面的 key 。
记事本打开id_rsa.pub文件,就可以查看里面的key,复制全部内容,粘贴到gitea网页的SSH密钥处。
测试是否成功,输入以下命令:
ssh -T git@gitea服务器IP
如下内容表明已经成功
先创建gitea仓库,创建名称为code,后面git命令需要用到
若本地已有需要的代码需要同步到gitea服务器,就可以用以下相关命令操作,推送代码到gitea
git remote add origin git@gitea服务器IP:yangmouren/code.git
# git remote add origin git@192.168.50.119:yangmouren/code.git
git push -u origin master
推送成功。
打开网址就能看到推送情况了
总结
本篇重点介绍采用直接安装二进制文件方式安装gitea的流程,并按照官方教程设置gitea作为系统服务可以开机启动,并且设置了SSH可以将自己本地代码同步git到Ubuntu服务器中的gitea上面,从此可以愉快地学习编程并在gitea页面上面管理和备份代码了。
后记
欢迎大家查阅前期《将ubuntu设置为NAS》相关文章,可以关注、点赞、打赏和交流评论 。
将ubuntu设置为NAS——1. Transmission-daemon安装
将ubuntu设置为NAS——3. 私人网盘nextcloud安装(上)
将ubuntu设置为NAS——3. 私人网盘nextcloud安装(中)
将ubuntu设置为NAS——5. docker与docker-compose的安装
将ubuntu设置为NAS——6. 私人网盘nextcloud安装(下)(docker下安装nextcloud)
将ubuntu设置为NAS——7. 私人网盘nextcloud升级
将ubuntu设置为NAS——8. nextcloud集成onlyoffice在线协同办公软件
将ubuntu设置为NAS——9. 远程命令行及PuTTY、WinScp与手机端Termux使用
将ubuntu设置为NAS——10. 虚拟机KVM及软路由LEDE安装
将ubuntu设置为NAS——11. docker可视化管理工具portainer安装与使用
将ubuntu设置为NAS——12.使用portainer安装为知笔记及为知笔
将ubuntu设置为NAS——13.搭建新型在线协同表格和信息管理工具Seatable
将ubuntu设置为NAS——14.尝试mergerfs合并多个物理硬盘
将ubuntu设置为NAS——15.安装seafile并集成onlyoffice
将ubuntu设置为NAS——16.qBittorrent server安装与卸载
将ubuntu设置为NAS——18.搭建Jellyfin影音服务器(上)
将ubuntu设置为NAS——19.搭建 Jellyfin影音服务器(中)
yinhao
校验提示文案
yinhao
校验提示文案