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

Отримати VPS arrow_forward

Gitea на VPS: встановлення, налаштування та обслуговування

calendar_month June 09, 2026 schedule 20 хв. читання visibility 29 переглядів
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 Великі команди (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.