Gitea: установка и примеры использования

    Команда Simple-Server
    03.06.2026
    17 мин

    Материал подготовлен командой Simple-Server для администраторов VPS и выделенных серверов. Команды и пути проверяйте на тестовой машине перед production.

    Альтернативы и в каких случаях стоит выбирать Gitea

    Выбор подходящей системы управления версиями зависит от конкретных потребностей проекта или организации. Gitea выделяется среди подобных систем благодаря своей лёгкости и минимальным требованиям к ресурсам, что делает её идеальной для малых команд или индивидуальных разработчиков, которым нужен простой и эффективный инструмент без сложной инфраструктуры.

    В отличие от GitHub, который является популярной коммерческой платформой, Gitea предоставляет возможность полного контроля над вашими данными, поскольку её можно развернуть в собственной инфраструктуре. Это может быть критически важно для организаций, требующих строгого соблюдения политик конфиденциальности и безопасности.

    GitLab, хотя и предлагает обширные возможности для CI/CD, требует значительно больше ресурсов для своего функционирования и имеет сложную структуру, что может оказаться излишним для небольших проектов. Более того, не все функции GitLab доступны в бесплатной версии, что также может повлиять на выбор в пользу более доступных решений.

    Таким образом, если ваша цель — обеспечить лёгкость управления, минимизировать затраты на инфраструктуру и удерживать полный контроль над системой и данными, Gitea представляет собой прекрасный выбор.

    Перед установкой на сервере выполним ряд подготовительных действий. В качестве примера мы будем использовать Ubuntu 22.04, но стоит отметить, что процесс установки в других дистрибутивах Linux отличается не сильно.

    Создание облачного сервера

    1. Перейдите в панель управления Simple-Server и нажмите на кнопку «Создать». Затем выберите опцию «Облачный сервер».

    2. Выберите Ubuntu 22.04 в качестве операционной системы.

    3. Выберите регион «Санкт-Петербург» и минимальную доступную конфигурацию сервера.

    4. В настройках сети оставьте настройки по умолчанию: внешний IP для IPv4 и отсутствие приватной сети.

    5. Для усиления надежности рассмотрите возможность активации сервиса бэкапов. Эта услуга может быть важна, если нужна дополнительная избыточность данных. разберём процесс создания резервных копий вручную, но полный бэкап сервера может быть полезен для обеспечения редундантность.

    6. Укажите SSH ключ, задайте имя сервера и завершите заказ, нажав на кнопку «Заказать».

    После создания сервера подключитесь к нему по SSH и выполните обновление системы с помощью следующих команд:

    Эти команды обновят систему до последних доступных версий пакетов.

    Перед тем как приступить к установке, необходимо подготовить базу данных, которая будет использоваться для хранения всей информации, связанной с системой управления версиями. Мы будем использовать MariaDB, популярную систему управления базами данных, известную своей производительностью и совместимостью с MySQL.

    Для начала установите MariaDB на ваш сервер командой:

    apt install mariadb-server

    Эта команда установит MariaDB вместе со всеми необходимыми зависимостями.

    Безопасная настройка MariaDB

    После установки выполните скрипт mysql_secure_installation, который поможет установить пароль для пользователя root, удалить анонимных пользователей, ограничить доступ к базе данных удаленно и удалить тестовую базу данных. Это улучшит безопасность вашего сервера баз данных:

    mysql_secure_installation

    Следуйте подсказкам на экране, чтобы завершить настройку.

    Создание пользователя и базы данных

    Затем войдите в консоль MariaDB и создайте пользователя и базу данных, которые будут использоваться системой:

    После входа выполните следующие команды:

    CREATE USER 'twgitea'@'%' IDENTIFIED BY 'secretpass';

    Эта команда создает нового пользователя для базы данных. Здесь 'twgitea'@'%' указывает имя пользователя и хост, с которого он может подключаться. Символ '%' означает, что пользователь может подключаться с любого хоста. Часть IDENTIFIED BY 'secretpass' устанавливает пароль для этого пользователя. Важно выбрать надежный и безопасный пароль.

    CREATE DATABASE giteadb CHARACTER SET 'utf8mb4' COLLATE 'utf8mb4_unicode_ci';

    Эта команда создает новую базу данных с именем giteadb. Здесь также указывается, что база данных будет использовать UTF-8 для хранения символов, что подходит для текстов на любом языке.

    GRANT ALL PRIVILEGES ON giteadb.* TO 'twgitea';

    Эта команда предоставляет пользователю twgitea все права на работу с базой данных giteadb. Это включает в себя права на чтение, запись и модификацию данных, что необходимо для полноценной работы приложения.

    Эта команда применяет все изменения привилегий, которые были сделаны. Она обновляет привилегии, чтобы новые настройки вступили в силу немедленно, без перезагрузки или переподключения к серверу. Для выхода из mysql нажмите сочетание клавиш CTRL+D.

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

    Загрузка и установка исполняемого файла

    Скачайте последнюю стабильную версию Gitea с официального сайта:

    wget -O gitea https://dl.gitea.io/gitea/1.21.10/gitea-1.21.10-linux-amd64

    Список всех доступных версий можно увидеть на сайте Gitea.

    Сделайте скачанный файл исполняемым:

    Проверка установленной версии Git

    Убедитесь, что на вашем сервере установлен Git, так как он необходим для работы Gitea:

    Создание системного пользователя: Создайте отдельного пользователя, под которым будет работать Gitea:

    adduser \ --system \ --shell /bin/bash \ --gecos 'Git Version Control' \ --group \ --disabled-password \ --home /home/git \ git

    Настройка структуры директорий

    Создайте необходимые директории для хранения данных, конфигураций и логов:

    mkdir -p /var/lib/gitea/{custom,data,log} chown -R git:git /var/lib/gitea/ chmod -R 750 /var/lib/gitea/ mkdir /etc/gitea chown root:git /etc/gitea chmod 770 /etc/gitea

    Настройка рабочей директории и копирование файла

    Установите переменную окружения для рабочей директории и скопируйте исполняемый файл в системный каталог:

    export GITEA_WORK_DIR=/var/lib/gitea/ cp gitea /usr/local/bin/gitea

    Создание и настройка сервиса для systemd

    Создайте сервисный файл для systemd, чтобы Gitea автоматически запускалась при старте системы:

    nano /etc/systemd/system/gitea.service

    Вставьте в окне редактора следующий конфигурационный файл:

    [Unit] Description=MyGitea After=network.target Wants=mariadb.service After=mariadb.service [Service] RestartSec=2s Type=simple User=git Group=git WorkingDirectory=/var/lib/gitea/ ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini Restart=always Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea [Install] WantedBy=multi-user.target

    Затем включите и запустите сервис:

    systemctl enable gitea systemctl start gitea

    Проверьте, что сервис запущен и работает корректно:

    Завершение установки через веб-интерфейс

    После того как вы запустили сервис и обратились к серверу по адресу ip:3000, вас встретит мастер установки. На этом этапе вам предстоит настроить связь с базой данных и Заказать VPS администратора.

    • В поле Database Type выберите MySQL , что соответствует типу вашей базы данных.

    • В поле Host оставьте значение по умолчанию.

    • Введите имя пользователя базы данных в поле Username — в вашем случае это twgitea.

    • Введите пароль, который вы задали при создании пользователя базы данных, в поле Password.

    • В поле Database Name укажите имя вашей базы данных, которое вы задали ранее, — giteadb.

    • В разделе General Settings вы можете оставить значения по умолчанию. Эти параметры включают настройки пути и базовых URL, которые можно будет изменить позже, если потребуется.

    • В разделе Administrator Account Settings необходимо Заказать VPS администратора, указав желаемое имя пользователя, пароль и контактный email. Этот аккаунт будет использоваться для входа в систему и управления Gitea.

    Настройка Nginx и SSL для вашего домена

    После установки, для обеспечения безопасности и корректной работы на собственном домене, рекомендуется настроить веб-сервер Nginx и установить SSL-сертификат. Это позволит защитить данные и обеспечить их шифрование при передаче через интернет.

    Установка и настройка Nginx

    Установите Nginx на вашем сервере:

    Создайте конфигурационный файл для вашего домена в Nginx:

    nano /etc/nginx/sites-available/twgitea.test.ru

    Вставьте следующую конфигурацию, заменив twgitea.twtest.ru на ваш домен:

    server { listen 80; server_name twgitea.test.ru; location / { client_max_body_size 512M; proxy_pass http://127.0.0.1:3000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always; } }

    Активируйте новую конфигурацию, создав символическую ссылку на неё в директории sites-enabled:

    sudo ln -s /etc/nginx/sites-available/twgitea.test.ru /etc/nginx/sites-enabled/

    Установка SSL сертификата с помощью Certbot

    Установите Certbot и его плагин для Nginx:

    apt install certbot python3-certbot-nginx

    Запустите Certbot для автоматической установки SSL-сертификата для вашего домена:

    certbot --non-interactive -m mail@example.com --agree-tos --no-eff-email --nginx -d twgitea.test.ru

    Эта команда выпустит и настроит SSL-сертификат, автоматически обновляя конфигурацию Nginx для использования HTTPS. В команде необходимо изменить значение mail@example.com, указав ваш email, и twgitea.test.ru, указав ваш домен.

    Перезапустите Nginx для применения изменений:

    sudo systemctl restart nginx

    Теперь сервис доступен по безопасному HTTPS-соединению на вашем домене.

    Дополнительно вы можете отредактировать файл конфигурации /etc/gitea/app.ini, чтобы настроить домен и уровень доступа. В сегменте [server] файла конфигурации измените значения SSH_DOMAIN, DOMAIN и ROOT_URL, указав вместо IP-адреса ваш домен. Это позволит корректно отображать ссылки в вашей системе управления версиями.

    В разделе [service] файла /etc/gitea/app.ini вы можете установить параметр DISABLE_REGISTRATION в значение true, чтобы запретить регистрацию новых пользователей. Это увеличит безопасность вашей системы, ограничив доступ только к выбранным пользователям.

    Для применения изменений необходимо перезапустить сервис командой:

    Безопасность и резервное копирование

    Чтобы обеспечить безопасность ваших данных, настроим файрвол на сервере и систему резервного копирования.

    Настройка брандмауэра UFW

    Для обеспечения безопасности вашего сервера важно правильно настроить брандмауэр. Используя ufw (Uncomplicated Firewall), вы можете легко управлять доступом к различным портам и услугам. Ниже приведены основные шаги по настройке ufw:

    Сброс текущих настроек брандмауэра:

    Запрет входящих соединений по умолчанию и разрешение исходящих:

    sudo ufw default deny incoming sudo ufw default allow outgoing

    Разрешение доступа к стандартным веб-портам и SSH:

    sudo ufw allow 80 sudo ufw allow 443 sudo ufw allow 22

    Запретим доступ к нашему git-серверу по ip:3000 для внешних подключений:

    sudo ufw allow from 127.0.0.1 to any port 3000 sudo ufw deny 3000

    Активация и проверка статуса брандмауэра:

    sudo ufw enable sudo ufw status

    Регулярное создание резервных копий — ключевой аспект поддержания данных в безопасности. Для Gitea процесс создания резервной копии может быть выполнен следующим образом:

    Переключитесь на пользователя, под которым работает Gitea:

    Перейдите в директорию, где будет создан бэкап (например, /home/git):

    Выполните команду для создания дампа данных:

    /usr/local/bin/gitea dump -c /etc/gitea/app.ini

    Эта команда создаст архив с резервной копией, который включает базу данных, конфигурационные файлы, репозитории и другие важные данные.

    Созданный архив будет содержать важные компоненты, такие как:

    • app.ini — файл конфигурации (если он был вне стандартной папки custom/),

    • custom/ — все настройки кастомных решений, если такие используются,

    • data/ — данные приложения, включая вложения и аватары,

    • repos/ — полная копия директории репозиториев,

    • gitea-db.sql — дамп базы данных,

    • log/ — различные логи, хотя они не обязательны для восстановления.

    app.ini — файл конфигурации (если он был вне стандартной папки custom/),

    custom/ — все настройки кастомных решений, если такие используются,

    data/ — данные приложения, включая вложения и аватары,

    repos/ — полная копия директории репозиториев,

    gitea-db.sql — дамп базы данных,

    log/ — различные логи, хотя они не обязательны для восстановления.

    Восстановление из резервной копии

    Для восстановления данных из резервной копии выполните следующие шаги:

    Распакуйте архив резервной копии:

    Перейдите в директорию с распакованными данными:

    Восстановите основные компоненты:

    mv app.ini /etc/gitea/conf/app.ini mv data/* /var/lib/gitea/data/ mv log/* /var/lib/gitea/log/ mv repos/* /var/lib/gitea/gitea-repositories/ chown -R gitea:gitea /etc/gitea/conf/app.ini /var/lib/gitea

    Импортируйте дамп базы данных в MySQL:

    mysql --default-character-set=utf8mb4 -u$USER -p$PASS $DATABASE < gitea-db.sql

    Замените $USER, $PASS, и $DATABASE на имя пользователя, пароль и имя базы данных соответственно.

    Эти шаги позволят вам восстановить всю необходимую информацию и данные на вашем сервере после сбоя или переноса на новый сервер.

    Настройка репозиториев и деплой

    Эта глава посвящена управлению репозиториями и развертыванию приложений с помощью Simple-Server App Platform.

    Для начала упростим процесс работы с вашими репозиториями, добавив SSH-ключ в Gitea. Для этого перейдите в настройки вашего пользователя, выберите «Ключи SSH/GPG» и нажмите на «Добавить ключ». В поле «Содержимое» вставьте ваш публичный SSH-ключ, который можно получить с помощью команды cat ~/.ssh/id_rsa.pub в Linux.

    Пример создания и деплоя приложения

    Скачайте и подготовьте ваш проект. Например, клонируйте на локальный компьютер тестовое приложение и удалите из него папку .git, после чего инициируйте новый репозиторий:

    git clone https://github.com/Simple-Server-cloud/app-example-svelte.git cd app-example-svelte rm -rf .git git init git add . git commit -m 'Initial commit for Test Svelte app'

    После инициализации нового репозитория локально, создайте репозиторий в Gitea, перейдя на главную страницу и нажав на плюс в разделе репозиториев. Измените только название на «Svelte» и нажмите «Создать репозиторий».

    Добавление репозитория в Gitea и деплой

    На странице репозитория выберите SSH для взаимодействия. Открывшаяся страница опишет, как можно создать новый репозиторий или добавить уже существующий.

    Нам подойдет второй вариант:

    git remote add origin git@twgitea.test.ru:TWgitea/Svelte.git git push -u origin main

    При выполнении git push -u origin main у вас может возникнуть ошибка. Это связано с тем, что при инициации git-репозитория, имя ветки по умолчанию указывается как master, поэтому, если у вас возникает ошибка, выполните команду:

    git push -u origin master

    Обновите страницу репозитория, чтобы убедиться, что файлы были успешно добавлены.

    Настройка деплоя в App Platform

    После добавления репозитория, следующим шагом будет его размещение в App Platform. Для этого сначала создадим токен для авторизации.

    1. Создание токена для авторизации:
    * Вернитесь в настройки Gitea и перейдите в раздел «Приложения». * Введите имя для вашего токена и выберите «Выбрать разрешения». * Установите для «repository» значение «Прочитанные» (в оригинале Read). * После создания токен будет показан один раз на верху страницы. Обязательно сохраните его.
    1. Подключение репозитория в App Platform:
    * В панели управления Simple-Server перейдите в раздел «App Platform». * Выберите раздел «Frontend» и фреймворк «Svelte». * В разделе «Репозиторий» выберите «Подключить git-репозиторий по URL». * В «URL репозитория» введите ссылку, указанную в репозитории Gitea при выборе HTTPS. * В «Имя пользователя» введите ваше имя пользователя из Gitea. * В «Пароль или токен» введите ранее полученный токен.
    1. Запуск и управление деплоем:
    * После добавления репозитория все дополнительные настройки можно оставить по умолчанию. * Нажмите на «Запустить деплой» и дождитесь завершения процесса. * На странице настроек вы увидите домен, подключенный к вашему приложению. Здесь же вы можете изменить его. * Для выбора коммитов для деплоя нажмите на «Редактировать» в разделе «Настройки деплоя».
    • Вернитесь в настройки Gitea и перейдите в раздел «Приложения».

    • Введите имя для вашего токена и выберите «Выбрать разрешения».

    • Установите для «repository» значение «Прочитанные» (в оригинале Read).

    • После создания токен будет показан один раз на верху страницы. Обязательно сохраните его.

    • В панели управления Simple-Server перейдите в раздел «App Platform».

    • Выберите раздел «Frontend» и фреймворк «Svelte».

    • В разделе «Репозиторий» выберите «Подключить git-репозиторий по URL».

    • В «URL репозитория» введите ссылку, указанную в репозитории Gitea при выборе HTTPS.

    • В «Имя пользователя» введите ваше имя пользователя из Gitea.

    • В «Пароль или токен» введите ранее полученный токен.

    • После добавления репозитория все дополнительные настройки можно оставить по умолчанию.

    • Нажмите на «Запустить деплой» и дождитесь завершения процесса.

    • На странице настроек вы увидите домен, подключенный к вашему приложению. Здесь же вы можете изменить его.

    • Для выбора коммитов для деплоя нажмите на «Редактировать» в разделе «Настройки деплоя».

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


    Нужен сервер для практики? Арендуйте VPS/VDS в России — root-доступ, NVMe, DDoS-защита и поддержка 24/7.

    VPS для проекта

    VPS с root-доступом, NVMe и поддержкой 24/7 на Simple-Server.

    StarterVDS

    490₽

    в месяц

    1 ядро

    1 ГБ RAM

    20 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Безлимитный трафик
    Заказать VPS
    Рекомендуем

    PerformanceVDS

    1190₽

    в месяц

    2 ядра

    4 ГБ RAM

    60 ГБ NVMe

    • 1 IPv4
    • KVM
    • Root-доступ
    • Базовая DDoS-защита
    Заказать VPS

    Нужна другая конфигурация или чистый VPS без панели?

    Все тарифы VPS

    Похожие статьи, которые могут быть вам интересны