Gogs — это автономный git-сервер с открытым исходным кодом, написанный на Go. Он включает редактор файлов репозитория, систему отслеживания проблем проекта и встроенную вики.
Gogs — это легкое приложение, которое можно установить на маломощные системы. Если вы ищете альтернативу Gitlab с гораздо меньшим объемом памяти, и вам не нужны все навороты, которые предлагает 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
и появится экран, подобный следующему:
Настройки базы данных:
- Тип базы данных: SQLite3
- Путь: используйте абсолютный путь,
/home/git/gogs/gogs.db
Общие настройки приложения
- Название приложения: введите название вашей организации.
- Корневой путь репозитория: оставьте значение по умолчанию
/home/git/gogs-repositories
- Запуск пользователя: git
- Домен: введите IP-адрес вашего домена или сервера.
- Порт SSH: 22, измените его, если SSH прослушивает другой порт
- Порт HTTP: 3000
- URL-адрес приложения: используйте http и IP-адрес вашего домена или сервера.
- Путь к
/home/git/gogs/log
: оставьте значение по умолчанию/home/git/gogs/log
После этого нажмите кнопку «Установить Gogs». Установка выполняется мгновенно, и после ее завершения вы будете перенаправлены на страницу входа.
Щелкните ссылку «Зарегистрироваться сейчас».
Первый зарегистрированный пользователь автоматически добавляется в группу администратора.
Вот и все. Gogs был установлен на вашем компьютере с Ubuntu.
Настройка Nginx в качестве прокси завершения SSL
Этот шаг не является обязательным, но настоятельно рекомендуется. Чтобы использовать Nginx в качестве обратного прокси, вам необходимо иметь домен или поддомен, указывающий на общедоступный IP-адрес вашего сервера. В этом руководстве мы будем использовать gogs.example.com
.
Сначала установите Nginx и сгенерируйте бесплатный SSL-сертификат Let's Encrypt, следуя приведенным ниже инструкциям:
После этого откройте текстовый редактор и отредактируйте файл блока сервера домена:
sudo nano /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;
}
}
Перезапустите службу Nginx, чтобы изменения вступили в силу:
sudo systemctl restart nginx
Затем нам нужно изменить домен Gogs и корневой URL. Для этого откройте файл конфигурации и отредактируйте следующие строки:
sudo nano /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
[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, необходимо выполнить несколько шагов вручную.
-
Сначала остановите сервис Gogs:
sudo systemctl stop gogs
-
Переименуйте каталог установки Gogs.
sudo mv /home/git/gogs{,_old}
-
Загрузите последнюю версию 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. -
Скопируйте каталоги
custom
,data
,log
в извлеченный каталог с помощью следующей команды rsync :sudo rsync -a /home/git/gogs_old/{custom,data,log,gogs.db} /home/git/gogs/
-
Наконец, запустите сервис Gogs:
sudo systemctl restart gogs
Вот и все.
Выводы
В этом руководстве вы познакомились с установкой и настройкой Gogs в Ubuntu 18.04. Теперь вы можете создать свой первый проект и начать использовать новый сервер Gogs.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.