Repolode
littledivy

littledivy/durable-git

Git-сервер, в котором каждый репозиторий — это Durable Object: он работает на Cloudflare Workers или размещается самостоятельно на celld.

Open source альтернатива:GitHub

Звёзды
264
Форки
13
Открытые issues
0
Последний коммит
2 месяца назад

Что это?

dgit — Git-сервер на базе Cloudflare Durable Objects. Каждый репозиторий — отдельный объект с собственной закрытой базой SQLite, в которой хранятся объекты и refs; он поддерживает git smart HTTP protocol, поэтому с ним работают обычные Git-клиенты — можно клонировать репозитории, получать и отправлять изменения. Файловая система и origin-сервер не нужны, а репозитории, к которым никто не обращается, обходятся почти бесплатно. Чтение открыто для всех, для отправки изменений нужен токен, а отправка в репозиторий с новым именем создаёт его.

Проект реализует Git на TypeScript: в него входят обработка pkt-line, разбор packfile с разрешением delta, создание pack-файлов и алгоритм diff Майерса. Если подключён бакет R2, содержимое pack-файлов хранится в R2, а индекс — в SQLite; полные клоны кэшируются и передаются потоком из Worker. Поддерживаются поверхностное клонирование, инкрементальное получение изменений и принудительное обновление.

Встроенный веб-интерфейс оформлен в стиле cgit: в нём есть представления журнала, дерева и файлов с подсветкой синтаксиса, blame, diff, вывод в формате format-patch, снимки в tar.gz и zip, а также Atom-ленты. Пакет можно использовать и как библиотеку, чтобы задавать собственные хуки авторизации и отправки изменений.

Ключевые возможности

  • 01Поддерживает git smart HTTP protocol, поэтому обычные Git-клиенты работают без изменений
  • 02Хранит каждый репозиторий в отдельном Durable Object с SQLite
  • 03Поддерживает необязательный бакет R2 для хранения pack-файлов и кэширования полных клонов
  • 04Поддерживает поверхностное клонирование, инкрементальное получение изменений и thin packs
  • 05Предоставляет веб-интерфейс в стиле cgit с журналом, blame, diff и снимками
  • 06Может использоваться как библиотека с собственными хуками авторизации и отправки изменений

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

  • Размещение закрытых Git-репозиториев на Cloudflare Workers без управления сервером
  • Самостоятельное развёртывание Git-сервера на celld с реплицируемым хранилищем
  • Добавление Git-хостинга с собственным контролем доступа в существующее приложение
  • Просмотр истории репозитория и скачивание снимков через веб-интерфейс

Быстрый старт

  1. 1

    Установить зависимости

    npm install
  2. 2

    Развернуть Worker в Cloudflare

    npx wrangler deploy
  3. 3

    Задать секрет push password

    npx wrangler secret put GIT_TOKEN
  4. 4

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

    git remote add origin https://<your-host>/myrepo.git

Что важно знать

  • Pull request отключены; вклад в проект можно отправить по электронной почте с помощью git format-patch.
  • Очень большие клоны со всей историей могут превысить ограничения Cloudflare Workers по CPU; для самых крупных репозиториев рекомендуется использовать celld.
  • При развертывании в Cloudflare Workers действуют ограничения на использование памяти и CPU для запросов.

Темы

Частые вопросы

Что такое durable-git?
Git-сервер, в котором каждый репозиторий — это Durable Object: он работает на Cloudflare Workers или размещается самостоятельно на celld. dgit — Git-сервер на базе Cloudflare Durable Objects. Каждый репозиторий — отдельный объект с собственной закрытой базой SQLite, в которой хранятся объекты и refs; он поддерживает git smart HTTP protocol, поэтому с ним работают обычные Git-клиенты — можно клонировать репозитории, получать и отправлять изменения. Файловая система и origin-сервер не нужны, а репозитории, к которым никто не обращается, обходятся почти бесплатно. Чтение открыто для всех, для отправки изменений нужен токен, а отправка в репозиторий с новым именем создаёт его.
durable-git можно использовать бесплатно? Какая у него лицензия?
durable-git распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
durable-git всё ещё поддерживается?
Обновлялся за последние 6 месяцев. Последний коммит в durable-git — 21 авг. 2026 г..
Для чего можно использовать durable-git?
Размещение закрытых Git-репозиториев на Cloudflare Workers без управления сервером Самостоятельное развёртывание Git-сервера на celld с реплицируемым хранилищем Добавление Git-хостинга с собственным контролем доступа в существующее приложение Просмотр истории репозитория и скачивание снимков через веб-интерфейс
Как установить durable-git?
Установить зависимости: npm install Развернуть Worker в Cloudflare: npx wrangler deploy Задать секрет push password: npx wrangler secret put GIT_TOKEN Добавить развернутый хост как удаленный репозиторий и выполнить push: git remote add origin https://<your-host>/myrepo.git
Где скачать durable-git?
Исходный код и инструкции по установке — на GitHub: https://github.com/littledivy/durable-git

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Виртуальная файловая система в Cloudflare Durable Object, которая предоставляет AI-агентам рабочее пространство с подключаемыми средами выполнения на базе контейнеров или Workers.

9,6 тыс.565TypeScriptMITОбновлён 9 часов назад