文章目录 [显示]
树莓派虽说小,但是性能…… 也差啊!
开源的 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