云网牛站
所在位置:首页 > Linux云服务器 > 在Ubuntu 18.04/Ubuntu 16.04上安装Gogs的步骤

在Ubuntu 18.04/Ubuntu 16.04上安装Gogs的步骤

2019-01-13 21:15:14作者:戴进稿源:云网牛站

本文介绍在Ubuntu 18.04、Ubuntu 16.04服务器上安装Gogs自托管Git服务所需的所有步骤。Gogs具有出色的性能,而且非常轻便,它具有非常小的RAM和CPU利用率,具有1个CPU内核和256MB RAM的VPS足以使用Gogs服务。请按照以下步骤在Ubuntu 18.04/Ubuntu 16.04服务器上安装Gogs。

 

第1步:安装MariaDB数据库服务器

Gogs需要MariaDB数据库来存储数据,参考在Ubuntu 18.04系统上安装MariaDB 10.4的步骤

安装数据库服务器后,以root用户身份登录MariaDB控制台:

$ mysql -u root -p

在下面设置全局变量:

SET GLOBAL innodb_file_per_table = ON;

然后创建gogs数据库:

DROP DATABASE IF EXISTS gogs;

CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

创建专用数据库用户来管理gogs数据库:

$ mysql -u root -p

Enter password: 

Welcome to the MariaDB monitor.  Commands end with ; or \g.

Your MariaDB connection id is 47

Server version: 10.4.1-MariaDB-1:10.4.1+maria~bionic-log mariadb.org binary distribution

MariaDB [(none)]> GRANT ALL PRIVILEGES ON gogs.* TO 'gogs'@'localhost' IDENTIFIED BY "StrongPassword";

Query OK, 0 rows affected (0.002 sec)

MariaDB [(none)]> FLUSH PRIVILEGES;

Query OK, 0 rows affected (0.001 sec)

MariaDB [(none)]> \q

Bye

 

第2步:下载Gogs

Gogs下载页面:https://ywnz.com/linuxrj/3077.html,新版本是Gogs 0.11.79,在终端中下载:

sudo apt install wget

wget https://github.com/gogs/gogs/releases/download/v0.11.79/linux_amd64.tar.gz

解压缩下载的文件:

tar xvf linux_amd64.tar.gz

rm -f linux_amd64.tar.gz

 

第3步:配置Gogs自托管Git服务

创建git用户来运行gogs服务:

$ sudo adduser git

Adding user `git' ...

Adding new group `git' (1001) ...

Adding new user `git' (1001) with group `git' ...

Creating home directory `/home/git' ...

Copying files from `/etc/skel' ...

Enter new UNIX password: 

Retype new UNIX password: 

passwd: password updated successfully

Changing the user information for git

Enter the new value, or press ENTER for the default

Full Name []: 

Room Number []: 

Work Phone []: 

Home Phone []: 

Other []: 

Is the information correct? [Y/n] y

创建日志目录:

sudo mkdir /var/log/gogs

sudo chown -R git:git /var/log/gogs/

将gogs systemd服务文件复制到/etc/systemd/system目录:

sudo cp gogs/scripts/systemd/gogs.service /etc/systemd/system

编辑文件以设置正确的变量:

sudo vim /etc/systemd/system/gogs.service

编辑如下:

[Unit]

Description=Gogs self-hosted Git service

After=syslog.target

After=network.target

After=mysql.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

ExecStart=/home/git/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

如果使用端口3000具有不同的服务,则可以设置自定义端口,比如:

ExecStart=/home/git/gogs web -port 3001

复制/home/gogs中的gogs目录内容:

