Gitea云服务器简单搭建

前言

有时候github访问速度很慢,而手里头刚好有一台闲置的云服务器,就用来自己搭建一个轻量级代码托管。在gitlab、gitea中,gitlab需要的配置较高,而且平常也用不到一些复杂的git功能,剩下的gitea就是一个比较好的选择,而且2核1G就能够带动gitea。

分享搭建过程,(没有学过linux和服务器,因此充满曲折......写笔记来记录

前置准备

云服务器

阿里云、腾讯云、华为云等

Xshell

Xshell提供了个人和家庭的免费使用版本,从下面给出的网址可以免费下载Xshell和Xftp[需要提供邮箱]

家庭/学校免费 - NetSarang Website (xshell.com)

在此笔记使用的有

阿里云ECS服务器[2核2G]

Xshell、Xftp

服务器系统: Ubuntu 20.04

简要流程

1.下载 git mysql-server

2.配置mysql

3.下载gitea

4.gitea系统服务

5.网站配置

搭建过程

云服务器的简单配置

设置服务器密码用于远程连接

一般云服务器设置密码都可以在控制台中找到

[阿里云控制台] home.console.aliyun.com

[华为云控制台] console.huaweicloud.com

[腾讯云控制台] console.cloud.tencent.com

Xshell连接云服务器

1.在服务器资源管理中找到服务器的公网ip

2.在Xshell中新建会话,主机输入ip信息

3.连接刚刚新建的会话,第一次会提示输入用户名和密码

用户名:root

密码:云服务器简单配置步骤中为服务器配置的密码

Ubuntu下载软件

0.切换用户【可忽略】

如果非root用户想要切换至root用户,可以输入

sudo su 
# 之后输入密码,且密码隐藏不会显示,输完回车就行

root用户切换普通用户

su demoUser

1.更新

# root用户不需要输入 sudo
sudo apt update && sudo apt upgrade
# root 示例
apt update && apt upgrade
#更新过程中如果需要用户选择,默认回车

2.下载需要的软件

# 安装基本软件 其中mysql版本需要大于5.7
apt install git mysql-server
# 安装完成之后可以输入下列指令检查mysql版本
mysql --version

Ver 后面数字大于5.7就可以,一般ubuntu20.04中mysql版本已经满足要求

创建用户

0.下载

# 如果没有mysql
apt install mysql-server

1.为gitea创建用户

1-0 linux创建用户的原因

官方gitea二进制程序不支持root用户打开,需要创建一个普通用户来代替root执行gitea二进制程序。

在linux命令行中创建的用户用于执行gitea二进制文件,在mysql中创建的用户用于连接数据库

1-1 创建用户

# 使用 adduser 创建用户,会提示输入密码
sudo adduser gitea

tip: 这个步骤如果无特殊需要默认回车跳过,在最后一行输入y回车确认信息

# 如果设置的密码不合心
# sudo passwd 用户名
sudo passwd gitea

1-2 删除用户

如果用户创建感觉有问题可以执行指令删除gitea用户

# sudo userdel -r demoname 
sudo userdel -r gitea

添加 -r 删除用户及相关文件记录

不带 -r 只删除用户不删除相关文件记录

Mysql配置

在mysql中创建并绑定用户

1-1进入mysql

# 使用mysql的root用户来登录
sudo mysql -u root -p

提示输入密码,但是之前并没有给mysql中root用户设置密码,此时输入任何密码都能够进入mysql命令行。

1-2创建mysql的用户同时绑定gitea用户

mysql>中以分号[;]结束一个语句,如果回车没用,记得检查语句有没有分号

#创建用户CREATE USER 'gitea' IDENTIFIED BY 'gitea123';

'gitea123'是gitea用户的密码

1-2创建数据库giteadb

CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';

官方文档给出的创建一个名为giteadb的数据库,之后这个giteadb将作为gitea网站的数据库

1-3给gitea用户操作giteadb的所有权限

GRANT ALL PRIVILEGES ON giteadb.* TO 'gitea';# 刷新FLUSH PRIVILEGES;# 退出EXIT

Gitea配置

下载gitea

1-0 wget下载gitea位置的选择

可以选择在opt目录下下载,也可以自定义,笔记选择的位置: /opt/gitea/

1-1下载gitea

#创建gitea文件夹
mkdir /opt/gitea

#下载gitea二进制程序
wget -O /opt/gitea/gitea https://dl.gitea.io/gitea/1.18.0/gitea-1.18.0-linux-amd64
#一步到位
mkdir /opt/gitea && wget -O /opt/gitea/gitea  https://dl.gitea.io/gitea/1.18.0/gitea-1.18.0-linux-amd64

1-1-1下载过慢

服务器下载gitea过慢,在自己电脑使用下载工具下载gitea,再通过xshell上传文件至服务器。

选择用Xftp打开在上传至/opt/gitea/下。后重命名文件为gitea

1-2设置权限

# 目录设置权限 可读可写可执行
chmod 777 /opt/gitea/

# 文件添加可执行权限
chmod +x /opt/gitea/gitea


设置service方式启动

使用systemd

sudo vim /etc/systemd/system/gitea.service

点击 i 键,启动写入模式,并复制下列代码,默认不需要修改

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
# mysql service
Wants=mysql.service
After=mysql.service


[Service]
RestartSec=2s
Type=simple
# 值取决于 adduser 创建的用户
User=gitea
# 下载gitea程序的位置
WorkingDirectory=/opt/gitea/

# 这一行是开启web服务,app.ini是网站初始配置,目录可以自定义,这里放在与gitea程序目录下
ExecStart=/opt/gitea/gitea web --config /opt/gitea/app.ini
Restart=always
# Environment=USER=gitea | 如果创建的linux用户不是gitea,则修改成你创建的用户
Environment=USER=gitea
# 存放gitea项目的位置
GITEA_WORK_DIR=/opt/gitea

[Install]
WantedBy=multi-user.target

开启服务

# 先启用服务
systemctl enable gitea

# 后开启服务
systemctl start gitea

# 查看服务启动状态
systemctl status gitea

# 修改配置文件后需要重新加载
systemctl restart gitea

检查是否开启成功

浏览器地址栏中输入[公网地址:端口]打开网站,例如[123.123.123.123:3000],网站端口默认3000

云服务器开放端口

端口

网站默认端口为3000,修改默认端口可以在第一次打开网站的时候修改,也可以在app.ini中修改,修改之后要重新开放端口,并以[公网地址:端口]在浏览器中访问

开放端口

在相应控制台中开放 3000 端口,以阿里云为例

网站配置

输入数据库用户密码并修改数据库名称为giteadb

将所有localhost修改成云服务器公网ip,其余可以默认

可选设置中 管理员账号设置可以自行添加

其他

Linux普通用户与gitea

上文中创建的gitea用户用于启动gitea程序,在gitea.service的文件配置中,User的值就是我们在Linux命令行下使用adduser创建的gitea用户。

Mysql用户与gitea

使用[mysql -u root -p]进入mysql命令行,后面创建的gitea用户和giteadb数据库用于最终用于网站服务,在网站配置中就能看出

参考文档

Gitea官方文档、视频

转自 https://zhuanlan.zhihu.com/p/599688704