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:3306, если вы используете MySQL или MariaDB, или 127.0.0.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:3306» для MySQL или «127.0.0.1:5432» для PostgreSQL. Также убедитесь, что сервер базы данных запущен, с помощью команды systemctl status mariadb или systemctl status postgresql.
Журналы:
По умолчанию Gogs хранит журналы в каталоге /home/git/gogs/log. Просмотрите эти журналы, чтобы выявить ошибки. Веб-журналы и журналы служб дают ценные сведения о возможных проблемах с разрешениями, конфигурацией или временем выполнения.
Поздравляем! Вы успешно установили Gogs. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт Gogs.