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

Установить Gogs на Ubuntu

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

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

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

Прежде чем начать

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 , и появится экран, подобный следующему:

Установка Gogs

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

  • Тип базы данных: 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

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

Вот и всё. 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

Далее нам нужно изменить домен и корневой URL Gogs. Для этого откройте файл конфигурации и отредактируйте следующие строки:

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

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

ubuntu git gogs

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *