Как установить и настроить Gogs в Ubuntu 18.04

How To Install and Configure Gogs on Ubuntu 18.04

2 Марта 2021 | Ubuntu

В этом руководстве описаны шаги по установке и настройке Gogs в Ubuntu 18.04. Те же инструкции применимы для Ubuntu 16.04 и любого другого дистрибутива на основе Ubuntu.

Как установить и настроить Gogs в Ubuntu 18.04

Gogs - это автономный git-сервер с открытым исходным кодом, написанный на Go. Он включает в себя редактор файлов репозитория, отслеживание проблем проекта и встроенную вики.

Gogs - это легкое приложение, которое можно установить на маломощные системы. Если вы ищете альтернативу Gitlab с гораздо меньшим объемом памяти, и вам не нужны все навороты, которые предлагает Gitlab, вам обязательно стоит попробовать Gogs.
 

Прежде чем вы начнете

Gogs может использовать базу данных SQLite, PostgreSQL или MySQL / MariaDB для хранения всех своих данных.

В этом руководстве мы будем использовать SQLite в качестве выбранной базы данных. Если SQLite не установлен в вашей системе, вы можете установить его, набрав:
 

sudo apt install sqlite3 


Для дополнительного уровня безопасности рекомендуется установить базовый брандмауэр. Вы можете выполнить действия, описанные в нашем руководстве « Как настроить брандмауэр с UFW в Ubuntu 18.04» .
 

Установка Gogs

Мы будем устанавливать Gogs из двоичного файла. Установка - довольно простой процесс.
 

Установить Git

Первый шаг - установить Git на ваш сервер. Для этого обновите индекс локального пакета и установите пакет git, выполнив следующие команды от имени пользователя sudo :
 

sudo apt update sudo apt install git 


Проверьте установку, отобразив версию Git:
 

git --version 
git version 2.17.1
 


Создать пользователя 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 переменную в приведенной ниже команде.

Загрузите архив Gogs в /tmp каталог, используя следующую команду wget :
 

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 


Создайте файл модуля systemd

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
 


Установите Gogs с помощью веб-установщика

Теперь, когда Gogs загружен и запущен, пора завершить установку через веб-интерфейс.

Откройте браузер, введите текст, http://YOUR_DOMAIN_IR_IP:3000 и появится экран, подобный следующему:
 


 

Настройки базы данных:

  • Тип базы данных: SQLite3
  • Путь: используйте абсолютный путь, /home/git/gogs/gogs.db


Общие настройки приложения

  • Название приложения: введите название вашей организации.
  • Корневой путь репозитория: оставьте значение по умолчанию /home/git/gogs-repositories
  • Пользователь запуска: git
  • Домен: введите IP-адрес вашего домена или сервера.
  • Порт SSH: 22, измените его, если SSH прослушивает другой порт
  • HTTP-порт: 3000
  • URL-адрес приложения: используйте http и IP-адрес вашего домена или сервера.
  • Путь к журналу: оставьте значение по умолчанию /home/git/gogs/log

Позже вы можете изменить настройки, отредактировав файл конфигурации Gogs.

После этого нажмите кнопку «Установить Gogs». Установка выполняется мгновенно, и после ее завершения вы будете перенаправлены на страницу входа.

Щелкните ссылку «Зарегистрироваться сейчас».
 


 

Первый зарегистрированный пользователь автоматически добавляется в группу администраторов.

Вот и все. Gogs установлен на вашем компьютере с Ubuntu.
 

Настройка Nginx в качестве прокси завершения SSL

Этот шаг не является обязательным, но настоятельно рекомендуется. Чтобы использовать Nginx в качестве обратного прокси-сервера, вам необходимо иметь домен или поддомен, указывающий на общедоступный IP-адрес вашего сервера. В этом уроке мы будем использовать gogs.example.com .

Сначала установите Nginx и сгенерируйте бесплатный SSL-сертификат Let's Encrypt, следуя приведенным ниже инструкциям:
 


После этого откройте текстовый редактор и отредактируйте файл блока сервера домена :
 

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.example.com своим доменом Gogs и указать правильный путь к файлам сертификатов 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
 
[server]
DOMAIN           = gogs.example.com
ROOT_URL         = https://gogs.example.com/
 


Перезапустите сервис Gogs, набрав:
 

sudo systemctl restart gogs 


На этом этапе Gogs настроен, и вы можете получить к нему доступ по адресу: https://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
 
[mailer]
ENABLED = true
HOST    = SMTP_SERVER:SMTP_PORT
FROM    = SENDER_EMAIL
USER    = SMTP_USER
PASSWD  = YOUR_SMTP_PASSWORD
 


Убедитесь, что вы указали правильную информацию о SMTP-сервере.

Перезапустите сервис Gogs, чтобы изменения вступили в силу:
 

sudo systemctl restart gogs 


Gogs также позволяет вам подключаться к Slack, создавая веб-перехватчик и отправляя уведомления на ваши каналы Slack .
 

Обновление Gogs

Чтобы обновить Gogs, необходимо выполнить несколько шагов вручную.

  1. Сначала остановите сервис Gogs:
     

    sudo systemctl stop gogs
     
    
  2. Переименуйте каталог установки Gogs.
     

    sudo mv /home/git/gogs{,_old}
     
    
  3. Загрузите последнюю версию Gogs и переместите ее в /home/git каталог:
     

    VERSION=<THE_LATEST_GOGS_VERSION> wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmp sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git 


    Убедитесь, что вы изменили VERSION актуальную версию Gogs.

  4. Копирование custom , data , log каталоги в извлеченной директории , используя следующую команду Rsync :
     

    sudo rsync -a /home/git/gogs_old/{custom,data,log,gogs.db} /home/git/gogs/
     
    
  5. Наконец, запустите сервис Gogs:
     

    sudo systemctl restart gogs 


Вот и все.

Вывод

В этом руководстве вы познакомились с установкой и настройкой Gogs в Ubuntu 18.04. Теперь вы можете создать свой первый проект и начать использовать новый сервер Gogs.


    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...