Як встановити Gogs на Ubuntu

Gogs – це самодостатній Git-сервіс, який пропонує легкий і ефективний спосіб управління репозиторіями. Якщо вам потрібне просте, але потужне рішення для розміщення Git-репозиторіїв усередині компанії, Gogs – чудовий вибір. Незалежно від того, чи є ви розробником-одинаком або частиною команди, Gogs допоможе вам контролювати ваш код та інфраструктуру під вашим власним управлінням. Цей повний посібник проведе вас через кожен крок, починаючи з попередніх умов і оновлення системи та закінчуючи остаточним налаштуванням, що дасть вам змогу впевнено налаштувати й запустити Gogs. До кінця цього посібника у вас буде повністю функціональне середовище Gogs на Ubuntu 24.04.

Вступ

Gogs – це платформа з відкритим вихідним кодом, яка дозволяє розробникам розміщувати Git-репозиторії на власних серверах. Вона створена для легкого використання і пишається своїми мінімальними системними вимогами. Якщо ви шукаєте простий спосіб запуску репозиторіїв Git у безпечному середовищі, не вдаючись до послуг зовнішнього хостингу, Gogs – чудовий варіант. Компактні розміри дають йому змогу ефективно працювати навіть на обмежених апаратних ресурсах, що робить його популярним для стартапів, персональних проєктів і невеликих організацій, які прагнуть мінімізації витрат.

Системні вимоги:

Перш ніж почати, переконайтеся, що у вас є сервер Ubuntu 24.04 з достатніми системними ресурсами. Стандартної конфігурації, як-от одноядерний процесор і 512 МБ оперативної пам’яті, зазвичай достатньо для невеликих розгортань; однак для більш складних систем або великих команд може знадобитися більше ресурсів. Репозиторії Ubuntu 24.04 нададуть необхідні пакети та залежності. Для виконання адміністративних команд необхідно мати привілеї sudo або прямий root-доступ. Крім того, наявність чинного доменного імені, хоча й необов’язкова, може спростити віддалений доступ до вашої інсталяції Gogs.

Програмні залежності:

Gogs підтримує різні бази даних, зокрема MySQL (або MariaDB), PostgreSQL і SQLite. Якщо ви плануєте зберігати велику кількість репозиторіїв або очікуєте на часте читання і запис даних, вам варто звернути увагу на MySQL або PostgreSQL. SQLite може підійти для невеликих систем, але в довгостроковій перспективі може виявитися не настільки масштабованою. Вам також знадобиться встановлений Git, оскільки Gogs покладається на функції Git для управління репозиторіями. Крім того, переконайтеся, що основні пакети, такі як curl, wget і tar, доступні для завантаження та вилучення необхідних файлів. У цьому посібнику ми розглянемо основні кроки з підготовки середовища та встановлення всіх необхідних інструментів.

Оновіть системні пакети:

Перед встановленням Gogs оновіть систему Ubuntu 24.04, щоб переконатися, що в ній встановлені останні патчі безпеки та версії програмного забезпечення. Відкрийте термінал і виконайте команду:

sudo apt update && sudo apt upgrade -y

Ця команда оновлює інформацію в репозиторії пакетів і автоматично встановлює доступні оновлення. Оновлення системи знижує ймовірність виникнення конфліктів у процесі встановлення Gogs. Після завершення оновлення перезавантажте сервер, якщо з’явиться відповідний запит.

Домен і брандмауер:

Якщо у вас є доменне ім’я, ви можете налаштувати DNS так, щоб він вказував на IP-адресу вашого сервера. Хоча це і необов’язково, це може зробити ваш екземпляр Gogs більш доступним через запам’ятовувану адресу. Крім того, перевірте налаштування брандмауера, щоб переконатися, що порт 3000 (порт Gogs за замовчуванням) відкритий. Якщо ви використовуєте Uncomplicated Firewall (ufw), ви можете запустити:

sudo ufw allow 3000/tcp

Ця команда дозволяє вхідний трафік на порт 3000, роблячи Gogs доступним із зовнішніх місць. Для виробничих установок ви також можете використовувати зворотний проксі-сервер, наприклад Nginx або Apache, на портах 80 і 443, який буде переспрямовувати трафік на Gogs всередині системи.

Налаштування сервера бази даних:

Після того як ви вирішите, яку базу даних ви будете використовувати, встановіть її. Для MariaDB або MySQL ви можете запустити:

sudo apt install mariadb-server -y sudo systemctl enable mariadb sudo systemctl start mariadb

