bolt Valebyte VPS от $4/мес — NVMe, запуск за 60 секунд.

Получить VPS arrow_forward

Gitea на VPS: установка, настройка и обслуживание

calendar_month 9 июня 2026 schedule 20 мин. чтения visibility 27 просмотров
person
Valebyte Team
Gitea на VPS: установка, настройка и обслуживание

Gitea на VPS — это легковесная, открытая и самодостаточная платформа для хостинга Git-репозиториев, которую можно эффективно установить, настроить и обслуживать на виртуальном частном сервере (VPS) для полного контроля над вашими проектами и данными.

Что такое Gitea и почему выбирают gitea self-hosted на VPS?

В мире разработки программного обеспечения системы контроля версий, такие как Git, стали неотъемлемой частью рабочего процесса. Они позволяют командам эффективно сотрудничать, отслеживать изменения в коде и управлять версиями проектов. Наиболее известные платформы для хостинга Git-репозиториев – GitHub, GitLab, Bitbucket – предоставляют мощные облачные решения. Однако не всегда эти сервисы отвечают всем требованиям к конфиденциальности, безопасности или гибкости настройки, особенно для корпоративных пользователей или проектов с особыми условиями лицензирования.

Именно здесь на сцену выходит Gitea – открытый, легковесный и самодостаточный сервис для хостинга Git-репозиториев, написанный на языке Go. Он разработан как форк Gogs с целью обеспечения более активной разработки и большей функциональности, при этом сохраняя минимальные системные требования. Выбор gitea self-hosted на собственном VPS предоставляет разработчикам и командам беспрецедентный уровень контроля над их данными, инфраструктурой и рабочими процессами.

Ключевые преимущества Gitea

  • Легковесность и производительность: Gitea написана на Go, что делает её очень быстрой и эффективной. Она потребляет значительно меньше системных ресурсов по сравнению с GitLab, что позволяет запускать её даже на скромных VPS.
  • Простота установки и настройки: Благодаря минимальным зависимостям и единому исполняемому файлу, установка Gitea удивительно проста, особенно с использованием Docker.
  • Полный контроль над данными: Размещая Gitea на своем VPS, вы полностью владеете всеми данными репозиториев, пользовательскими данными и конфигурациями. Это критически важно для проектов с высокими требованиями к безопасности и конфиденциальности.
  • Гибкость и кастомизация: Открытый исходный код позволяет настраивать Gitea под специфические нужды, интегрировать с другими инструментами и адаптировать под уникальные рабочие процессы.
  • Функциональность: Gitea предлагает все основные функции, необходимые для управления проектами: репозитории, отслеживание задач (issues), запросы на слияние (pull requests), вики, миграция репозиториев, интеграция с CI/CD, поддержка LDAP/OAuth и многое другое.
  • Сообщество: Активное и растущее сообщество разработчиков способствует быстрому развитию и поддержке проекта.

Сравнение с GitHub/GitLab и сценарии использования

В отличие от GitHub, который является полностью облачным решением, или GitLab, который предлагает как облачные, так и self-hosted версии (но последняя гораздо более требовательна к ресурсам), Gitea идеально подходит для следующих сценариев:

  • Малые и средние команды: Для стартапов, небольших отделов разработки или фрилансеров, которым нужен мощный, но экономичный инструмент.
  • Образовательные учреждения: Для студентов и преподавателей, которым нужен собственный Git-хостинг без ограничений и высоких затрат.
  • Внутренние корпоративные репозитории: Компании, которым требуется хранить исходный код внутри собственной инфраструктуры для обеспечения безопасности и соответствия регуляторным требованиям.
  • Разработка с ограниченными ресурсами: Проекты, работающие на VPS с небольшим объёмом оперативной памяти и процессора, где GitLab был бы слишком "тяжелым".
  • Эксперименты и личные проекты: Разработчики, желающие иметь свой собственный Git-сервер для личных проектов, экспериментов или обучения.

Размещение Gitea на сервере, особенно на VPS, даёт вам полный контроль над средой, позволяя оптимизировать производительность и безопасность в соответствии с вашими уникальными требованиями. Это делает Gitea привлекательным выбором для тех, кто ценит независимость и эффективность.

