土豆不好吃

在树莓派上搭建一个git服务器

文章目录[显示]

树莓派虽说小,但是性能……也差啊!

开源的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

 


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/git-pi.html
退出移动版