How to install Gogs on a Linux Server (DigitalOcean)
目录:
- 在你开始之前
- 安装Gogs
- 安装Git
- 创建一个Git用户
- 下载Gogs二进制文件
- 创建一个系统单位文件
- 使用Web安装程序安装Gogs
- 将Nginx配置为SSL终止代理
- 配置电子邮件通知
- 升级狗
- 结论
Gogs是用Go编写的自托管开源git服务器。 它包括一个存储库文件编辑器,项目问题跟踪和一个内置的Wiki。
Gogs是轻型应用程序,可以安装在低功率系统上。 如果您正在寻找内存占用量少得多的Gitlab替代产品,而又不需要Gitlab提供的所有功能,那么您绝对应该尝试Gogs。
本教程介绍了在Ubuntu 18.04上安装和配置Gogs的步骤。 相同的说明适用于Ubuntu 16.04和任何其他基于Ubuntu的发行版。
在你开始之前
Gogs可以使用SQLite,PostgreSQL或MySQL / MariaDB数据库存储其所有数据。
在本教程中,我们将使用SQLite作为选择的数据库。 如果您的系统上未安装SQLite,则可以输入以下命令进行安装:
sudo apt install sqlite3
为了增加安全性,建议设置基本防火墙。 您可以按照我们的《如何在Ubuntu 18.04上使用UFW设置防火墙》指南中的步骤进行操作。
安装Gogs
我们将从二进制文件安装Gogs。 安装过程非常简单。
安装Git
第一步是在您的服务器上安装Git。 为此,请以sudo用户身份运行以下命令,刷新本地软件包索引并安装git软件包:
sudo apt update
sudo apt install git
通过显示Git版本来验证安装:
git --version
创建一个Git用户
通过键入以下内容来创建新的系统用户以运行Gogs服务:
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git
该命令将创建用户并将主目录设置为
/home/git
。 输出将如下所示:
Adding system user `git' (UID 111)… Adding new group `git' (GID 116)… Adding new user `git' (UID 111) with group `git'… Creating home directory `/home/git'…
下载Gogs二进制文件
访问Gogs下载页面,并下载适用于您的体系结构的最新二进制文件。 在撰写本文时,最新版本为0.11.86,如果有可用的新版本,请在下面的命令中更改
VERSION
变量。
使用以下wget命令将Gogs存档下载到
/tmp
目录中:
VERSION=0.11.86
wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmp
下载完成后,解压缩Gogs tar.gz文件并将其移至
/home/git
目录:
sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git
运行以下命令,将Gogs安装目录的所有权更改为用户和git组:
sudo chown -R git: /home/git/gogs
创建一个系统单位文件
Gogs附带了一个Systemd单位文件,该文件已配置为与我们的设置匹配。
通过键入以下命令将文件复制到
/etc/systemd/system/
目录:
sudo cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/
完成后,启动并启用Gogs服务:
sudo systemctl start gogs
sudo systemctl enable gogs
验证服务是否成功启动:
* gogs.service - Gogs Loaded: loaded (/etc/systemd/system/gogs.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-04-25 04:13:44 PDT; 9s ago Main PID: 14376 (gogs) Tasks: 8 (limit: 2319) CGroup: /system.slice/gogs.service `-14376 /home/git/gogs/gogs web
使用Web安装程序安装Gogs
现在已经下载并运行了Gogs,现在该通过Web界面完成安装了。
打开浏览器,输入
http://YOUR_DOMAIN_IR_IP:3000
,将出现类似于以下的屏幕:


第一个注册用户将自动添加到Admin组。
而已。 Gogs已安装在您的Ubuntu机器上。
将Nginx配置为SSL终止代理
此步骤是可选的,但强烈建议这样做。 要将Nginx用作反向代理,您需要具有一个指向服务器公共IP的域或子域。 在本教程中,我们将使用
gogs.example.com
。
首先,请按照以下指南安装Nginx并生成免费的“让我们加密SSL”证书:
完成后,打开文本编辑器并编辑域服务器阻止文件:
sudo nano /etc/nginx/sites-enabled/gogs.example.com
/etc/nginx/sites-enabled/gogs.example.com
server { listen 80; server_name gogs.example.com; include snippets/letsencrypt.conf; return 301 https://gogs.example.com$request_uri; } server { listen 443 ssl http2; server_name gogs.example.com; proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s; client_max_body_size 50m; # Proxy headers proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; # SSL parameters ssl_certificate /etc/letsencrypt/live/gogs.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/gogs.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/gogs.example.com/chain.pem; include snippets/letsencrypt.conf; include snippets/ssl.conf; # log files access_log /var/log/nginx/gogs.example.com.access.log; error_log /var/log/nginx/gogs.example.com.error.log; # Handle / requests location / { proxy_redirect off; proxy_pass http://127.0.0.1:3000; } }
不要忘记用您的Gogs域替换gogs.example.com,并为SSL证书文件设置正确的路径。 所有HTTP请求将被重定向到HTTPS
重新启动Nginx服务以使更改生效:
sudo systemctl restart nginx
接下来,我们需要更改Gogs域和根url。 为此,请打开配置文件并编辑以下行:
sudo nano /home/git/gogs/custom/conf/app.ini
/home/git/gogs/custom/conf/app.ini
DOMAIN = gogs.example.com ROOT_URL =
通过键入以下命令重新启动Gogs服务:
sudo systemctl restart gogs
至此,Gogs已配置完毕,您可以在以下位置访问它:
https://gogs.example.com
://gogs.example.com
配置电子邮件通知
为了使Gogs能够发送通知电子邮件,您可以安装Postfix或使用某些事务性邮件服务,例如SendGrid,MailChimp,MailGun或SES。
要启用电子邮件通知,请打开配置文件并编辑以下行:
sudo nano /home/git/gogs/custom/conf/app.ini
/home/git/gogs/custom/conf/app.ini
ENABLED = true HOST = SMTP_SERVER:SMTP_PORT FROM = SENDER_EMAIL USER = SMTP_USER PASSWD = YOUR_SMTP_PASSWORD
确保您输入了正确的SMTP服务器信息。
重新启动Gogs服务,以使更改生效:
sudo systemctl restart gogs
Gogs还允许您通过创建Web Webhook连接到Slack并将通知发送到您的Slack频道。
升级狗
要升级Gogs,需要执行几个手动步骤。
-
首先停止Gogs服务:
sudo systemctl stop gogs重命名Gogs安装目录。
sudo mv /home/git/gogs{, _old}下载最新的Gogs版本并将其移至
/home/git目录:VERSION=wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmpsudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git确保使用实际的Gogs发行版本更改
VERSION。使用以下rsync命令将
custom,data,log目录复制到提取的目录中:sudo rsync -a /home/git/gogs_old/{custom, data, log} /home/git/gogs/最后,启动Gogs服务:
sudo systemctl restart gogs
而已。
结论
本教程将指导您完成在Ubuntu 18.04上Gogs的安装和配置。 现在,您可以创建第一个项目并开始使用新的Gogs服务器。
Ubuntu的高格斯如何在Ubuntu Linux中安装最新的Firefox 3.6.6
Firefox 3.6.6具有浏览器防崩功能。下面介绍如何在Ubuntu Linux中轻松安装它。
如何在Ubuntu 18.04上添加交换空间
交换是物理RAM内存已满时使用的磁盘空间。 当Linux系统的RAM用完时,非活动页面将从RAM移动到交换空间。 本教程介绍了将交换文件添加到Ubuntu 18.04所需的步骤。
如何在Ubuntu Linux中更改root密码
本教程说明了如何临时更改root用户帐户,以及如何在Ubuntu系统上设置root密码。 root用户(或超级用户)是在所有类似Linux和Unix的系统上都存在的特殊用户帐户。







