背景
我有多台设备, 而且不同平台, 在多台设备间倒腾代码, 直接复制很不方便. 于是有了搭一个简易家用级别的git服务器的想法.
目的
- 解决内部不同平台间倒腾代码不方便的问题
- 家用级轻量解决方案
- 不需要高功耗服务器
软硬件准备
- 华硕RT-AC86U路由器(其他支持梅林固件的路由器应该也可以)
- 梅林固件(386版本以上官改版或梅林版都可以, 我用的官改版)
- 淘汰的U盘一个
- xshell或其他支持ssh远程登录的软件
环境搭建
- (系统管理-固件升级)路由器刷入梅林固件(386及以上版本), 如图1
图1
- (系统管理-系统设置)开启ssh远程, 如图2
这个版本每次改这一页的设置都提示用户重名, 要修改下用户名才能改其他选项, o_- !
图2
-
检查软件中心是否可用, 如一直显示更新中, 可以参考这个帖子手动初始化一下: https://blog.csdn.net/weixin_33854644/article/details/88908546
-
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密码保存一下.