Gogs是一个免费开源的Go语言编写的Git服务。Gogs是一个无痛的自托管Git服务器,它可以以尽可能少的硬件资源开销设置和运行您的私有Git服务器。Gogs的网络界面与GitHub的非常相似,并提供对MySQL、PostgreSQL和SQLite数据库的支持。在本教程中,我们将逐步引导您使用Gogs在Ununtu16.04上安装和配置您的私有Git服务器。本教程详细介绍了如何安装Go语言、PostgreSQL以及安装和配置NginxWeb服务器作为Ubuntu上Go应用程序的反向代理。搭建环境Ubuntu16.04root权限更新升级系统安装配置PostgreSQL安装Go和Git安装Gogs配置Gogs运行Gogs服务器安装配置Nginx反向代理测试第一步-更新升级系统之前继续,更新所有Ubuntu存储库,升级所有软件包。运行以下apt命令:sudoaptupdatesudoaptupgrade步骤2-安装和配置PostgreSQLGogs提供MySQL、PostgreSQL、SQLite和TiDB数据库系统支持。在这一步中,我们将使用PostgreSQL作为Gogs程序的数据库。使用下面的apt命令安装PostgreSQL。sudoaptinstall-ypostgresqlpostgresql-clientlibpq-dev安装完成后,启动PostgreSQL服务,设置为开机启动。systemctlstartpostgresqlsystemctlenablepostgresql现在在Ubuntu系统上安装了PostgreSQL数据库。之后,我们需要为Gogs创建数据库和用户。以postgres用户登录,执行psql命令进入PostgreSQL操作界面。su-postgrespsql创建一个名为git的新用户,赋予该用户CREATEDB权限。CREATEUSERgitCREATEDB;\passwordgit创建一个名为gogs_production的数据库,将git用户设置为它的所有者。创建数据库gogs_production所有者git;创建Gogs数据库Gogs的gogs_productionPostgreSQL数据库和git用户已经创建。第3步-安装Go和Git使用下面的apt命令从存储库安装Git。sudoaptinstallgit此时,为系统新建一个名为git的用户。sudoadduser--disabled-login--gecos'Gogs'git登录git帐户并创建名为local的目录。su-gitmkdir-p/home/git/local切换到本地目录,根据下图内容使用wget命令下载Go(***版)。cd~/localwgethttps://dl.google.com/go/go1.9.2.linux-amd64.tar.gz安装Go和Git解压缩并删除go存档。tar-xfgo1.9.2.linux-amd64.tar.gzrm-fgo1.9.2.linux-amd64.tar.gzGo二进制文件已下载到~/local/go目录。此时我们需要设置环境变量——将GOROOT和GOPATH目录设置为系统环境,这样我们就可以在git用户下执行go命令了。执行下面的命令。cd~/echo'exportGOROOT=$HOME/local/go'>>$HOME/.bashrcecho'exportGOPATH=$HOME/go'>>$HOME/.bashrcecho'exportPATH=$PATH:$GOROOT/bin:在$GOPATH/bin'>>$HOME/.bashrc之后,通过运行source~/.bashrc重新加载Bash,如下所示:source~/.bashrc确保您使用Bash作为默认shell。安装Go编程语言,现在运行goversionview命令。在go版本之后确保你得到如下图所示的结果。查看go版本Go现在安装在系统的git用户下。第4步-使用Gogs安装Git服务以git用户身份登录并使用go命令从GitHub下载Gogs。su-gitgoget-ugithub.com/gogits/gogs此命令将下载GOPATH/src目录中Gogs的所有源代码。切换到$GOPATH/src/github.com/gogits/gogs目录并使用以下命令构建Gogs。cd$GOPATH/src/github.com/gogits/gogsgobuild以确保您不会出错。现在使用下面的命令运行GogsGoGit服务器。./gogsweb该命令将默认在端口3000上运行Gogs。安装GogsGoGit服务打开网络浏览器并输入您的IP地址和端口号,我的是http://192.168.33.10:3000/。您应该会得到类似于下面的反馈。GogsWeb服务器Gogs已经安装在你的Ubuntu系统上。现在返回您的终端并键入Ctrl+C以停止服务。第5步-配置GogsGoGit服务器在这一步中,我们将为Gogs创建自定义配置。转到Gogs安装目录并创建一个新的custom/conf目录。cd$GOPATH/src/github.com/gogits/gogsmkdir-pcustom/conf/将默认配置文件复制到自定义目录下,用vim修改。cpconf/app.inicustom/conf/app.inivimcustom/conf/app.ini在[server]部分,修改HOST_ADDR为127.0.0.1。[server]PROTOCOL=httpDOMAIN=localhostROOT_URL=%(PROTOCOL)s://%(DOMAIN)s:%(HTTP_PORT)s/HTTP_ADDR=127.0.0.1HTTP_PORT=3000在[database]选项中,按照你的数据库信息修改。[数据库]DB_TYPE=postgresHOST=127.0.0.1:5432NAME=gogs_productionUSER=gitPASSWD=aqwe123@#保存退出。运行下面的命令来验证配置项。./gogsweb并确保你得到以下结果。配置服务器Gogs现在使用自定义配置在端口3000上的本地主机上运行。第6步-运行Gogs服务器在这一步中,我们将在Ubuntu系统上配置Gogs服务器。我们将在/etc/systemd/system目录中创建一个新的服务器配置文件gogs.service。切换到/etc/systemd/system目录并使用vim创建服务器配置文件gogs.service。cd/etc/systemd/systemvimgogs.service将以下代码粘贴到Gogs服务器配置文件中。[Unit]Description=GogsAfter=syslog.targetAfter=network.targetAfter=mariadb.servicemysqld.servicepostgresql.servicememcached.serviceredis.service[Service]#修改这两个值,有的话取消注释#reposwithlots的文件并得到HTTP错误500因为####LimitMEMLOCK=infinity#LimitNOFILE=65535Type=simpleUser=gitGroup=git??WorkingDirectory=/home/git/go/src/github.com/gogits/gogsExecStart=/home/git/go/src/github.com/gogits/gogs/gogswebRestart=alwaysEnvironment=USER=gitHOME=/home/git[Install]WantedBy=multi-user.target然后保存退出。现在可以重新加载系统服务器。systemctldaemon-reload使用以下命令启动Gogs服务器,并将其设置为开机启动。systemctlstartgogssystemctlenablegogs运行Gogs服务器Gogs服务器现在运行在Ubuntu系统上。使用如下命令检测:netstat-plntusystemctlstatusgogs你应该得到下图所示的结果。Gogs正在监听网络接口第7步-为Gogs安装和配置Nginx反向代理在这一步中,我们将为Gogs安装和配置Nginx反向代理。我们将在我们的库中调用Nginx包。使用以下命令添加Nginx存储库。sudoadd-apt-repository-yppa:nginx/stable现在更新所有存储库并使用以下命令安装Nginx。sudoaptupdatesudoaptinstallnginx-y后,进入/etc/nginx/sites-available目录,创建虚拟主机文件gogs。cd/etc/nginx/sites-availablevimgogs将以下代码粘贴到配置文件中。服务器{听80;服务器名称git.hakase-labs.co;位置/{proxy_passhttp://localhost:3000;}}保存并退出。注意:请将server_name项修改为您的域名。现在激活虚拟主机并测试nginx配置。ln-s/etc/nginx/sites-available/gogs/etc/nginx/sites-enabled/nginx-t确保没有遇到错误并重启Nginx服务器。systemctlrestartnginx安装和配置Nginx反向代理第8步-测试打开您的网络浏览器并输入您的GogsURL,我的是http://git.hakase-labs.co现在您将进入安装屏幕。在页面顶部,输入所有PostgreSQL数据库信息。安装Gogs后,滚动到底部并单击“管理员帐户设置”下拉菜单。输入您的管理员用户名和电子邮件。键入gogs安装设置并单击“安装Gogs”按钮。然后您将被重定向到下图所示的Gogs用户面板。GogsDashboard下方是Gogs“AdminDashboard”。浏览Gogs面板Gogs现在安装在你的Ubuntu16.04上,带有PostgreSQL数据库和Nginx网络服务器。
