个人git仓库搭建过程

准备

  1. gitea——gitea是一款轻量开源git服务器,可以在本地搭建。

  2. mysql——gitea需要数据库支持,mysql对个人用户比较方便。

搭建

mysql

由于服务器没有root权限,所以数据库需要非root用户安装,可以参考:https://cloud.tencent.com/developer/article/1583129

PS: 如果有root权限的话完全不必这么麻烦~

下载过程省略

配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
[client]                                                                                                                                                                                      
port=3333
socket=/home/mxdon/gitea/mysql/mysql.sock

[mysqld]
port=3333
basedir=/home/mxdon/gitea/mysql
datadir=/home/mxdon/gitea/mysql/data
pid-file=/home/mxdon/gitea/mysql/mysql.pid
socket=/home/mxdon/gitea/mysql/mysql.sock
log_error=/home/mxdon/gitea/mysql/error.log
server-id=100

注意:由于3306端口常被占用,需要更改

启动命令

1
/home/mxdon/gitea/mysql/bin/mysqld_safe --defaults-file=/home/mxdon/gitea/mysql/my.cnf --user=mxdon

注意:这里的user是mysql的主机用户,与文件夹的拥有者不同

gitea

启动命令

1
/home/mxdon/gitea/gitea web -p 5000

-p 指定http访问端口,默认是3000

然后打开15.2.5.5:5000网址,即可进行图形配置,这里只放出ini文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
APP_NAME = mxdon资料共享
RUN_USER = mxdon
RUN_MODE = prod

[security]
INTERNAL_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYmYiOjE2MzY0NDM5MzB9.LyfUN-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
INSTALL_LOCK = true
SECRET_KEY = okb73n7MVPRTC1UAeIlxxxxxxxxxxxxxxxxxxxxxxxfunuGv7tPVRQD9CvJMQGFv
PASSWORD_HASH_ALGO = pbkdf2

[server]
LOCAL_ROOT_URL = http://localhost:5000/
SSH_DOMAIN = 15.2.5.5
DOMAIN = 15.2.5.5
HTTP_PORT = 5000
ROOT_URL = http://15.2.5.5:5000/
DISABLE_SSH = false
SSH_PORT = 22
LFS_START_SERVER = true
LFS_CONTENT_PATH = /home/mxdon/gitea/data/lfs
LFS_JWT_SECRET = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxQ6N80
OFFLINE_MODE = false

[database]
DB_TYPE = mysql
HOST = 15.2.5.5:3333
NAME = gitea
USER = mxdon
PASSWD = mxdon123
SCHEMA =
SSL_MODE = disable
CHARSET = utf8
PATH = /home/mxdon/gitea/data/gitea.db
LOG_SQL = false

[repository]
ROOT = /home/mxdon/gitea/data/gitea-repositories

[mailer]
ENABLED = false

[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = false
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
ENABLE_CAPTCHA = false
REQUIRE_SIGNIN_VIEW = false
DEFAULT_KEEP_EMAIL_PRIVATE = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DEFAULT_ENABLE_TIMETRACKING = true
NO_REPLY_ADDRESS = noreply.localhost

[picture]
DISABLE_GRAVATAR = false
ENABLE_FEDERATED_AVATAR = true

[openid]
ENABLE_OPENID_SIGNIN = true
ENABLE_OPENID_SIGNUP = true

[session]
PROVIDER = file

[log]
MODE = console
LEVEL = info
ROOT_PATH = /home/mxdon/gitea/log
ROUTER = console

注意,其中mysql的账户需要有远程访问的权限,并建议新建数据库gitea用作gitea服务器交互,配置过程如下,其中先设权限后建数据库,以防数据库被弄脏使索引不匹配

1
2
3
mysql> GRANT ALL ON *.* TO 'mxdon'@'%';
mysql> create database gitea;
mysql> flush privileges;

使用如下命令查看,可以验证:

1
2
3
4
5
6
7
8
9
10
11
mysql> use mysql;
mysql> select user, host from user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| mxdon | % |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
4 rows in set (0.00 sec)

自启动

没有root权限没法自启动,只能假装一下: nohup

可以写一个简单的脚本:

另外,不要在脚本中添加echo输出一些提示信息,这样会使scp不生效,我也不知道为什么

1
2
3
4
5
6
7
8
9
10
11
#!/bin/sh
Pgitea=`ps -aux | grep "/home/mxdon/gitea/gitea web -p 5000"`
Pmysql=`ps -aux | grep "/home/mxdon/gitea/mysql/bin/mysqld_safe --defaults-file"`
if [ ${#Pmysql} -eq 0 ]
then
nohup /home/mxdon/gitea/mysql/bin/mysqld_safe --defaults-file=/home/mxdon/gitea/mysql/my.cnf --user=mxdon > /home/mxdon/gitea/mysql/.nohup.log 2>&1 &
fi
if [ ${#Pgitea} -eq 0 ]
then
nohup /home/mxdon/gitea/gitea web -p 5000 > /home/mxdon/gitea/.nohup.log 2>&1 &
fi

命名为.gitea.sh

每次可以直接source一下即可,也可以写进bashrc中:

1
source /home/mxdon/.gitea.sh

另外,由于mysql的启动有些麻烦,可以使用alias:

1
alias mysql='/home/mxdon/gitea/mysql/bin/mysql -S /home/mxdon/gitea/mysql/mysql.sock'

这样就可以无痕使用mysql

最后,点个关注不迷路

公众号:孟游先生的旅游笔记