gogs 搭建自己的代码托管平台
github 是众所周知的代码托管平台,广大开发者将自己的代码或者是其他奇奇怪怪的东西都托管在上面。今天突发奇想,想自己搭建一个代码托管平台,供自己使用。在网上发现了 gogs 这个工具。于是开始了部署工作。
环境配置
我的服务器是 Archlinux 系统。部署 gogs 主要需要配置好数据库、git和ssh。
mariadb 数据库
作为开源爱好者,我选择的是 mariadb 数据库。在 Archlinux 上安装 mariadb 使用命令:
1 | sudo pacman -S mariadb |
这样就安装好了 mariadb。然后启动 mariadb:
1 | sudo systemctl start mariadb.service |
接下来可以使用下面这个命令进行一些安全配置:
1 | mysql_secure_installation |
根据提示进行选择和输入,并且设置 root 密码。
gogs 需要 mariadb 数据库 使用 INNODB 引擎。需要进行一些配置。首先用 root 登录数据库:
1 | mysql -p -u root |
在数据库内进行一些设置:
1 | MariaDB> SET GLOBAL innodb_file_per_table = ON; |
有时 innodb_file_format
和 innodb_large_prefix
变量是只读的,这时只能在配置文件中修改
1 | /etc/my.cnf |
然后创建用户和数据库:
1 | mysql -p -u root |
这要数据库就配置好了。
安装 git 和 ssh 以及新建用户
对于 Archlinux 使用以下命令安装 git 和 ssh。一般的云服务器和 VPS 已经配置好了 ssh。
1 | sudo pacman -S git openssh |
接着需要新建用户,该用户就是 ssh 上传下载的用户,也是 gogs 运行的用户。
1 | sudo useradd -m git |
其中 -m
是创建用户目录,用户目录的 ~/.ssh
文件夹可以对 ssh 做一些设置,不创建用户名目录其实也可以用。事后在 gogs 中设置就可以了。
以上就是环境配置了。接下来开始下载安装 gogs。
gogs 安装
我们一般采用二进制安装,参考文档
首先在官网下载二进制包:https://gogs.io/,可以使用 wget 命令直接下载到服务器上。
gogs 下载解压
具体方法为,改用 git 用户登录,然后 cd 到 git 的 home 目录,最后下载 gogs。
1 | su git |
下载到服务器的位置要是 git 用户能够有权限读写的位置。如果你创建了 home 目录的话,一般是直接下载到 home 目录。
然后解压:
1 | tar -xzvf gogs_0.12.3_linux_amd64.tar.gz |
gogs 运行配置
进入 gogs 目录,运行 ./gogs web
。就可以启动 gogs 了。
用浏览器访问 http://服务器IP:3000/install
就可以就行首次配置。数据库引擎设置为 mysql,数据库名 gogs,用户 gogs,密码为你设置的密码。其他的按照情况填写,就可以成功进入 gogs 了。
如果想使用 systemd 启动 gogs 的话,只需要将 home/git/gogs/scripts/systemd/gogs.service
文件稍作配置,然后复制到 /etc/systemd/system/
文件夹中,就可以使用 systemd 来启动 gogs 了。
如果你想修改配置,只需要修改 gogs 文件夹中 custom/conf/app.ini
文件即可。具体可配置项可以在 github 源代码中查找。
还可以通过修改 custom/templates/
来配置主页。
以上就是 gogs 的配置方法,是否想尝试一下呢?