sudo rsync -avz gogs/* /home/git/

将/home/git/的所有权更改为user.git:

sudo chown -R git:git /home/git/

重新加载systemd并启动gogs服务:

sudo systemctl daemon-reload

sudo systemctl start gogs

启用服务以在启动时启动:

sudo systemctl enable gogs

可以通过运行以下命令来检查服务状态:

sudo systemctl status gogs

在终端上输入命令gogs作为git用户应该打印帮助页面。

$ ./gogs

NAME:

Gogs - A painless self-hosted Git service

USAGE:

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

VERSION:

0.11.79

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自托管Git服务

输入地址如http://serverip:3000/instal(替换成自己的地址)以完成Gogs的安装。

1、设置数据库认证

在Ubuntu 18.04/Ubuntu 16.04上安装Gogs的步骤

提供的用户名和密码应与数据库配置部分中提供的用户名和密码相匹配,如果数据库服务器位于其他主机上,请在主机部分下提供IP地址。

2、设置应用程序常规设置

提供应用程序URL,这可以是可路由的服务器IP地址或解析为IP的域名,应该为SSH设置相同的内容:

在Ubuntu 18.04/Ubuntu 16.04上安装Gogs的步骤

3、禁用用户自行注册

可以在服务器和其他服务设置下禁用用户自行注册,这意味着管理员用户将手动创建用户帐户:

在Ubuntu 18.04/Ubuntu 16.04上安装Gogs的步骤

可以选择创建管理员用户帐户,默认情况下,root用户将自动获得管理员权限:

在Ubuntu 18.04/Ubuntu 16.04上安装Gogs的步骤

完成配置后,单击安装Gogs按钮完成安装,成功安装后,你应该登录Gogs管理控制台进行必要的调整了。

4、创建其他用户帐户

要添加用户帐户,请打开右上方面板上的管理面板:

在Ubuntu 18.04/Ubuntu 16.04上安装Gogs的步骤

然后使用创建新帐户链接向Gogs添加新用户:

在Ubuntu 18.04/Ubuntu 16.04上安装Gogs的步骤

 

第5步:测试Gogs自托管Git服务

创建一个名为test-repo的新存储库。

尝试cloning the repo:

$ git clone http://192.168.18.40:3000/jmutai/test-repo.git

Cloning into 'test-repo'...

Username for 'http://192.168.18.40:3000': jmutai

Password for 'http://jmutai@192.168.18.40:3000': <Enter Password>

remote: Counting objects: 4, done.

remote: Compressing objects: 100% (3/3), done.

remote: Total 4 (delta 0), reused 0 (delta 0)

Unpacking objects: 100% (4/4), done.

要避免密码身份验证,请在配置文件> SSH密钥>添加密钥下添加SSH公钥:

在Ubuntu 18.04/Ubuntu 16.04上安装Gogs的步骤

提供密钥名称,并将SSH公钥粘贴到内容框中:

在Ubuntu 18.04/Ubuntu 16.04上安装Gogs的步骤

ssh git clone应该不要求输入密码:

$ git clone git@192.168.18.40:jmutai/test-repo.git

Cloning into 'test-repo'...

Warning: Permanently added '192.168.18.40' (ECDSA) to the list of known hosts.

remote: Counting objects: 4, done.

remote: Compressing objects: 100% (3/3), done.

remote: Total 4 (delta 0), reused 0 (delta 0)

Receiving objects: 100% (4/4), done.

 

第6步:配置Nginx反向代理(可选步骤)

如果想使用没有端口的域名访问Gogs,则需要配置Apache或NGINX反向代理:

sudo apt install nginx

创建VirtualHost反向代理配置文件

sudo vim /etc/nginx/conf.d/gogs.conf

增加以下代码:

server {

listen 80;

server_name git.example.com;

location / {

proxy_pass http://localhost:3000;

}

}

如果使用SSL并希望将http发送到https重定向,请使用:

server {

listen 80;

server_name  git.example.com;

location / {

rewrite     ^ https://git.example.com$request_uri? permanent;

}

}

server {

listen       443 ssl;

ssl_certificate /etc/letsencrypt/live/git.example.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/git.example.com/privkey.pem;

server_name git.example.com;

location / {

proxy_pass http://localhost:3000;

}

}

请务必将git.example.com替换为你的实际域名,到这里,配置Nginx反向代理就完成了。

 

相关主题

阿里云服务器CentOS 7 Docker中部署使用gogs搭建git服务器

精选文章
热门文章