玩客云折腾之路

基于Armbian,完成docker、挂载U盘、gitea部署等



文章目录

  • 玩客云折腾之路
  • 前言
  • 一、Git托管工具的选择?
  • 二、Gitea安装步骤
  • 1. docker安装(失败)
  • 2.二进制安装
  • 安装数据库
  • 创建用户
  • 安装Gitea
  • 下载
  • 配置目录
  • 个性化目录配置-U盘
  • 创建自启服务
  • 配置Gitea



前言

记录一下玩客云如何安装gitea,实现代码的托管。由于Docker镜像无Armv7镜像,需要通过命令行运行可执行文件。
之所以采用玩客云,主要是为了功耗和无感,玩客云可以长期7*24h运行,功耗几乎不计,且对个人而言,运行Gitea稳定够用。


一、Git托管工具的选择?

针对代码托管服务器,最出名的是Githab,但若是为了安全、网速、团队协作等原因,需要自己搭建托管服务器,可以选择Gitlab、Gitea等。

Gitlab 是完整的 git 集成环境,包含 npm,nuget,docker registry 等私有集成,还有完整的 CI/CD,k8s 集成方案,搭建首选。Gitea较轻量化,具有git管理和wiki功能,无CI/CD功能。

Gitlab,官方推荐最低物理配置为2核4G,针对玩客云,部署过后完全无法启动。因此,最终选择了Gitea,本文针对Gitea部署展开细述。

二、Gitea安装步骤

1. docker安装(失败)

首先想到的都会通过docker进行安装,根据docker安装报错,去docker hub查找,并无armv7镜像,只有armv8镜像。因此通过

root@aml-s812:~# docker pull gitea/gitea
Using default tag: latest
latest: Pulling from gitea/gitea
latest: Pulling from gitea/gitea
no matching manifest for linux/arm/v7 in the manifest list entries

Armv8为64位架构,与Armv7并不兼容,下表是Arm Community - V8与V7的对比

特性

ARM V8

ARM V7

指令集

64位指令集 AArch64, 并且兼容32位指令集 AArch32

32位指令集 A32 和16位指令集 T16

支持地址长度

64位

32位

通用寄存器

31个 x0-x30(64位)或者 w0-w30(32位)

15个, r0-r14 (32位)

异常模式

4层结构 EL0-EL3

2层结构vector table

NEON

默认支持

可选支持

LAPE

默认支持

可选支持

Virtualization

默认支持

可选支持

big.LITTLE

支持

支持

TrustZone

默认支持

默认支持

SIMD寄存器

32个 X 128位

32个 X 64位

因此,我们选择通过二进制安装Gitea。

2.二进制安装

安装数据库

Gitea支持SQLite、PostgreSQL和MySQL/MariaDB作为数据库后端。针对玩客云,选择了轻量化的SQLite

apt update
apt install sqlite3

创建用户

Gitea无法使用root权限用户运行,在此创建一个独立账户git去运行Gitea。

#创建一个新的系统用户,将通过键入以下命令来运行Gitea应用程序:

sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git

# 该命令将创建一个名为git的新用户和组,并将主目录设置为/home/git,输出将如下所示:
Adding system user `git' (UID 111) ...
Adding new group `git' (GID 116) ...
Adding new user `git' (UID 111) with group `git' ...
Creating home directory `/home/git' ...

安装Gitea

下载

访问Gitea下载页面(地址:https://dl.gitea.io/gitea/),选择linux-arm-6的安装文件,通过wget下载。比如,此处选择1.16.7版本。

wget -O /tmp/gitea https://dl.gitea.io/gitea/1.16.7/gitea-1.16.7-linux-arm-6
mv /tmp/gitea /usr/local/bin  # 一般二进制文件存放此处
chmod +x /usr/local/bin/gitea  # 可执行权限
配置目录

主要参考英文版的安装教程,中文版砍去了该部分配置。
官网:https://docs.gitea.io/en-us/install-from-binary/
以下是官网推荐的目录结构配置,运行以下命令以创建目录并设置所需的权限和所有权:

mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
chown git: /var/lib/gitea/{data,indexers,log}
chmod 750 /var/lib/gitea/{data,indexers,log}
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea
个性化目录配置-U盘
创建自启服务

Gitea提供了已配置为与我们的设置匹配的Systemd单位文件。
通过键入以下命令将文件下载到/etc/systemd/system/目录:

wget https://raw.githubusercontent.com/go-gitea/gitea/master/contrib/systemd/gitea.service -P /etc/systemd/system/
# 完成后,启用并启动Gitea服务:
 systemctl daemon-reload
systemctl enable --now gitea

配置Gitea

Gitea默认端口3000,初次打开http://YOUR_DOMAIN_IR_IP:3000会提示进行配置。