admin 管理员组文章数量: 887021
项目场景:
基于晶晨S905L3A的CM311-1A刷入armbian系统,并部署本地Gitea服务器
armbian系统:Armbian_jammy_6.1.93_server
Gitea二进制文件:gitea-1.21.11-linux-arm-6(经测试1.22.0版本无法运行,原因未知)
操作步骤
1.安装数据库
apt update
apt install sqlite3 //sqlite轻量化
2.创建独立用户git
Gitea无法使用root权限运行,因此需要创建一个账户"git"运行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' ...
3.下载Gitea二进制文件
Gitea下载页面(地址:https://dl.gitea.io/gitea/),根据ARM Cortex-A53架构故选择linux-arm-6的安装文件,通过wget下载选择1.21.11版本
wget -O /tmp/gitea https://dl.gitea.io/gitea/1.21.11/gitea-1.21.11-linux-arm-6
#下载的gitea文件暂存在/tmp路径
mv /tmp/gitea /usr/local/bin # 移动文件,一般二进制文件存放此处
chmod +x /usr/local/bin/gitea # 可执行权限
4.准备Git环境
检查是否安装 Git。要求 Git 版本 >= 2.0。
git --version
若没安装Git则先安装
apt update
apt install git
5.创建工作路径
mkdir -p /var/lib/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea
注意: 为了让 Web 安装程序可以写入配置文件,我们临时为 /etc/gitea 路径授予了组外用户 git 写入权限。建议在安装结束后将配置文件的权限设置为只读
在Gitea Web服务启动以后执行以下
chmod 750 /etc/gitea
chmod 640 /etc/gitea/app.ini
6.创建Linux服务自动启动 Gitea(推荐)
systemd 方式
sudo nano /etc/systemd/system/gitea.service
编写gitea.service文件;拷贝示例代码 gitea.service 并取消对任何需要运行在主机上的服务部分的注释,譬如 MySQL
[Unit]
Description=Gitea
After=syslog.target
After=network.target
###
# Don't forget to add the database service dependencies
###
#
#Wants=mysql.service
#After=mysql.service
#
#Wants=mariadb.service
#After=mariadb.service
#
#Wants=postgresql.service
#After=postgresql.service
#
#Wants=memcached.service
#After=memcached.service
#
#Wants=redis.service
#After=redis.service
#
###
# If using socket activation for main http/s
###
#
#After=gitea.main.socket
#Requires=gitea.main.socket
#
###
# (You can also provide gitea an http fallback and/or ssh socket too)
#
# An example of /etc/systemd/system/gitea.main.socket
###
##
## [Unit]
## Description=Gitea Web Socket
## PartOf=gitea.service
##
## [Socket]
## Service=gitea.service
## ListenStream=<some_port>
## NoDelay=true
##
## [Install]
## WantedBy=sockets.target
##
###
[Service]
# Uncomment the next line if you have repos with lots of files and get a HTTP 500 error because of that
# LimitNOFILE=524288:524288
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
#WorkingDirectory 参数来配置工作路径,否则使用环境变量 GITEA_WORK_DIR 的方式来明确指出程序工作和数据存放路径:export GITEA_WORK_DIR=/var/lib/gitea/
# If using Unix socket: tells systemd to create the /run/gitea folder, which will contain the gitea.sock file
# (manually creating /run/gitea doesn't work, because it would not persist across reboots)
#RuntimeDirectory=gitea
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
# If you install Git to directory prefix other than default PATH (which happens
# for example if you install other versions of Git side-to-side with
# distribution version), uncomment below line and add that prefix to PATH
# Don't forget to place git-lfs binary on the PATH below if you want to enable
# Git LFS support
#Environment=PATH=/path/to/git/bin:/bin:/sbin:/usr/bin:/usr/sbin
# If you want to bind Gitea to a port below 1024, uncomment
# the two values below, or use socket activation to pass Gitea its ports as above
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE
###
# In some cases, when using CapabilityBoundingSet and AmbientCapabilities option, you may want to
# set the following value to false to allow capabilities to be applied on gitea process. The following
# value if set to true sandboxes gitea service and prevent any processes from running with privileges
# in the host user namespace.
###
#PrivateUsers=false
###
[Install]
WantedBy=multi-user.target
精简版如下:
[Unit]
Description=Gitea
After=syslog.target
After=network.target
[Service]
RestartSec=10s
Type=simple
User=git
Group=git
ExecStart=/usr/local/gitea web --config /usr/local/gitea/custom/conf/app.ini
Restart=always
[Install]
WantedBy=multi-user.target
6.启动Gitea服务和设置Gitea开机启动
# 运行
systemctl start gitea
# 设置开机启动
systemctl enable gitea
# 查看进程是否成功运行
ps -aux | grep gitea
# 如果成功会看到一条git用户运行的gitea进程
git 1525 9.8 12.1 1375512 227352 ? Ssl 17:17 0:00 /git/gitea web --config /git/custom/conf/app.ini
root 1525 0.0 0.0 12324 1040 pts/0 S+ 17:17 0:00 grep --color=auto gitea
#查看Gitea服务状态
systemctl status gitea.service
● gitea.service - Gitea (Git with a cup of tea)
Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2022-11-02 16:59:55 CST; 25s ago
Main PID: 899 (gitea)
Tasks: 9 (limit: 4658)
Memory: 142.9M
CPU: 1.310s
CGroup: /system.slice/gitea.service
└─899 /usr/local/bin/gitea web --config /etc/gitea/app.ini
相关指令
#重载daemon,让新的服务文件生效
systemctl daemon-reload
#停止Gitea
systemctl stop gitea
#安全地重启程序
systemctl restart gitea
#查看日志
journalctl -b 0 -u gitea
#查看服务列表与状态
systemctl list-units --type=service
#在开机时禁用一个服务
systemctl disable postfix.service
#查看服务是否开机启动
systemctl is-enabled postfix.service
#查看已启动的服务列表
systemctl list-unit-files | grep enabled
#查看启动失败的服务列表
systemctl --failed
7.升级Gitea最新版本
通过停止程序,替换 /usr/local/bin/gitea 并重启来更新到新版本。直接替换可执行程序时不要更改或使用新的文件名称,以避免数据出错。
8.WEB配置Gitea
Gitea默认端口3000,初次打开http://YOUR_DOMAIN_IR_IP:3000会提示进行配置
9.故障排查
1.若Gitea服务崩溃,先停止服务,检查EMMC是否error变成ro(read only)。若是则输入 mount –o remount,rw /
重新挂载。或reboot系统自动重新挂载(注:重启系统后立即停止服务,避免EMMC再次变成ro)
2.重新执行chown和chmod赋予git用户权限
3.若重启服务还是不行则重新下载Gitea二进制文件替换,并执行以上操作
版权声明:本文标题:armbian部署Gitea 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1725890076h888021.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论