Все системы работают в штатном режиме 21 принимаемые криптовалюты · Monero приветствуется Политика без KYC
ChainVPS

Dev · без KYC

Хостинг Gitea на офшорном VPS

Запустите собственный лёгкий Git-сервис на VPS без KYC с оплатой в криптовалюте и держите каждый репозиторий, issue и CI-конвейер вне сторонних облаков.

Что это такое

Gitea — это self-hosted Git-сервис, написанный на Go: лёгкая альтернатива GitHub/GitLab с репозиториями, pull request'ами, issues, вики, релизами и Actions (CI/CD). Поставляется в виде единого бинарного файла или Docker-образа с небольшим потреблением памяти, что делает его идеальным выбором для команд, которым нужен полный контроль над исходным кодом.

Почему размещать это оффшорно

Исходный код — одни из самых чувствительных данных, которыми располагает команда; размещение его на офшорном VPS без привязки к личности выводит его за пределы досягаемости крупных платформ хостинга кода с их политиками хранения данных и блокировок. Оплата криптовалютой без KYC означает, что инфраструктура вашего проекта не привязана к корпоративной личности, а безлимитный трафик позволяет клонированию, CI-сборкам и загрузке релизов идти без неожиданных ограничений по объёму.

Развёртывание

Рабочая эталонная конфигурация

Скопируйте это на новый инстанс ChainVPS. Замените плейсхолдеры и запустите.

docker-compose.yml

# docker-compose.yml — Gitea + PostgreSQL on Ubuntu 24.04
# 1) apt install docker.io docker-compose-v2
# 2) put this file in /opt/gitea and run: docker compose up -d
# 3) open http://SERVER_IP:3000 to finish the web installer
services:
  server:
    image: gitea/gitea:1.22
    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=CHANGE_ME_STRONG_DB_PW
      # correct clone URLs — set to your domain once DNS is ready:
      - GITEA__server__DOMAIN=git.example.com
      - GITEA__server__ROOT_URL=https://git.example.com/
      - GITEA__server__SSH_PORT=222
      - GITEA__service__DISABLE_REGISTRATION=true
    volumes:
      - ./gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3000:3000"   # web UI — front with a TLS reverse proxy in production
      - "222:22"      # git-over-SSH (host 222 -> container 22)
    depends_on:
      - db
    networks:
      - gitea

  db:
    image: postgres:16
    container_name: gitea-db
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=CHANGE_ME_STRONG_DB_PW
      - POSTGRES_DB=gitea
    volumes:
      - ./postgres:/var/lib/postgresql/data
    networks:
      - gitea

networks:
  gitea:
    external: false

Файрвол

Порты для открытия

ПортПротоколНазначение
3000TCPВеб-интерфейс Gitea и HTTP git — в продакшене держите за TLS reverse proxy (Caddy/Nginx)
222TCPGit по SSH (порт хоста связан с портом 22 контейнера) для клонирования/push по SSH-ключам
443TCPHTTPS через ваш reverse proxy после настройки домена и сертификата
22TCPSSH хоста для администрирования — держите на отдельном от 222 порту Gitea и только по ключам

Подбор оптимального размера

Какой план вам нужен

Light

VPS Nano/Small (1-2 vCPU, 2 GB RAM)

Один разработчик или горстка пользователей, несколько десятков репозиториев, без CI. Gitea в простое потребляет около 150-200 МБ RAM.

Medium

VPS Pro (2-4 vCPU, 4-8 GB RAM)

Небольшая команда, активные pull request'ы, плюс один-два runner'а Gitea Actions для CI. Добавьте отдельный том для больших артефактов релизов.

Heavy

Dedicated (или Storage VPS для репозиториев)

Много одновременных пользователей, крупные монорепозитории, высокая параллельность CI или медиа с большим объёмом LFS. Выделенный CPU обеспечивает быструю работу clone/pack; сочетайте с тарифом Storage для данных репозиториев/LFS.

Лучшие локации: Выберите локацию privacy-уровня — Швейцария (CH) и Исландия (IS) обеспечивают наиболее надёжную защиту данных для исходного кода, а Нидерланды (NL), Румыния (RO), Молдова (MD) и Люксембург (LU) — надёжные офшорные альтернативы. Выбирайте регион ближе к вашим контрибьюторам, чтобы снизить задержку clone/push, поскольку git-запросы чувствительны к задержке.

Обеспечьте полную защиту

Чек-лист по усилению защиты

  • Никогда не открывайте порт 3000 напрямую в интернет — разместите Gitea за TLS reverse proxy (Caddy с авто-HTTPS или Nginx + certbot) и укажите в GITEA__server__ROOT_URL https-домен, чтобы URL клонирования были корректными.
  • Установите DISABLE_REGISTRATION=true (уже указано в compose) сразу после создания аккаунта администратора, чтобы никто не мог самостоятельно зарегистрироваться; приглашайте пользователей вручную или через панель администратора.
  • Держите git-over-SSH на порту 222, а собственный sshd хоста — на другом порту, оба только по ключам (PasswordAuthentication no); Gitea управляет своим authorized_keys внутренне, поэтому не редактируйте его вручную.
  • Включите 2FA для каждого аккаунта и сделайте её обязательной для администратора; вынесите пароль БД из переменных окружения в Docker secret или .env файл с правами 600.
  • Резервируйте ./gitea (репозитории, конфигурацию, LFS) и делайте pg_dump базы данных gitea по расписанию, а также фиксируйте образ на конкретном теге версии (gitea/gitea:1.22), а не latest, чтобы обновления были осознанными — читайте release notes перед повышением major-версий.

Вопросы

Хостинг Gitea — FAQ

Можно ли запускать CI/CD без отдельного сервиса?

Да. В Gitea встроены Actions (совместимые с GitHub Actions). Включите их, затем зарегистрируйте контейнер runner'а (gitea/act_runner) для вашего инстанса. Для реальной CI-нагрузки используйте тариф Medium или выше, чтобы сборки не забирали ресурсы у веб-сервиса.

SQLite, MySQL или PostgreSQL?

SQLite подходит для одного пользователя с лёгкой нагрузкой и не требует контейнера БД. Для команды или роста используйте PostgreSQL, как показано в compose-файле — он гораздо лучше справляется с параллелизмом и легко резервируется через pg_dump.

Как перенести репозитории с GitHub/GitLab?

Встроенный инструмент миграции Gitea импортирует репозиторий по URL, включая issues, PR, релизы и вики. Добавьте токен исходной платформы в форму миграции, чтобы забрать приватные репозитории и метаданные.

Поддерживаются ли большие файлы (Git LFS)?

Да, LFS поддерживается нативно и хранится в /data. Если вы размещаете крупные бинарники или медиа, разместите ./gitea на томе Storage VPS и заложите соответствующий объём диска — объекты LFS быстро накапливаются.

Останется ли мой код приватным на хостинге без KYC?

Ваши репозитории целиком находятся на диске вашего VPS в выбранной вами офшорной юрисдикции; ничего не зеркалируется третьим сторонам. Держите регистрацию отключённой, используйте HTTPS + SSH-ключи, включите 2FA и делайте зашифрованные резервные копии за пределами сервера для полного контроля.

Больше для самостоятельного хостинга

Другие стеки в один клик

Разверните Gitea
в течение следующих 60 секунд.

Безлимитный трафик · DDoS-защита включена · 21 криптовалюта · без KYC.