Потім створіть нову базу даних і користувача для Gogs. Зайдіть в оболонку MariaDB або MySQL за допомогою sudo mysql і введіть необхідні команди для встановлення привілеїв. Якщо ви вибрали PostgreSQL, встановіть і налаштуйте його аналогічним чином.

Процес встановлення Gogs

Створення виділеного користувача Git:

Доброю практикою є створення виділеного системного користувача для запуску Gogs, що підвищує безпеку і забезпечує обмежений доступ до важливих областей вашого сервера. Використовуйте такі команди:

sudo adduser --system --group --disabled-password --shell /bin/bash git

Ця команда створює системний обліковий запис з ім’ям «git», який може бути налаштований відповідно до ваших уподобань. За замовчуванням він не має пароля, що зводить до мінімуму можливість несанкціонованого входу в систему. Ви також можете створити структуру каталогів для Gogs в каталозі /home/git або за іншим відповідним шляхом. Наприклад:

sudo mkdir -p /home/git/gogs sudo chown -R git:git /home/git/gogs

Завантаження Gogs:

Gogs зазвичай встановлюється шляхом завантаження бінарного файлу з офіційного сайту або з сайту релізів GitHub. Щоб знайти останній 64-бітний реліз Linux, перейдіть на сторінку релізів Gogs. Потім використовуйте wget або curl для отримання двійкового файлу:

cd /tmp wget https://dl.gogs.io/gogs/latest/gogs_linux_amd64.tar.gz

Замініть latest або ім’я файлу на потрібну вам версію. Потім розпакуйте файл у каталог /home/git/gogs:

tar -xzf gogs_linux_amd64.tar.gz sudo mv gogs /home/git/gogs sudo chown -R git:git /home/git/gogs

Цей процес поміщає всі файли Gogs в /home/git/gogs, забезпечуючи управління ними виділеним користувачем «git». Відокремлюючи файли від решти системи, ви додаєте рівень захисту і покращуєте організацію вашої інсталяції.

Початкові дозволи на каталоги та файли:

Переконайтеся, що всі файли Gogs мають відповідного власника та групу, щоб Gogs міг працювати без помилок із правами доступу до файлів. Якщо ви ще не зробили цього, підтвердіть дозволи за допомогою:

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

Це гарантує, що користувач «git» збереже право власності. Дозволи є частим джерелом проблем, тому їхня перевірка зараз може заощадити час на усунення неполадок надалі.

Налаштування конфігурації

Конфігурація служби:

Хоча ви можете запустити Gogs вручну за допомогою веб-команди ./gogs в каталозі Gogs, налаштування служби systemd забезпечує більш надійне налаштування. Створіть файл gogs.service у каталозі /etc/systemd/system:

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

Вставте такий вміст:

Description=Gogs - Self-hosted Git Service
After=syslog.target
After=network.target

[Service]
Type=simple
User=git
Group=git
WorkingDirectory=/home/git/gogs
ExecStart=/home/git/gogs/gogs web
Restart=always
Environment=USER=git HOME=/home/git

[Install]
WantedBy=multi-user.target

Збережіть і закрийте файл, а потім перезавантажте systemd:

sudo systemctl daemon-reload sudo systemctl enable gogs sudo systemctl start gogs

Перевірте стан Gogs за допомогою systemctl status gogs. Якщо все налаштовано правильно, ви повинні побачити активний і працюючий статус.

Конфігурація бази даних:

Як тільки Gogs буде запущено, ви налаштуєте підключення до бази даних під час початкового веб-налаштування. Якщо ви використовуєте MariaDB, переконайтеся, що у вас є виділений користувач і база даних для Gogs. Наприклад, створіть користувача з ім’ям «gogsuser» і базу даних з ім’ям «gogsdb», а потім надайте необхідні привілеї. Це особливо важливо для забезпечення безпеки та запобігання втручанню інших служб у роботу екземпляра Gogs.

Налаштування веб-інтерфейсу

Доступ до веб-інсталятора Gogs:

Коли Gogs запущено як системну службу, відкрийте веб-браузер і перейдіть за адресою http://your-server-ip:3000. Якщо ви налаштували домен, ви можете відвідати http://your-domain:3000. Gogs відкриє майстер налаштування, який запропонує вам ввести основні параметри конфігурації.

Основні налаштування:

Ви побачите поля для введення імені додатка, шляху до кореня репозиторію та інші. Підтвердіть або змініть їх на свій розсуд. У полі Database Settings виберіть тип бази даних (MySQL, PostgreSQL або SQLite) і введіть ім’я бази даних, користувача і пароль. У полі «Хост бази даних» за замовчуванням часто вказується 127.0.0.1.1:3306, якщо ви використовуєте MySQL або MariaDB, або 127.0.0.1.1:5432 для PostgreSQL.