Системные требования для установки Gitea на сервере

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

Минимальные и рекомендуемые конфигурации

Для запуска Gitea требуется относительно мало ресурсов, но реальная конфигурация будет зависеть от количества пользователей, репозиториев и интенсивности их использования. Представим общие рекомендации:

Минимальные требования (для 1-5 пользователей, до 10 репозиториев):

  • Процессор (CPU): 1 vCPU (виртуальное ядро) с тактовой частотой от 1 ГГц.
  • Оперативная память (RAM): 512 МБ – 1 ГБ. Если используется СУБД SQLite, 512 МБ может быть достаточно. Для PostgreSQL или MySQL/MariaDB лучше иметь 1 ГБ.
  • Дисковое пространство: 5 ГБ свободного места. Этого хватит для операционной системы, Gitea и нескольких небольших репозиториев.
  • Тип диска: HDD или SSD.

Рекомендуемые требования (для 5-20 пользователей, до 50 репозиториев, активная разработка):

  • Процессор (CPU): 2 vCPU с тактовой частотой от 2 ГГц.
  • Оперативная память (RAM): 2 ГБ – 4 ГБ. Это обеспечит комфортную работу Gitea, базы данных и других системных процессов.
  • Дисковое пространство: 20 ГБ – 50 ГБ свободного места. Запас необходим для роста репозиториев, логов и бэкапов.
  • Тип диска: NVMe SSD. Скорость дисковой подсистемы критически важна для операций Git, особенно при больших репозиториях или частых операциях клонирования/пуша.

Расширенные требования (для более 20 пользователей, более 50 репозиториев, CI/CD):

  • Процессор (CPU): 4 vCPU и более.
  • Оперативная память (RAM): 8 ГБ и более.
  • Дисковое пространство: 100 ГБ и более.
  • Тип диска: NVMe SSD.

Важно помнить, что эти цифры являются ориентировочными. Нагрузка может сильно варьироваться в зависимости от размера репозиториев, частоты операций, использования Git LFS и интеграции с другими сервисами.

Выбор ОС и дисковой подсистемы

  • Операционная система (ОС): Gitea поддерживает широкий спектр операционных систем. Для развертывания на VPS наиболее популярны и рекомендованы дистрибутивы Linux, такие как Ubuntu (LTS версии), Debian, CentOS/Rocky Linux. Они хорошо документированы, имеют активное сообщество и обеспечивают стабильность. Для установки Gitea через Docker эти ОС подходят наилучшим образом.
  • База данных: Gitea может использовать несколько типов баз данных:
    • SQLite3: Идеально подходит для небольших инсталляций и личных проектов. Проста в настройке, не требует отдельного сервера БД, но менее производительна при высокой нагрузке.
    • PostgreSQL: Рекомендуется для средних и крупных инсталляций. Обладает высокой производительностью, надёжностью и широкими возможностями.
    • MySQL/MariaDB: Также хороший выбор для средних и крупных инсталляций, широко распространён и хорошо поддерживается.
    • MS SQL Server: Поддерживается, но реже используется на Linux VPS.
    Для большинства развертываний на VPS, особенно с использованием Docker, SQLite или PostgreSQL являются наиболее удобными вариантами.
  • Дисковая подсистема: Это часто недооценённый, но критически важный компонент для производительности Git-сервера.
    • HDD: Медленные, не рекомендуются для активной разработки.
    • SSD (SATA): Значительно быстрее HDD, подходят для небольших команд.
    • NVMe SSD: Самый быстрый вариант. Если ваш хостинг-провайдер, такой как Valebyte.com, предлагает VPS с NVMe дисками, это будет лучшим выбором для Gitea, обеспечивая максимальную скорость операций с репозиториями, особенно при работе с большими файлами или частыми коммитами.

Выбор правильной конфигурации VPS для gitea vps является залогом её стабильной и эффективной работы. Не экономьте на дисковой подсистеме и оперативной памяти, если ожидаете активного использования.

Ищете надёжный сервер для ваших проектов?

VPS от $10/мес и выделенные серверы от $9/мес с NVMe, DDoS-защитой и поддержкой 24/7.

Смотреть предложения →

