GitBlit搭建

  • 到官网下载GitBlit
  • tar解压

  • 改服务的端口 -> ./data/defaults.properties中的server.httpsPort

  • 发现启动不了:
1
2
Error: Unable to initialize main class com.gitblit.GitBlitServer
Caused by: java.lang.NoClassDefFoundError: org/kohsuke/args4j/CmdLineException
  • 应该是权限不足,加sudo启动
  • 依旧是更改配置文件中的server.httpsBindInterface为服务器地址;
  • 发现没有信任证书 -> 换成http
  • 尝试配置到系统服务:修改service-centos.sh中的GITBLIT_PATHGITBLIT_BASE_FOLDER,以及GITBLIT_HTTPS_PORT;

  • 手动把service脚本复制过去之后,找不到一个functions,仔细看了下系统,还有脚本,发现有可以自己配置开机启动的脚本install-service-ubuntu.sh;

  • 但是安装脚本不管用,感觉是启动脚本service-ubuntu.sh有问题;

  • 直接把gitblit.sh复制到/etc/init.d中,然后update-rc.d将gitblit.sh设置为启动项;(不知道可不可行,不行的话等换成crontab,正好国庆要断电一次)

  • 断电之后没有重启,使用crontab的开启启动命令试试(待验证):
1
2
$ sudo crontab -e
@reboot nohup /xxx/gitblit.sh >> /xxx/log 2>&1 &

  • 最近有机会重启了一次,发现crontab没有起作用,手动运行了一下发现应该是log文件的权限没有设置好,-R把log文件的权限给修改了一下,先手动把服务开起来;

  • crontab没有生效
  • 检查了一下上面的命令;
    • 第一个问题是log是一个目录,要改成文件;
    • 第二个问题是脚本文件里面是一条java命令,在gitblit.sh脚本文件里面需要先切换到gitblit的工作目录才能正常启动;
  • 修改如下:
1
2
$ sudo crontab -e
@reboot nohup /xxx/gitblit.sh >> /xxx/log/xx.log 2>&1 &