树莓派 3B+ 搭建gogs 服务 git服务

此生再无相见时 提交于 2020-01-09 18:53:35

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

==注意:我是用root账号登录执行所有操作的。如果使用pi账号操作,所有指令前请添加 sudo==

安装

gogs使用go语言编写,树莓派官方系统Raspbian上已经具备了基本的运行环境,官网也提供了适用于Raspberry Pi的二进制版本,因此安装相对比较简单。 把gogs_0.11.91_raspi_armv7.tar.gz上传到树莓派的目录中

1、解压

tar -vxf gogs_0.11.91_raspi_armv7.tar.gz

2、找到可执行文件

cd gogs

3、检查是否能运行

./gogs

输出简短的帮助:

root@raspberrypi:/home/pi/soft/gogs # ./gogs
NAME:
   Gogs - A painless self-hosted Git service

USAGE:
   gogs [global options] command [command options] [arguments...]

VERSION:
   0.11.91.0811

COMMANDS:
     web      Start web server
     serv     This command should only be called by SSH shell
     hook     Delegate commands to corresponding Git hooks
     cert     Generate self-signed certificate
     admin    Perform admin operations on command line
     import   Import portable data as local Gogs data
     backup   Backup files and database
     restore  Restore files and database from backup
     help, h  Shows a list of commands or help for one command

GLOBAL OPTIONS:
   --help, -h     show help
   --version, -v  print the version

4、开启服务器:

./gogs web
root@raspberrypi:/home/pi/soft/gogs # ./gogs web
2020/01/09 15:42:39 [TRACE] Custom path: /home/pi/soft/gogs/custom
2020/01/09 15:42:39 [TRACE] Log path: /home/pi/soft/gogs/log
2020/01/09 15:42:39 [TRACE] Build Time: 2019-09-11 04:31:43 UTC
2020/01/09 15:42:39 [TRACE] Build Git Hash: c154721f4a8f3e24d2f6fb61e74b4b64529255c2
2020/01/09 15:42:39 [TRACE] Log Mode: File (Info)
2020/01/09 15:42:39 [ INFO] Gogs 0.11.91.0811
[Macaron] 2020-01-09 15:42:47: Started GET / for 172.30.34.114
[Macaron] 2020-01-09 15:42:47: Completed GET / 200 OK in 43.815385ms
[Macaron] 2020-01-09 15:42:47: Started GET /js/jquery-1.11.3.min.js for 172.3

有时会有一个警告提示,自定义的配置文件app.ini没有找到。
接下来的自助安装过程会生成配置文件。
在和树莓派同一个网段的PC上用浏览器访问树莓派的IP,端口为3000。

5、访问站点(进行配置)

http://172.30.34.63:3000

会出现首次运行安装程序的页面,配置如下:

  • 数据设置 gogs支持MySQL、PostgreSQL,SQLite3和TiDB,树莓派上运行的轻量级服务,使用SQLite3就行了,这样这个数据库在pi上就是一个db文件。
  • 应用基本设置 应用基本设置主要是一些必须初始化的配置,根据需要修改。
  • 可选设置 可选设置如果不是很清楚含义,可以参考我的设置进行,由于是小规模使用,邮件服务没有配置,管理员用户要创建一个,密码要牢记。

最后点击“立即安装”按钮。 等待一会,会跳转到控制面板,
这就表明安装成功了。
如果出现错误,也会有提示,根据提示修改即可。
注意这个是管理员用户,一般建议仅用于管理普通用户,不用它来直接进行代码托管。
也就是管理员用户管理普通用户,普通用户登录该系统进行代码托管。

6、添加普通用户

在网页右上角的菜单中,选择“管理面板”,这个界面是只有管理员才有的。 在用户管理里,添加一个普通新用户(界面操作,不详细介绍),创建好了然后退出登录,用新账号登录。
==注意这个是管理员用户,一般建议仅用于管理普通用户,不用它来直接进行代码托管。==

保持gogs服务自动启动

1、把服务脚本复制到系统目录

sudo cp /home/pi/soft//gogs/scripts/systemd/gogs.service /etc/systemd/system

2、修改gogs.service配置

vim /etc/systemd/system
root@raspberrypi:/home/pi/soft/gogs/scripts/systemd # cat gogs.service 
[Unit]
Description=Gogs
After=syslog.target
After=network.target
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=git
Group=git
WorkingDirectory=/home/git/gogs
ExecStart=/home/git/gogs/gogs web
Restart=always
Environment=USER=git HOME=/home/git

# Some distributions may not support these hardening directives. If you cannot start the service due
# to an unknown option, comment out the ones not supported by your version of systemd.
ProtectSystem=full
PrivateDevices=yes
PrivateTmp=yes
NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

注意:

User=git
Group=git
WorkingDirectory=/home/git/gogs
ExecStart=/home/git/gogs/gogs web
Restart=always
Environment=USER=git HOME=/home/git

修改为:

User=root
Group=root
WorkingDirectory=/home/gogs-repositories
ExecStart=/home/pi/soft/gogs/gogs web #启动命令「ExecStart」这个很重要,配置错了会启动不起来
Restart=always
Environment=USER=root HOME=/home/pi/

默认用户和路径都是git,这里改成root(或者pi)。

3、设置开机自启动gogs

systemctl enable gogs

4、立即启动gogs:

systemctl start gogs

5、查看实时日志输出

systemctl status gogs

6、附录:

我的配置文件样例,注意有些配置是系统自己生成的,不要直接照搬复制过去。 文件路径:

gogs/custom/conf/app.ini
root@raspberrypi:/home/pi/soft/gogs/custom/conf # cat app.ini 
APP_NAME = Gogs
RUN_USER = root
RUN_MODE = prod

[database]
DB_TYPE  = mysql
HOST     = 172.30.34.63:3306
NAME     = gogs
USER     = root
PASSWD   = 123456
SSL_MODE = disable
PATH     = data/gogs.db

[repository]
ROOT = /home/gogs-repositories # 仓库根目录的路径

[server]
DOMAIN           = 172.30.34.63
HTTP_PORT        = 8082
ROOT_URL         = http://172.30.34.63:8082/
DISABLE_SSH      = false
SSH_PORT         = 22
START_SSH_SERVER = false
OFFLINE_MODE     = false

[mailer]
ENABLED = true
HOST    = smtp.163.com:465
FROM    = ***@163.com
USER    = ****@163.com
PASSWD  = *****

[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL     = false
DISABLE_REGISTRATION   = false
ENABLE_CAPTCHA         = true
REQUIRE_SIGNIN_VIEW    = false

[picture]
DISABLE_GRAVATAR        = false
ENABLE_FEDERATED_AVATAR = false

[session]
PROVIDER = file

[log]
MODE      = file
LEVEL     = Info
ROOT_PATH = /home/pi/soft/gogs/log

[security]
INSTALL_LOCK = true
SECRET_KEY   = GfUjtoxm6SgpibP

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!