Подготовка VPS для установки Gitea Docker

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

Выбор подходящего VPS-тарифа Valebyte.com

Для gitea vps важно выбрать тариф, который соответствует вашим потребностям. Valebyte.com предлагает различные тарифы VPS, которые могут быть оптимальны для Gitea.

Тариф Valebyte.com vCPU RAM NVMe SSD Примерная стоимость/мес. Рекомендуемое использование Gitea
VPS Start 1 2 GB 20 GB от $5 Личные проекты, малые команды (до 5 чел.)
VPS Pro 2 4 GB 50 GB от $10 Средние команды (5-20 чел.), активная разработка
VPS Business 4 8 GB 100 GB Крупные команды (20+ чел.), с CI/CD, большие репозитории

Для самодостаточного хостинга Gitea на VPS, мы рекомендуем выбирать тарифы с NVMe SSD, так как скорость дисковой подсистемы значительно влияет на производительность операций с Git-репозиториями. Также рассмотрите возможность выбора self-managed VPS, если вы хотите иметь полный контроль над своим сервером и его конфигурацией.

Установка Docker и Docker Compose

После выбора и настройки вашего VPS (например, с Ubuntu 22.04 LTS), первым шагом является обновление системы и установка необходимых инструментов.

1. Обновление системы:

Подключитесь к вашему VPS по SSH и выполните команды для обновления пакетов:

sudo apt update
sudo apt upgrade -y

2. Установка Docker Engine:

Установите Docker, следуя официальной документации. Это гарантирует получение самой свежей и стабильной версии.

# Удаляем старые версии Docker (если есть)
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt remove $pkg; done

# Добавляем репозиторий Docker
sudo apt update
sudo apt install ca-certificates curl gnupg -y
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Устанавливаем Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Добавьте вашего пользователя в группу docker, чтобы выполнять команды Docker без sudo (после этого нужно будет переподключиться к SSH):

sudo usermod -aG docker $USER
newgrp docker

Проверьте, что Docker установлен корректно:

docker run hello-world

Вы должны увидеть приветственное сообщение от Docker.

3. Установка Docker Compose (если не установлен как плагин):

Если вы устанавливали Docker Engine с помощью docker-compose-plugin, то docker compose уже доступен. Если нет, или вы предпочитаете старую версию, установите её вручную:

# Проверяем наличие Docker Compose Plugin
docker compose version

# Если плагин не установлен, устанавливаем Docker Compose standalone
sudo apt update
sudo apt install docker-compose -y

Убедитесь, что Docker Compose установлен:

docker-compose --version

Теперь ваш VPS готов к развертыванию gitea docker.

rocket_launch Быстрый выбор

Ищете сервер, который просто работает?

Valebyte VPS — NVMe, поддержка 24/7, развёртывание за 60 секунд.

Смотреть тарифы VPS arrow_forward

Пошаговая установка Gitea на VPS с Docker Compose

Использование Docker Compose – это наиболее удобный и рекомендуемый способ установки Gitea на VPS. Он позволяет определить все сервисы (Gitea, база данных) и их конфигурации в одном файле, упрощая управление и масштабирование.

Создание файла docker-compose.yml

Создайте директорию для Gitea и внутри неё файл docker-compose.yml. Например:

mkdir -p /opt/gitea
cd /opt/gitea
nano docker-compose.yml

Вставьте следующее содержимое. Этот пример использует PostgreSQL в качестве базы данных, но вы можете легко заменить его на SQLite или MySQL/MariaDB, изменив соответствующий раздел.

version: "3"

services:
  gitea:
    image: gitea/gitea:latest
    container_name: gitea
    restart: always
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=db:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=your_gitea_db_password # Замените на надёжный пароль
      - GITEA__server__ROOT_URL=https://git.yourdomain.com/ # Замените на ваш домен
      - GITEA__server__SSH_DOMAIN=git.yourdomain.com # Замените на ваш домен
      - GITEA__server__HTTP_PORT=3000
      - GITEA__webhook__ALLOWED_HOSTS=localhost,127.0.0.1
    volumes:
      - ./gitea_data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000" # Порт для HTTP/HTTPS через reverse proxy
      - "2222:22"   # Порт для SSH Git (может быть изменен)
    depends_on:
      - db

  db:
    image: postgres:15
    container_name: gitea_db
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=your_gitea_db_password # Замените на тот же надёжный пароль
      - POSTGRES_DB=gitea
    volumes:
      - ./postgres_data:/var/lib/postgresql/data
    networks:
      - default

