在 FreeBSD 12 上安装 Gitea

引言

Gitea 是一个功能齐全的轻量级代码托管解决方案,后端采用 Go 编写,使用 MIT 许可证发布。它比 GitLab 更资源友好,互联网上许多知名开源项目依赖 Gitea 提供代码托管。

在本指南中,我们将演示如何在 FreeBSD 12 服务器上安装 Gitea。

先决条件

在开始本指南之前,您需要一个运行中的 FreeBSD 的服务器。本指南专门针对运行 FreeBSD 12 的服务器编写,尽管它也适用于受支持的旧操作系统版本。

如果您是 FreeBSD 的新手,您可以从 FreeBSD Documentation 获得服务器入门帮助。

此外,如果您计划为此服务器设置域名,则需要以下内容:

  • 您注册和控制的域名。如果您还没有注册域名,您可以在众多域名注册商之一(例如 阿里云、腾讯云 等)注册一个。
  • 将您的域指向服务器的公共 IP 地址的 DNS A 记录。

第1步 - 安装 Git

首先,我们使用 pkg FreeBSD 内置的二进制包管理工具安装 gitgit-lfs。以下命令将更新可用包的本地副本,然后安装 git 包:

pkg install git git-lfs

如果这是您第一次运行 pkg,它会询问您是否安装 pkg。此时,请输入 y 并按下 ENTER 来确认安装 pkg。然后,再向您询问是否安装 git 软件包。

如果您使用的是 cshtcsh shell,请在安装新软件后运行 rehash 命令。这使 shell 能查询到您新安装的应用程序:

rehash

第2步 - 下载 Gitea

1.下载预编译的 FreeBSD 二进制程序包:

wget https://dl.gitea.io/gitea/1.18.3/gitea-1.18.3-freebsd12-amd64

2.将 gitea 移动到 /usr/local/bin 作为命令行工具:

mv gitea-*-freebsd12-amd64 /usr/local/bin/gitea
chmod +x /usr/local/bin/gitea

第3步 - 创建用户

1.使用 adduser 创建一个独立的系统账号 git 用于托管 Gitea 程序:

adduser

2.继续在交互式命令工具中创建账号,可将账号设置为不使用密码。

[root@freebsd ~]# adduser
Username: git
Full name:
Uid (Leave empty for default):
Login group [git]:
Login group is git. Invite git into other groups? []:
Login class [default]:
Shell (sh csh tcsh bash rbash git-shell nologin) [sh]:
Home directory [/home/git]:
Home directory permissions (Leave empty for default):
Use password-based authentication? [yes]: no
Lock out the account after creation? [no]:
Username   : git
Password   : <disabled>
Full Name  :
Uid        : 1002
Class      :
Groups     : git
Home       : /home/git
Home Mode  :
Shell      : /bin/sh
Locked     : no
OK? (yes/no): yes
adduser: INFO: Successfully added (git) to the user database.
Add another user? (yes/no): no
Goodbye!

第4步 - 启动服务

1.创建工作文件夹:

mkdir -p /var/lib/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea
chmod -R 750 /var/lib/gitea

2.编写 rc 启动脚本 /usr/local/etc/rc.d/gitea

#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: gitea
# REQUIRE: NETWORKING SYSLOG
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable gitea:
#
#   gitea_enable="YES"
#
# https://github.com/go-gitea/gitea/blob/main/contrib/init/freebsd/gitea

. /etc/rc.subr

name="gitea"
rcvar="gitea_enable"

load_rc_config $name

: ${gitea_user:="git"}
: ${gitea_enable:="NO"}
: ${gitea_directory:="/var/lib/gitea"}

command="/usr/local/bin/gitea web"
procname="$(echo $command |cut -d' ' -f1)"

pidfile="${gitea_directory}/${name}.pid"

start_cmd="${name}_start"
stop_cmd="${name}_stop"

gitea_start() {
	cd ${gitea_directory}
	export USER=${gitea_user}
	export HOME=/home/${gitea_user}
	export GITEA_WORK_DIR=${gitea_directory}
	/usr/sbin/daemon -f -u ${gitea_user} -p ${pidfile} $command
}

gitea_stop() {
	if [ ! -f $pidfile ]; then
		echo "GITEA PID File not found. Maybe GITEA is not running?"
	else
		kill $(cat $pidfile)
	fi
}

run_rc_command "$1"

3.编辑 rc 脚本权限

chmod 755 /usr/local/etc/rc.d/gitea

4.启动服务:

sysrc 'gitea_enable=YES'
service gitea start

第5步 - 访问Web站点完成初始化

posted @ 2023-02-03 21:08  Gitea  阅读(169)  评论(0编辑  收藏  举报