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

12 set 2022 5 min di lettura
Как установить и настроить Gogs на Ubuntu 18.04 LTS
Indice dei contenuti

Введение

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

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

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

Если вы намерены установить Gogs на удаленный сервер, продолжайте чтение, в противном случае пропустите первый абзац «Подключение к серверу» и прочитайте следующий.

Подключение к серверу

Чтобы получить доступ к серверу, вам нужно знать IP-адрес. Вам также потребуется ваше имя пользователя и пароль для аутентификации. Чтобы подключиться к серверу как root, введите следующую команду:

ssh root@IP_DEL_SERVER

Далее вам нужно будет ввести пароль пользователя root.

Если вы не используете пользователя root, вы можете войти под другим именем пользователя с помощью той же команды, а затем изменить root на свое имя пользователя:

ssh nome_utente@IP_DEL_SERVER

Затем вам будет предложено ввести пароль пользователя.

Стандартный порт для подключения по ssh — 22, если ваш сервер использует другой порт, вам нужно будет указать его с помощью параметра -p, затем введите следующую команду:

ssh nome_utente@IP_DEL_SERVER -p PORTA

До начала

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

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

sudo apt install sqlite3

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

Установить Гит

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

Первый шаг — установить 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.91, если доступна новая версия, измените переменную VERSION в следующей команде.

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

VERSION=0.11.91
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

Убедитесь, что служба запущена правильно:

sudo systemctl status gogs

Вы должны увидеть выходное сообщение, подобное следующему:

● gogs.service - Gogs
 Loaded: loaded (/etc/systemd/system/gogs.service; enabled; vendor preset: enabled)
 Active: active (running) since Thu 2020-01-09 20:00:24 CET; 6s ago
 Main PID: 18347 (gogs)
 Tasks: 7 (limit: 2298)
 CGroup: /system.slice/gogs.service
 └─18347 /home/git/gogs/gogs web...

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

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

Откройте браузер, введите http://TUO_DOMINIO_O_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 был установлен на вашем компьютере с Ubuntu.

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

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

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

После этого откройте текстовый редактор и отредактируйте файл блока сервера домена (Server Blocks — Virtual Hosts):

sudo nano /etc/nginx/sites-enabled/example.com


server {

 root /var/www/example.com/public_html;

 index index.html;

 server_name example.com www.example.com;

 access_log /var/log/nginx/example.com.access.log;
 error_log /var/log/nginx/example.com.error.log;

 location /{
 proxy_redirect off;
 proxy_pass http://127.0.0.1:3000;
 }

 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;


 listen [::]:443 ssl ipv6only=on; # managed by Certbot
 listen 443 ssl; # managed by Certbot
 ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
 include /etc/letsencrypt/options-ssl-nginx.conf;
 ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;



 }
 server {
 if ($host = www.example.com) {
 return 301 https://$host$request_uri;
 }


 if ($host = example.com) {
 return 301 https://$host$request_uri;
 }


 listen 80;
 listen [::]:80;

 server_name example.com www.example.com;
 return 404; # managed by Certbot

 }


Не забудьте заменить example.com своим доменом Gogs и указать правильный путь для файлов SSL-сертификата. Все HTTP-запросы будут перенаправлены на HTTPS.

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

sudo systemctl restart nginx

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

sudo nano /home/git/gogs/custom/conf/app.ini

Введите ваше доменное имя:

[server]
 DOMAIN = example.com
 ROOT_URL = https://example.com/

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

sudo systemctl restart gogs

На данный момент Gogs настроен, и вы можете получить к нему доступ по HTTPS: https://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:

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} /home/git/gogs/

Наконец, запустите службу Gogs:

sudo systemctl restart gogs

Это все.

Вывод

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

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.