volumes:
  gitea_data:
  postgres_data:

networks:
  default:
    external: false

Важные моменты для настройки docker-compose.yml:

  • USER_UID и USER_GID: Рекомендуется установить их на UID/GID вашего пользователя на хост-системе (обычно 1000), чтобы избежать проблем с правами доступа к файлам в томах.
  • GITEA__database__PASSWD и POSTGRES_PASSWORD: ОБЯЗАТЕЛЬНО замените your_gitea_db_password на сложный, уникальный пароль.
  • GITEA__server__ROOT_URL и GITEA__server__SSH_DOMAIN: Замените git.yourdomain.com на доменное имя или IP-адрес вашего VPS, по которому будет доступен Gitea. Если вы планируете использовать Nginx/Caddy в качестве обратного прокси, то это должен быть домен.
  • Порты: 3000:3000 открывает порт Gitea внутри контейнера на порт 3000 хоста. 2222:22 открывает SSH-порт Gitea на порт 2222 хоста. Вы можете изменить 2222 на любой другой свободный порт, чтобы избежать конфликтов с системным SSH-сервером на порту 22.
  • volumes:
    • ./gitea_data:/data: Сохраняет все данные Gitea (репозитории, конфигурации, аватары) в директории gitea_data на вашем хосте. Это критически важно для сохранения данных при обновлении контейнера.
    • ./postgres_data:/var/lib/postgresql/data: Аналогично, сохраняет данные PostgreSQL.

Запуск и первичная настройка Gitea

После сохранения файла docker-compose.yml, запустите контейнеры:

docker compose up -d

Команда -d запускает контейнеры в фоновом режиме. Вы можете проверить статус запущенных контейнеров:

docker compose ps

Если всё прошло успешно, вы должны увидеть оба контейнера (gitea и gitea_db) в статусе running.

Теперь Gitea должна быть доступна по адресу http://ВАШ_IP_VPS:3000. Откройте этот адрес в браузере.

Веб-интерфейс первичной настройки:

При первом доступе к Gitea вы увидите страницу установки. Большинство полей будут уже заполнены на основе ваших переменных окружения в docker-compose.yml. Проверьте и при необходимости скорректируйте:

  • Настройки базы данных: Должны быть заполнены из переменных окружения (PostgreSQL, хост db:5432, пользователь gitea, имя БД gitea, пароль).
  • Основные настройки Gitea:
    • Путь к репозиториям: /data/git/repositories (внутри контейнера, соответствует ./gitea_data/git/repositories на хосте).
    • Путь к корню Gitea: /data.
    • URL Gitea: https://git.yourdomain.com/ (или http://ВАШ_IP_VPS:3000/, если пока без домена и HTTPS).
    • Домен SSH-сервера: git.yourdomain.com (или IP вашего VPS).
    • Порт SSH-сервера: 2222 (или тот, который вы указали в ports).
  • Настройки администратора: Создайте первого администратора. Это будет ваш основной аккаунт для управления Gitea. Заполните имя пользователя, пароль и адрес электронной почты.

Нажмите "Установить Gitea". После завершения установки вы будете автоматически перенаправлены на страницу входа. Войдите с учётными данными администратора.

Поздравляем! Установка Gitea завершена. Теперь у вас есть работающий Git-сервер на вашем VPS. Следующим шагом будет настройка обратного прокси и HTTPS для безопасного доступа.

Настройка Reverse Proxy и HTTPS для Gitea

Прямой доступ к Gitea по порту 3000 через HTTP не является безопасным и профессиональным решением. Для обеспечения безопасности, использования доменного имени и шифрования трафика необходимо настроить обратный прокси (Reverse Proxy) и HTTPS. В качестве обратного прокси мы рассмотрим Nginx и Caddy, а для HTTPS будем использовать Certbot с Let's Encrypt.

Конфигурация Nginx в качестве обратного прокси