Створення облікового запису адміністратора:

Прокрутіть униз до розділу «Налаштування облікового запису адміністратора». Введіть ім’я користувача, пароль та електронну пошту для адміністративного користувача. Цей користувач зможе створювати репозиторії, запрошувати користувачів і виконувати інші адміністративні завдання, наприклад, керувати конфігурацією системи. Після підтвердження налаштувань натисніть «Встановити Gogs» або «Створити обліковий запис адміністратора». Gogs завершить установку, ініціалізуючи таблиці бази даних і ваш обліковий запис адміністратора. Після успішного завершення ви будете перенаправлені на сторінку входу в Gogs.

Міркування безпеки

Захист установки Gogs дуже важливий для захисту вашого коду. По-перше, переконайтеся, що користувач «git» має мінімальні системні права. Уникайте запуску Gogs під обліковим записом привілейованого користувача. Далі переконайтеся, що брандмауер дозволяє тільки необхідний трафік. Якщо ви встановили зворотний проксі, обмежте зовнішній доступ до портів, які вам не потрібні у відкритому доступі.

Завжди використовуйте надійні, унікальні паролі для облікового запису адміністратора та інших створених вами облікових записів користувачів. Увімкніть HTTPS-з’єднання, якщо ви плануєте виводити Gogs в інтернет, отримавши SSL-сертифікат для свого домену. Такі інструменти, як Let’s Encrypt, мінімізують зусилля з налаштування безпечного середовища. Регулярно оновлюйте Gogs і базові пакети, щоб усунути всі відомі вразливості в системі безпеки.

Кроки після встановлення

Після успішного налаштування Gogs необхідно переконатися, що все працює. Перезапустіть Gogs:

sudo systemctl restart gogs

Знову зайдіть в інтерфейс Gogs, щоб переконатися, що всі налаштування залишилися недоторканими. Спробуйте створити тестовий репозиторій для підтвердження роботи. Налаштуйте автоматичний запуск Gogs під час завантаження системи, якщо ви використовували опцію enable, це вже зроблено systemd. Постійно оновлюйте систему, особливо коли виходять нові версії Gogs. Ви можете легко оновитися, завантаживши останній бінарник і встановивши його на місце. Після виконання цих завдань ваше середовище Gogs готове до роботи над реальними проєктами.

Поради щодо усунення неполадок

Незважаючи на ретельну підготовку, ви можете зіткнутися з проблемами під час встановлення та роботи Gogs. Нижче наведено деякі поширені сценарії та кроки з усунення неполадок:

Відмова в дозволі або помилки доступу до файлів:

Двічі перевірте, що каталоги та файли в каталозі /home/git/gogs належать користувачеві та групі «git». Використовуйте ls -l для списку прав власності та chown -R git:git /home/git/gogs, якщо необхідно.

Конфлікти портів:

Якщо ви не можете отримати доступ до інтерфейсу Gogs, переконайтеся, що жодна інша служба не використовує порт 3000. Пошукайте помилки в журналах Gogs або використовуйте sudo lsof -i :3000, щоб побачити, який процес прив’язаний до цього порту. За необхідності переналаштуйте Gogs або конфліктуючий сервіс на використання іншого порту.

Збої в підключенні до бази даних:

Якщо майстер установки не може підключитися, переконайтеся, що ви ввели правильне ім’я хоста, ім’я користувача та пароль. Якщо сервер бази даних розташований на тій самій машині, стандартними є «127.0.0.1.1:3306» для MySQL або «127.0.0.1.1:5432» для PostgreSQL. Також переконайтеся, що сервер бази даних запущено, за допомогою команди systemctl status mariadb або systemctl status postgresql.

Журнали:

За замовчуванням Gogs зберігає журнали в каталозі /home/git/gogs/gogs/log. Перегляньте ці журнали, щоб виявити помилки. Веб-журнали та журнали служб дають цінні відомості про можливі проблеми з дозволами, конфігурацією або часом виконання.

Вітаємо! Ви успішно встановили Gogs. Для отримання додаткової допомоги або корисної інформації ми рекомендуємо вам відвідати офіційний  сайт Gogs.

Поділіться своєю любов'ю

Залишити відповідь

0 комментариев
Новіші
Старіші Найпопулярніші
Вбудовані Відгуки
Переглянути всі коментарі
0
Ми любимо ваші думки, будь ласка, прокоментуйте.x