Установка Gitea на Ubuntu 18.04
Что такое Gitea
Gitea — это свободная и открытая система управления версиями, похожая на GitHub. Это лёгкий форк Gogs, написанный на Go и распространяемый по лицензии MIT. Коротко: простая, быстрая, масштабируемая альтернатива облачным git-сервисам с поддержкой нескольких СУБД, вики, встроенного реестра контейнеров, зеркалирования git, трекинга задач и пр.
Требования
- Сервер с Ubuntu 18.04.
- Статический IP-адрес, в примере 192.168.0.101.
- Некорневой пользователь с sudo-привилегиями.
Важно: используйте актуальные бэкапы перед изменением конфигураций баз данных и прав доступа.
Подготовка системы
Обновите списки пакетов и установите обновления:
sudo apt-get update -y
sudo apt-get upgrade -yУстановка необходимых пакетов
Установите MariaDB, git, wget и unzip:
sudo apt-get install mariadb-server wget unzip git -yЗапустите MariaDB и включите автозапуск:
sudo systemctl start mariadb
sudo systemctl enable mariadbНастройка MariaDB
Защитите установку MariaDB:
sudo mysql_secure_installationСледуйте подсказкам: задайте пароль root (если нужно), удалите анонимных пользователей, запретите удалённый вход для root, удалите тестовую базу и обновите таблицы привилегий.
Войдите в shell MariaDB:
mysql -u root -pСоздайте базу данных и пользователя для Gitea (подставьте безопасный пароль вместо ‘password’):
MariaDB [(none)]> SET GLOBAL innodb_file_per_table = ON;
MariaDB [(none)]> CREATE DATABASE giteadb;
MariaDB [(none)]> CREATE USER 'giteauser'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> GRANT ALL ON giteadb.* TO 'giteauser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
MariaDB [(none)]> ALTER DATABASE giteadb CHARACTER SET = utf8mb4 COLLATE utf8mb4_unicode_ci;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;Отредактируйте конфигурацию MariaDB для оптимальной работы с InnoDB:
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnfДобавьте в файл следующие строки:
innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_default_row_format = dynamicСохраните изменения и перезапустите сервис:
sudo systemctl restart mariadbВажно: если вы используете удалённый сервер БД или управляемую СУБД, настройку локальных файлов конфигурации MariaDB выполнять не нужно — вместо этого применяйте параметры провайдера.
Создание структуры для Gitea
Создайте системного пользователя gitea и каталоги:
sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/gitea gitea
sudo mkdir -p /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown gitea:gitea /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo chmod 770 /etc/giteaПроверяйте права и владельца — ошибки прав доступа часто приводят к проблемам с запуском и логированием.
Установка Gitea (бинарник)
В этом руководстве бинарник Gitea загружается напрямую с GitHub. В примере используется релиз v1.5.1 — замените ссылку на актуальную версию при установке:
wget https://github.com/go-gitea/gitea/releases/download/v1.5.1/gitea-1.5.1-linux-amd64
sudo mv gitea-1.5.1-linux-amd64 /usr/local/bin/gitea
sudo chmod +x /usr/local/bin/giteaСоздайте systemd-сервис для управления Gitea:
sudo nano /etc/systemd/system/gitea.serviceВставьте содержимое сервиса:
[Unit]
Description=Gitea
After=syslog.target
After=network.target
After=mysql.service
[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because of that
RestartSec=2s
Type=simple
User=gitea
Group=gitea
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=gitea HOME=/home/gitea GITEA_WORK_DIR=/var/lib/gitea
[Install]
WantedBy=multi-user.targetПерезагрузите systemd и запустите сервис:
sudo systemctl daemon-reload
sudo systemctl start giteaПроверьте статус:
sudo systemctl status giteaПример ожидаемого вывода указывает, что Gitea слушает на порту 3000 и запущен процесс web.
Доступ к веб-интерфейсу
Gitea по умолчанию слушает на порту 3000. Откройте в браузере:
http://192.168.0.101:3000/install
Вы увидите страницу установки, где нужно указать: параметры подключения к БД (giteadb, giteauser), базовый URL, имя пользователя, под которым будет работать сервис (run as username), логин администратора и путь до логов. Нажмите «Install Gitea» и дождитесь завершения.



После успешной установки вы попадёте на панель управления Gitea:

Поздравляем — Gitea установлена и доступна по веб-интерфейсу.
Чек-лист после установки
- Убедитесь, что systemd-сервис запущен и включён в автозапуск: sudo systemctl enable gitea
- Проверьте права на каталоги /var/lib/gitea и /etc/gitea
- Настройте резервное копирование каталога данных и базы данных
- Настройте SSL (рекомендуется) — см. раздел «Усиление безопасности» ниже
Усиление безопасности и рекомендации
- Развертывайте Gitea за обратным HTTPS-прокси (nginx или Caddy) и включайте HTTP->HTTPS редирект.
- Ограничьте доступ к MariaDB только локальными соединениями или настройте firewall.
- Используйте сильные пароли и, при возможности, двухфакторную аутентификацию для админов.
- Храните бэкапы конфигураций и репозиториев вне основного сервера.
Альтернативные подходы
- Развёртывание через Docker: официальный образ gitea/gitea упрощает изоляцию и миграцию.
- Пакеты/репозитории дистрибутива: по возможности используйте репозитории с поддержкой обновлений.
- Managed git-хостинг: если не хотите заниматься поддержкой, используйте облачные сервисы.
Когда это не подходит: если вам нужна высокая доступность и масштабирование на уровне нескольких узлов с общей СХД и балансировкой, стоит рассмотреть более сложные архитектуры с репликацией и кластеризацией.
Частые неполадки и способы их устранения
- Подключение к БД не устанавливается: проверьте credentials в /etc/gitea/app.ini, права пользователя БД и наличие привилегий, а также что MariaDB слушает на нужном сокете/порту.
- Порт 3000 занят: либо остановите процесс, занимающий порт, либо укажите другой порт в конфигурации или используйте обратный прокси.
- Ошибки прав доступа к файлам/логам: проверьте владельца и права (
chown/chmod) для /var/lib/gitea и /etc/gitea. - HTTP 500 при большом репозитории: в systemd-сервисе можно изменить параметры окружения и увеличить лимиты; также убедитесь в настройках InnoDB (см. выше).
Рольные чек-листы
Администратор сервера:
- Проверить системные требования и обновления OS.
- Установить MariaDB и обеспечить резервное копирование.
- Настроить firewall и SSL.
- Настроить логирование и мониторинг.
Разработчик/пользователь Gitea:
- Создать учётную запись и проект.
- Настроить SSH-ключи для доступа к репозиторию.
- Настроить CI/CD интеграции при необходимости.
Краткая методология установки (быстрая последовательность)
- Обновить систему. 2. Установить MariaDB и необходимые пакеты. 3. Защитить MariaDB, создать БД и пользователя. 4. Создать системного пользователя gitea и каталоги. 5. Загрузить бинарник Gitea, установить права. 6. Создать systemd-сервис и запустить. 7. Завершить установку через веб-интерфейс.
Маленький словарь
- БД — база данных.
- Systemd — менеджер системных сервисов в большинстве современных дистрибутивов Linux.
- Reverse proxy — обратный прокси (nginx/Caddy) для TLS/HTTPS и маршрутизации.
Критерии приёмки
- Gitea успешно запускается как сервис systemd и слушает порт 3000.
- Веб-интерфейс установки доступен по базовому URL и позволяет завершить конфигурацию.
- Пользователь gitea имеет права на каталоги данных и логов.
- Резервное копирование данных и БД настроено.
Итог
Вы установили Gitea на Ubuntu 18.04, настроили MariaDB, создали сервис systemd и завершили первоначальную настройку через веб-интерфейс. Для продакшен-развёртывания обязательно добавьте HTTPS, мониторинг и регулярные бэкапы.
Важно: регулярно проверяйте наличие обновлений Gitea и сопутствующих компонентов и тестируйте обновления в отдельной среде перед введением в эксплуатацию.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента