背景
自从有了服务器,又懂了点MySql并且买了一个鹅厂的三年数据库服务,我就什么都想自己来做了,加上之前自己的代码也存在公司,毕竟是别人的不是,还是自己搭个吧
环境: Ubuntu16.04
步骤
- 直接下载安装包,
其中386
指的是86系统,amd64
指的是64位系统,其他的就不用说了吧 - 解压,然后
cd
进入gogs目录,执行./gogs web
。程序就会运行在0.0.0.0:3000
上 - nginx 配置 先不说了,单独使用独立的MySql话比较方便,直接填写相关地址账号信息就可以了,之后可以在
gogs/custom/conf/app.ini
修改install
时的一些配置。
APP_NAME = Gogs
RUN_USER = root
RUN_MODE = prod
[database]
DB_TYPE = mysql
HOST = address:port
NAME = CTGogs
USER = name
PASSWD = pass
SSL_MODE = disable
PATH = data/gogs.db
[repository]
ROOT = /data/gogs-repositories
[server]
DOMAIN = git.easyulife.com
HTTP_PORT = 3000
ROOT_URL = https://git.easyulife.com/
DISABLE_SSH = false
SSH_PORT = 22 // 注意端口22可能被占用,需要更改为别的端口
START_SSH_SERVER = true
OFFLINE_MODE = false
[mailer]
ENABLED = false
- 配置与自动后台运行。
gogs文件
修改Gogs service配置文件
vi 路径/gogs/scripts/init/debian/gogs
[Unit]
Description=Gogs
After=syslog.target
After=network.target
// 下面这个划重点了,我忙活了半天,死活跑不起来就是这个原因,这下面一行的意思是保证这么些数据库服务都起来了,才运行后面的。这里本来就是要注释掉部分的,由于我用的是独立的MySql所有我全都注了
#After=mariadb.service mysqld.service postgresql.service memcached.service redis.service
[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=root // 用户民
Group=root // 用户组
WorkingDirectory=/data/gogs // 工作目录,填到gogs运行文件的那一级
ExecStart=/data/gogs/gogs web // 执行文件的uri
Restart=always
Environment=USER=root HOME=/data //gogs文件夹的一级目录
[Install]
WantedBy=multi-user.target
sudo cp 路径/gogs/scripts/init/debian/gogs /etc/init.d/
增加执行权限
sudo chmod +x /etc/init.d/gogs
gogs.service文件
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="Gogs"
NAME=gogs
SERVICEVERBOSE=yes
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
WORKINGDIR=/data/gogs/gogs //修改成你的gogs运行文件uri
DAEMON=$WORKINGDIR/$NAME
DAEMON_ARGS="web"
USER=root //执行用户
复制service
cp 路径/gogs/scripts/systemd/gogs.service /etc/systemd/system/
- 大功告成运行
sudo service gogs start
,如果无法访问service gogs status
查看错误原因