个人 git 服务器
Zane Lv4

前言

没有前言,仅仅觉得之前搭建 samba 服务的机器性能还完全过剩,给他找点事做。

选择

  • Gitlab
  • Gogs
  • Gitea

在这些中我选择了 Gitea 作为个人 Git 服务的软件,原因是这个软件使用 Go 语言开发,其运行命令只有一条即可。

Gitea

下载

直接通过 github 仓库中的 releases 下载对应架构的可执行二进制文件即可。

配置文件

在 Gitea 中需要对一些基础内容进行定义,路径可以按个人习惯,读取配置文件取决于启动时命令的参数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
vim /etc/gitea/app.ini

WORK_PATH = /srv/samba/store/gitea


[server]
APP_DATA_PATH = /srv/samba/store/gitea/data
STATIC_ROOT_PATH = /srv/samba/store/gitea
RUN_USER = smber

[log]
ROOT_PATH = /srv/samba/store/gitea/data/log
MODE = file
LEVEL = error

由于这个机器当时只有分区没考虑到其他服务,所以使用的依旧是 samba 的路径与用户。

init.d

busybox 没有像诸多发行版一样的 systemctl 以及 service 功能,因此只能实现一个 init.d 描述文件,进行启动与停止。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
vim /etc/init.d/S92gitea

# 基本配置
GITEA_HOME=/srv/samba/store/gitea
GITEA_PATH=/usr/bin/gitea-1.22.4-linux-arm64
GITEA_USER=smber
GITEA_CONFIG=/etc/gitea/app.ini
NAME=smber
PIDFILE=/var/run/$NAME.pid
GITEA_WORK_DIR=/srv/samba/store/gitea

start() {
printf "Starting $NAME: "
# check
if ! id -u $GITEA_USER >/dev/null 2>&1; then
echo "User $GITEA_USER does not exist"
exit 1
fi

# start gitea
start-stop-daemon -S -b -m \
-p $PIDFILE \
-c $GITEA_USER \
-x $GITEA_PATH -- web -c $GITEA_CONFIG

[ $? = 0 ] && echo "OK" || echo "FAIL"
}

stop() {
printf "Stopping $NAME: "
start-stop-daemon -K -p $PIDFILE
[ $? = 0 ] && echo "OK" || echo "FAIL"
rm -f $PIDFILE
}

restart() {
stop
sleep 1
start
}

case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
*)
echo "Usage: \$0 {start|stop|restart}"
exit 1
esac

exit $?

运行

/etc/init.d/S92gitea start 运行即可,访问 3000 端口会出现自定义的配置页面。

由 Hexo 驱动 & 主题 Keep