Ubuntu搭建Git服务器Gitea

我这里服务器都是root权限,所以没有加入sudo,当我们在自己虚拟机的的时候,不一定是root权限,所以每条指令前面需要加入sudo

给Gitea添加一个专用的用户管理

方法一:

1. 创建一个用户,管理Gitea项目

1
adduser git

2.给Gitea用户添加文件的写权限

  1. 使用vim编辑/etc/sudoers (如果第3步设置了别的用户名,那么这里也需要设置别的用户明)
1
vim /etc/sudoers
  1. 找到User privilege specification部分,添加如下内容:
1
git    ALL=(ALL:ALL) ALL

如下图所示:
ubuntu添加用户.png

方法二:

  1. 创建一个用户,管理Gitea项目
1
2
3
useradd git
usermod -a -G sudo git

useradd 添加一般用户

usermod -a -G sudo 将git用户添加sudo组和权限 usermod是修改账号的指令,-a代表添加或者附加,-G代表一个群组

  1. 给该用户添加密码
1
2


查看已存在的用户

  1. 这个命令会列出系统上所有用户的信息,包括用户名和其他相关信息。
1
getent passwd
1
cat /etc/passwd

该命令会显示每个用户的详细信息,包括用户名、密码、用户ID、组ID、用户家目录、登录Shell等

  1. 这个命令对于查找特定用户所属的用户组或特定用户组的成员非常有用,没有上面命令那么多信息
1
getent group

Mysql安装以及检查

安装依赖

1
2
wget http://repo.mysql.com/mysql-apt-config_0.8.32-1_all.deb
apt-get install ./mysql-apt-config_0.8.32-1_all.deb

会进入如下界面,可以通过上下 ↑↓ 控制光标,通过 TAB 选中,回车确认。

Ubuntu操作步骤显示具体操作

图中上下移动到 MySQL Server & Cluster (Currently selected: mysql-8.4-lts) 通过 TAB 选中,光标会自动到 OK 上,点击回车,到下一步按照图片操作

上下移动到 MySQL Server & Cluster (Currently selected: mysql-8.4-lts) 通过 TAB 选中,光标会自动到 OK 上,点击回车

Ubuntu操作步骤显示具体操作

上下移动到 mysql-8.4-lts 通过 TAB 选中,光标会自动到 OK 上,点击回车

Ubuntu操作步骤显示具体操作

上下移动到 OK 通过 TAB 选中,光标会自动到 OK 上,点击回车

Ubuntu操作步骤显示具体操作

执行更新程序

1
2
3
4
sudo apt-get upgrade
sudo apt-get update
sudo apt upgrade
sudo apt update

安装 mysql

1
sudo apt install mysql-server -y
  1. 安装会出现如图,需要你输入一个 root 密码,这个密码后面要使用,要记下来,通过上下移动光标选择确认,然后回车。这里需要输入两次密码。

输入密码前

Ubuntu安装mysql-server

输入密码后

Ubuntu安装mysql-server
  1. 会提示让你重新输入密码,输入密码后,按下上下按键到确认,按下回车
Ubuntu安装mysql-server
  1. 如下界面按 TAB 按键,再按回车按键
Ubuntu安装mysql-server
 4. 如下图所示,选择身份验证,加密方式。
Ubuntu安装mysql-server
  1. 接下来等待安装完成即可,Mysql 就安装完成了。

检查 Mysql 是否安装成功

1
sudo systemctl status mysql

安装成功照片

Ubuntu安装mysql-server成功

使用 Mysql 数据库创建用户

使用 root 用户连接数据库

1
sudo mysql -u root -p

效果如下图所示:

Ubuntu使用 toot 用户连接数据库

创建用户 用户和密码可以更改

1
CREATE USER 'gitealib' IDENTIFIED BY 'gitealib123@';

效果如下图所示:

Ubuntu创建用户 用户和密码

创建数据库 授权 刷新权限

1
2
3
4
CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';
GRANT ALL PRIVILEGES ON giteadb.* TO 'gitealib';
FLUSH PRIVILEGES;
exit

效果如下图所示:

Ubuntu mysql数据库 授权 刷新权限

尝试 gitealib 用户登录

1
2
mysql -u gitealib -p giteadb
exit

效果如下图所示:

Ubuntu尝试 gitealib 用户登录

Ubuntu Gitea后台运行

要在Ubuntu上使Gitea以后台服务的方式运行,你可以使用systemd来创建一个服务单元。以下是简化的步骤和示例代码:

创建一个systemd服务文件:

创建一个新的服务单元文件 /etc/systemd/system/gitea.service参考

官网文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target

[Service]
RestartSec=2s
Type=simple
User=<运行Gitea的用户>
Group=<运行Gitea的用户>
Restart=always
Environment=USER=<运行Gitea的用户>
ExecStart=/<Gitea的安装路径>/gitea web --config /<Gitea的安装路径>/gitea/custom/conf/app.ini

[Install]
WantedBy=multi-user.target

User=这里设置创建用户的用户 git

Environment=USER=这里设置创建用户的用户 git

  • Restart=always: 只要不是通过systemctl stop来停止服务,任何情况下都必须要重启服务,默认值为no

  • RestartSec=20: 重启间隔,比如某次异常后,等待20(s)再进行启动,默认值0.1(s)

  • StartLimitInterval: 无限次重启,默认是10秒内如果重启超过5次则不再重启,设置为0表示不限次数重启

    1
    StartLimitInterval = 0
  • <Gitea的安装路径>:这里不要省略路径,比如我的路径是/opt/gitea ; ExecStart=/opt/gitea/gitea

重新加载systemd配置:

1
sudo systemctl daemon-reload

启动Gitea服务:

1
sudo systemctl start gitea

设置Gitea服务开机自启:

1
sudo systemctl enable gitea

以上步骤会将Gitea配置为一个后台服务,并在系统启动时自动运行。

systemctl停止运行某个任务

systemctl 是一个控制 systemd 系统和服务管理器的命令行工具。要停止运行服务,可以使用 systemctl stop 命令。

停止一个名为 service_name 的服务的命令:

1
sudo systemctl stop service_name

如果你遇到问题,检查gitea服务的状态来获取更多信息:

1
sudo systemctl status gitea

如果你想禁用这个服务,使得它不会在下次启动时自动启动,可以使用 disable 命令:

1
sudo systemctl disable service_name

如果你想同时停止并禁用服务,可以使用 stopdisable 命令的组合:

1
2
sudo systemctl stop service_name
sudo systemctl disable service_name

请确保将 service_name 替换为你想要停止的服务的实际名称。

如停止上面Gitea,将service_name替换成Gitea;

Gitea 无法启动提示 (code=exited, status=203/exec) 错误

Gitea app.ini配置文件

参考