Мінімалістичний гостьовий репозиторій Git
Я тут давно експериментую з різними форматами публікації коду Git, наприклад:
Radicle: децентралізований P2P хостинг Git/DVCS
Але все це "товсті", голодні до CPU та пропускного каналу крипто-цяцьки. Все-таки, я бачу оптимальним хостинг власного репозиторію на своєму сервері: допоки він живий - качайте, децентралізуйте (Git по своїй природі такий)
От я в принципі вирішив опублікувати дзеркало індексу Crates для проксі Kellnr:
Організація локального дзеркала залежностей Cargo з Kellnr
Доступні платформи типу Gitea, Forgejo і навіть штатний httpd - це про сошл, а мені потрібно просто віддати код.
sudo dnf install git-daemon
Створімо умовний публічний корінь, де лежатиме репозиторій:
mkdir /path/to/git
Копіюємо до нього репозиторій з файлової системи або клонуємо віддалений:
cd /path/to/git git clone https://github.com/rust-lang/crates.io-index.git
Відкривши на фаєрволі стандартний порт 9418/TCP, запускаємо сервер:
git daemon --verbose --base-path=/path/to/git --listen=0.0.0.0 --reuseaddr --export-all
- аргумент `--verbose` потрібен тільки для відлагодження
- аргумент `--export-all` автоматично зробить підтеки репозиторії доступними за псевдонімом (у цьому випадку `crates.io-index.git`)
- якщо не вказувати `--export-all`, тоді потрібно додати до кореня цільового репозиторію файл `git-daemon-export-ok`
Ось власне і все! Забрати репозиторій (доступний виключно на читання) можна командою:
git clone git://0.0.0.0/crates.io-index.git
- `0.0.0.0` - ваш IP
/uk/