树莓派虽说小,但是性能……也差啊!
开源的git实现有很多,gitlab community算是一种,但是对硬件要求有点高,这里我使用了nova推荐的gogs,gogs是用golang写的,足够轻量级,足够让我瞎玩……
环境
一只不可以吃的树莓派
数据库:MySQL>=5.7,PosgreSQL、MSSQL、TiDB
由于我选择了MySQL,而Raspbian的源里似乎只有5.5的,所以只能自己编译一个5.7的啦……耗时N小时……当然啦有预编译好的deb,当然啦非得用5.5也是没关系的!
下载配置gogs
# 创建一个git用户,专门用于运行该服务 useradd git -s /bin/bash -m -d /home/GitServer # 为了方便管理,切换到该目录 cd /home/GitServer # 切换到该用户 su git # 下载二进制并解压缩 wget –c https://dl.gogs.io/0.11.86/gogs_0.11.86_raspi2_armv6.zip unzip gogs_0.11.86_raspi2_armv6.zip cd gogs # 运行服务 ./gogs web
打开浏览器,http://树莓派IP:3000,会进入如下页面
此时如果你使用的是MySQL5.7以下版本,创建一个字符集是utf-8的数据库
CREATE DATABASE gogs DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
5.7及以上直接创建就好了
其中域名和应用url两项需要填写你的域名(或者是树莓派IP)
之后第一个注册的用户会是管理员用户。管你是screen还是nohup还是supervisor的。
监听本机
vim /home/GitServer/gogs/custom/conf/app.ini
在HTTP_PORT
下添加一行
HTTP_ADDR=127.0.0.1
Nginx 反代配置
对应的server段添加如下信息就可以了
location / { proxy_pass http://127.0.0.1:3000; # 对应服务 }
完整配置文件戳这里
systemd配置
接上,我们需要更改git用户的shell
usermod git -s /usr/sbin/nologin
之后交给systemd启动就好了
[Unit] Description=Benny's Personal Git Server After=syslog.target After=network.target [Service] Type=simple User=git Group=git WorkingDirectory=/home/benny/GitServer/gogs ExecStart=/home/benny/GitServer/gogs/gogs web Restart=on-failure Environment=USER=git HOME=/home/benny/GitServer ProtectSystem=full PrivateDevices=yes PrivateTmp=yes NoNewPrivileges=true [Install] WantedBy=multi-user.target
Yeah~~
参考资料
https://github.com/gogs/gogs/blob/master/scripts/systemd/gogs.service
https://gogs.io/docs/intro/faqs