背景
我有多台设备, 而且不同平台, 在多台设备间倒腾代码, 直接复制很不方便. 于是有了搭一个简易家用级别的git服务器的想法.
目的
- 解决内部不同平台间倒腾代码不方便的问题
- 家用级轻量解决方案
- 不需要高功耗服务器
软硬件准备
- 华硕RT-AC86U路由器(其他支持梅林固件的路由器应该也可以)
- 梅林固件(386版本以上官改版或梅林版都可以, 我用的官改版)
- 淘汰的U盘一个
- xshell或其他支持ssh远程登录的软件
环境搭建
- (系统管理-固件升级)路由器刷入梅林固件(386及以上版本), 如图1
图1
- (系统管理-系统设置)开启ssh远程, 如图2
这个版本每次改这一页的设置都提示用户重名, 要修改下用户名才能改其他选项, o_- !
图2
- 检查软件中心是否可用, 如一直显示更新中, 可以参考这个帖子手动初始化一下:
- U盘格式化为ext4格式(略)
- 插入路由器, 检查U盘格式是否正确
可以在软件中心装个虚拟内存软件检查下U盘格式是否正确, 如图3, 图4 - 图3
- 图4
- (软件中心)安装Entware
直接按提示安装到U盘即可(我的是/tmp/mnt/sda路径下), 安装大概几分钟, 安装完成后会在工作区打印安装完成日志. - 图5
git安装
- 使用ssh远程登录路由器
- 用户名密码和网页登录路由器时的一样.
图6
- (ssh远程登录后执行命令)安装git包
opkg install git
- 检查git是否已安装成功
git --version
- 安装成功则会打印版本号, 如下.
admin@RT-AC86U-XXXX:/tmp/mnt/sda/entwaren # git --version
git version 2.33.0
git服务器初始化
- 建立git相关目录
cd /opt/bin
# 建一个用来存储不同项目代码的总目录, 我这里起名gitlib的.
mkdir gitlib
cd gitlib/
# 初始化一个项目服务器端仓库, 这里我给他起名test
git init --bare test.git
# 权限更新
chmod 775 test.git/ -R
cd test.git/
# 修改git项目配置
vi config
# config中修改为如下内容
[core]
repositoryformatversion = 0
filemode = true
bare = true
sharedrepository = 1
[recerve]
denyNonFastforwards = true
测试刚刚建立的git
顺利的话其实到上面一步时, git简易服务器已经算搭建好, 可以正常用了. 后面是一些测试和设置上的优化.
- 本地从git服务器拉取代码
# 这里admin是我的路由器用户名
git clone admin@192.168.50.1:/opt/bin/gitlib/test.git
# 弹出密码框, 输入admin的密码即可正常拉取代码.
- 如拉取正常, 则push应该也是可以的.
- 每次输入密码麻烦, 也可以配置好ssh密码保存一下.