Nginx – это мощный и популярный веб-сервер, который отлично справляется с ролью обратного прокси. Он будет принимать запросы на стандартные порты (80 для HTTP, 443 для HTTPS) и перенаправлять их на Gitea, работающую на порту 3000 внутри Docker-контейнера.

1. Установка Nginx:

sudo apt update
sudo apt install nginx -y

2. Настройка DNS:

Убедитесь, что ваш домен (например, git.yourdomain.com) указывает на IP-адрес вашего VPS с помощью A-записи в настройках вашего DNS-провайдера.

3. Создание конфигурационного файла Nginx для Gitea:

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

sudo nano /etc/nginx/sites-available/gitea.conf

Вставьте следующую конфигурацию (пока без HTTPS):

server {
    listen 80;
    server_name git.yourdomain.com; # Замените на ваш домен

    client_max_body_size 50m; # Для загрузки больших файлов

    location / {
        proxy_pass http://localhost: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;
    }

    location ~ /_next/static/ {
        proxy_pass http://localhost: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;
        expires 1y;
        add_header Cache-Control "public";
    }

    # Для SSH через HTTP/HTTPS (если не используете прямой SSH на 2222)
    location /ssh/ {
        proxy_pass http://localhost: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;
        proxy_buffering off;
        proxy_read_timeout 3600s; # Увеличьте таймаут для SSH-операций
        proxy_send_timeout 3600s;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Сохраните и закройте файл (Ctrl+X, Y, Enter).

4. Активация конфигурации и перезапуск Nginx:

Создайте символическую ссылку на файл в sites-enabled и проверьте синтаксис Nginx:

sudo ln -s /etc/nginx/sites-available/gitea.conf /etc/nginx/sites-enabled/
sudo nginx -t

Если синтаксис в порядке, перезагрузите Nginx:

sudo systemctl reload nginx

Теперь Gitea должна быть доступна по адресу http://git.yourdomain.com.

Обеспечение HTTPS с помощью Certbot (Let's Encrypt)

Для обеспечения безопасного соединения (HTTPS) мы будем использовать бесплатные SSL/TLS сертификаты от Let's Encrypt через утилиту Certbot.

1. Установка Certbot:

sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
sudo ln -s /snap/bin/certbot /usr/bin/certbot

2. Получение и установка SSL-сертификата:

Certbot может автоматически настроить Nginx для использования HTTPS:

sudo certbot --nginx -d git.yourdomain.com # Замените на ваш домен

Следуйте инструкциям Certbot: введите ваш email, согласитесь с условиями и выберите, перенаправлять ли HTTP-трафик на HTTPS (рекомендуется "2: Redirect").

Certbot автоматически обновит ваш файл /etc/nginx/sites-available/gitea.conf, добавив секцию для HTTPS и настройки SSL. После этого Nginx будет перезагружен.

Теперь ваш Gitea доступен по адресу https://git.yourdomain.com с защищённым соединением.

Проверка автоматического продления сертификата:

sudo certbot renew --dry-run

Если команда прошла без ошибок, автоматическое продление работает.

Настройка Caddy как альтернатива

Caddy – это современный веб-сервер с автоматической поддержкой HTTPS (через Let's Encrypt). Он значительно проще в настройке, чем Nginx, так как сам управляет сертификатами.

1. Установка Caddy:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy -y

2. Конфигурация Caddyfile:

Создайте или отредактируйте файл /etc/caddy/Caddyfile:

sudo nano /etc/caddy/Caddyfile

Удалите стандартное содержимое и добавьте:

git.yourdomain.com { # Замените на ваш домен
    reverse_proxy localhost:3000 {
        header_up Host {host}
        header_up X-Real-IP {remote_ip}
        header_up X-Forwarded-For {remote_ip}
        header_up X-Forwarded-Proto {scheme}
    }

    # Для SSH через HTTP/HTTPS (если не используете прямой SSH на 2222)
    # Это упрощенная конфигурация, может потребоваться доработка
    # @ssh {
    #     path /ssh/*
    # }
    # reverse_proxy @ssh localhost:3000 {
    #     header_up Host {host}
    #     header_up X-Real-IP {remote_ip}
    #     header_up X-Forwarded-For {remote_ip}
    #     header_up X-Forwarded-Proto {scheme}
    #     websocket
    # }
}

Сохраните и закройте файл.

3. Проверка и запуск Caddy:

sudo caddy validate
sudo systemctl reload caddy

Caddy автоматически получит SSL-сертификат для вашего домена и начнёт проксировать трафик на Gitea. Это очень удобный способ для обеспечения безопасного доступа к вашим сервисам на VPS.

Обслуживание Gitea: бэкапы, обновления и мониторинг

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

Стратегии резервного копирования данных Gitea

Резервное копирование – это самый важный аспект обслуживания любого сервера. Потеря данных Git-репозиториев может быть катастрофической. Для Gitea необходимо бэкапить три основных компонента:

  1. База данных Gitea: Содержит информацию о пользователях, репозиториях, задачах, комментариях и т.д.
  2. Данные Gitea: Включают Git-репозитории, SSH-ключи, аватары, вложения и другие файлы, хранящиеся в директории /data (которая монтируется как ./gitea_data на хосте).
  3. Конфигурационный файл Gitea: app.ini (находится в ./gitea_data/gitea/conf/app.ini).

Методы резервного копирования:

  • Встроенная утилита Gitea: Gitea поставляется с удобной командой gitea dump, которая создаёт архив со всеми необходимыми данными.
    # Выполните внутри контейнера Gitea
    docker exec -it gitea gitea dump

    Эта команда создаст файл gitea-dump-YYYYMMDDHHMMSS.zip в рабочей директории Gitea (/tmp внутри контейнера, но при использовании Docker Compose с томами, он может быть доступен через монтированный том). Рекомендуется переместить этот файл на хост-систему и затем в безопасное внешнее хранилище.

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

    #!/bin/bash
    DATE=$(date +%Y%m%d%H%M%S)
    BACKUP_DIR="/opt/gitea/backups"
    GITEA_DATA_DIR="/opt/gitea/gitea_data"
    DB_DATA_DIR="/opt/gitea/postgres_data" # Или где у вас данные БД
    
    mkdir -p $BACKUP_DIR
    
    echo "Stopping Gitea for consistent backup..."
    docker compose stop gitea
    
    echo "Dumping Gitea data..."
    docker exec gitea gitea dump -c /data/gitea/conf/app.ini -f /tmp/gitea-dump-$DATE.zip
    docker cp gitea:/tmp/gitea-dump-$DATE.zip $BACKUP_DIR/
    
    echo "Dumping PostgreSQL database..."
    docker exec gitea_db pg_dumpall -U gitea > $BACKUP_DIR/gitea_db_dump_$DATE.sql
    
    echo "Copying Gitea data directory..."
    # Можно просто скопировать gitea_data и postgres_data, так как они уже на хосте
    cp -r $GITEA_DATA_DIR $BACKUP_DIR/gitea_data_$DATE
    cp -r $DB_DATA_DIR $BACKUP_DIR/postgres_data_$DATE
    
    echo "Starting Gitea..."
    docker compose start gitea
    
    echo "Cleaning up old backups (e.g., keep last 7 days)..."
    find $BACKUP_DIR -type f -name 'gitea-dump-*.zip' -mtime +7 -delete
    find $BACKUP_DIR -type f -name 'gitea_db_dump_*.sql' -mtime +7 -delete
    find $BACKUP_DIR -type d -name 'gitea_data_*' -mtime +7 -exec rm -rf {} +
    find $BACKUP_DIR -type d -name 'postgres_data_*' -mtime +7 -exec rm -rf {} +
    
    echo "Backup finished: $BACKUP_DIR/gitea-dump-$DATE.zip"

    Этот скрипт стоит добавить в cron для автоматического выполнения. Не забудьте изменить пути и пароли. Важно также бэкапировать базу данных отдельно, так как gitea dump не всегда включает полный дамп БД, особенно для внешних СУБД.

  • Снимки файловой системы/томов VPS: Многие хостинг-провайдеры, включая Valebyte.com, предлагают возможность создания снимков (snapshots) всего VPS или отдельных дисковых томов. Это быстрый способ сделать полную копию состояния сервера, но он может быть ресурсоёмким и не всегда подходит для частых бэкапов.
  • Rsync: Для более гранулярного контроля можно использовать rsync для синхронизации папок gitea_data и postgres_data на удалённый сервер или внешнее хранилище.

Важно: Всегда храните бэкапы вне вашего VPS (например, на S3, Google Drive, другом сервере), чтобы избежать потери данных при выходе из строя основного сервера.

Процесс обновления Gitea и Docker-контейнеров

Регулярные обновления Gitea и Docker-образов важны для получения новых функций, исправлений ошибок и устранения уязвимостей безопасности.

Обновление Gitea:

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

  1. Создайте бэкап: Всегда делайте полный бэкап перед обновлением.
  2. Остановите контейнер Gitea:
    docker compose stop gitea
  3. Скачайте новый образ Gitea:
    docker compose pull gitea

    Это загрузит самую свежую версию образа gitea/gitea:latest.

  4. Запустите контейнер Gitea:
    docker compose up -d gitea

    Docker Compose автоматически создаст новый контейнер с новым образом, используя существующие тома данных.

  5. Проверьте версию: Зайдите в веб-интерфейс Gitea и проверьте версию внизу страницы.

Обновление Docker-образа PostgreSQL (или другой СУБД):

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

  1. Бэкап: Обязательно сделайте полный бэкап Gitea и базы данных.
  2. Остановите все контейнеры:
    docker compose down
  3. Измените docker-compose.yml: Обновите тег образа PostgreSQL (например, с postgres:15 на postgres:16).
  4. Скачайте новый образ:
    docker compose pull db
  5. Запустите контейнеры:
    docker compose up -d
  6. Проверьте: Убедитесь, что Gitea и база данных работают корректно.

Важно: При обновлении мажорных версий базы данных (например, PostgreSQL 15 до 16), часто требуется миграция данных, а не просто запуск нового контейнера с существующими томами. В таких случаях рекомендуется использовать официальные методы миграции или создавать новый контейнер БД и импортировать в него дамп старой БД.

Мониторинг производительности и логирование

Для стабильной работы gitea на сервере необходим мониторинг.

  • Мониторинг ресурсов VPS: Используйте утилиты htop, glances или top для наблюдения за использованием CPU, RAM и диска на вашем VPS. Если ресурсы постоянно близки к 100%, возможно, потребуется увеличение тарифа.
  • Логи Gitea: Логи Gitea по умолчанию выводятся в стандартный вывод контейнера. Вы можете просмотреть их командой:
    docker compose logs gitea

    Для более удобного просмотра и фильтрации можно использовать опцию -f (follow) или перенаправить логи в файл.

  • Логи Nginx/Caddy: Проверяйте логи вашего обратного прокси (обычно в /var/log/nginx/access.log и error.log для Nginx, или /var/log/caddy/access.log и error.log для Caddy) для выявления проблем с доступом или ошибками.
  • Мониторинг Docker: Команда docker stats показывает текущее потребление ресурсов всеми запущенными контейнерами.

Регулярный мониторинг поможет выявить потенциальные проблемы до того, как они станут критическими.

rocket_launch Быстрый выбор

Ищете сервер, который просто работает?

Valebyte VPS — NVMe, поддержка 24/7, развёртывание за 60 секунд.

Смотреть тарифы VPS arrow_forward

Какой VPS-конфиг выбрать для gitea vps под реальную нагрузку?

Выбор правильной конфигурации VPS для gitea vps под реальную нагрузку – это баланс между производительностью, стоимостью и масштабируемостью. Недооценка потребностей может привести к медленной работе и недовольству команды, переоценка – к излишним расходам. Ключевые факторы, влияющие на выбор, включают количество пользователей, объем репозиториев, частоту операций Git и использование дополнительных функций (например, CI/CD).

Оценка потребностей команды и проектов

Перед тем как выбрать тариф, ответьте на следующие вопросы:

  1. Количество активных пользователей: Сколько разработчиков будут одновременно использовать Gitea?
  2. Количество и размер репозиториев: Сколько репозиториев планируется хостить? Будут ли среди них очень большие репозитории (например, с графикой, видео или бинарными файлами, требующими Git LFS)?
  3. Частота операций Git: Насколько часто будут происходить пуши, пулы, клонирования?
  4. Использование CI/CD: Планируете ли вы интегрировать Gitea с системами непрерывной интеграции/доставки (например, Jenkins, Drone CI), которые будут запускаться на том же VPS или на отдельных серверах?
  5. Ожидаемый рост: Насколько быстро ваша команда или количество проектов будет расти?

Исходя из этих вопросов, можно рекомендовать следующие конфигурации VPS от Valebyte.com для установки Gitea:

Сценарий использования Gitea vCPU RAM NVMe SSD Примерная стоимость/мес. (Valebyte.com) Примечания
Личный/Тестовый (1-3 пользователя, до 10 репо, нечастые операции) 1 1-2 GB 20 GB от $5 SQLite БД, без CI/CD. Достаточно для обучения и небольших проектов.
Малая команда (3-10 пользователей, до 30 репо, умеренная активность) 2 2-4 GB 50 GB от $10 PostgreSQL/MariaDB, возможно легкое CI/CD. Хороший баланс цена/производительность.
Средняя команда (10-25 пользователей, до 100 репо, высокая активность, CI/CD) 4 8-16 GB 100-200 GB от $20 PostgreSQL, активное CI/CD. Рекомендуется для профессиональной разработки.
Крупная команда/Enterprise (25+ пользователей, сотни репо, интенсивное CI/CD, Git LFS) 8+ 16-32 GB+ 200 GB+ от $40 (возможно, выделенный сервер) Высокопроизводительная БД, выделенные ресурсы. Рассмотрите выделенные серверы для максимальной производительности и изоляции.

Рекомендации по масштабированию и оптимизации

Даже с правильно выбранным VPS, можно предпринять шаги для оптимизации и подготовки к масштабированию:

  • Используйте NVMe SSD: Для Gitea это, пожалуй, самый важ фактор производительности, особенно при работе с большими репозиториями или частыми операциями Git.
  • Выбирайте KVM VPS: KVM-виртуализация обеспечивает лучшую изоляцию ресурсов и производительность по сравнению с OpenVZ.
  • Оптимизируйте базу данных: Если используете PostgreSQL или MySQL, убедитесь, что они настроены для оптимальной производительности. Проверьте параметры кэширования и буферизации.
  • Разделение сервисов: Для очень больших инсталляций рассмотрите возможность размещения базы данных Gitea на отдельном VPS или управляемом сервисе БД. Это снизит нагрузку на основной сервер Gitea и упростит масштабирование.
  • Мониторинг: Непрерывный мониторинг ресурсов (CPU, RAM, I/O диска) поможет вам заранее обнаружить узкие места и принять решение о необходимости апгрейда.
  • Кэширование: Gitea поддерживает кэширование различных компонентов. Убедитесь, что оно включено и настроено в app.ini.
  • Git LFS: Если вы работаете с большими бинарными файлами, используйте Git LFS (Large File Storage). Gitea имеет встроенную поддержку LFS.

Помните, что gitea на сервере, даже на мощном, требует внимания к конфигурации. Правильный выбор VPS и последующая оптимизация обеспечат бесперебойную работу вашего Git-хостинга. Для тех, кто хочет глубже понять основы серверной инфраструктуры, рекомендуем ознакомиться со статьёй "Что такое сервер и дедик: Полное руководство для начинающих".

Выводы

Gitea на VPS предоставляет мощное, гибкое и экономичное решение для самодостаточного хостинга Git-репозиториев, давая полный контроль над вашими проектами и данными. Следуя пошаговым инструкциям по установке через Docker Compose, настройке безопасного доступа с Nginx/Caddy и HTTPS, а также регулярному обслуживанию, вы сможете создать надёжную платформу для своей команды. Выбор подходящего тарифа VPS от Valebyte.com с NVMe SSD обеспечит высокую производительность, а правильное планирование конфигурации под реальную нагрузку гарантирует стабильную работу Gitea в долгосрочной перспективе.

Готовы выбрать сервер?

VPS и выделенные серверы в 72+ странах с мгновенной активацией и полным root-доступом.

Начать сейчас →

Поделиться записью:

support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.