Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

Git — это система контроля версий, используемая разработчиками программного обеспечения, кодировщиками и ремонтниками для совместной работы над проектами с открытым исходным кодом и их распространения. Используя Git, вы можете работать с проектами любого размера, вносить изменения в код и объединять их, а также разрешать пользователям клонировать ваши репозитории на свои собственные машины. Экосистема с открытым исходным кодом работает на Git, и многие проекты, представленные на MakeUseOf.com, используют ресурсы GitHub. С Gitea вы можете размещать собственные полнофункциональные репозитории Git на Raspberry Pi у себя дома.

Зачем размещать собственный сервис Git на Raspberry Pi вместо использования GitHub?

С 55 миллионами пользователей, GitHub — крупнейший репозиторий бесплатного программного обеспечения с открытым исходным кодом. на Земле, но ее нынешний владелец, Microsoft, не подходит на роль хранителя. Предыдущие руководители компании описывали Linux и Стандартную общественную лицензию как «раковую опухоль», а большинство собственных продуктов Microsoft являются проприетарными и имеют закрытый исходный код.

instagram viewer

Владение Microsoft также привело к тому, что GitHub изучает некоторые сомнительные с этической точки зрения технологии, в частности, GitHub Copilot, инструмент искусственного интеллекта, помогающий программистам генерировать код. Второй пилот обучался на данных с GitHub, что может нарушать условия лицензий Creative Commons, используемых кодировщиками.

Используя GitHub, разработчики создают еще одно узкое место, в котором инновации могут быть задушены, подорваны и подвергнуты легкомысленному вмешательству.

Gitea позволяет настроить собственный Git-сервер на Raspberry Pi

Gitea — это ответвление Gogs и управляемое сообществом облегченное решение для хостинга кода, написанное на Go и опубликованное под лицензией MIT. Он нацелен на более открытую и быструю модель разработки, чем его предшественник, и будет работать на машинах даже со скромными ресурсами, таких как Raspberry Pi. Вы сможете работать со своими dotfiles, пользовательские ISO-образы Ubuntu, скрипты Bash и утилиты Java и Python, не опасаясь, что они будут подвергнуты санкциям в соответствии с Законом об авторском праве в цифровую эпоху, будут использованы для обучения нечестного программного обеспечения или иным образом выйдут из-под вашего контроля.

Как установить Gitea на Raspberry Pi

Gitea поставляется с несколькими способами установки, но самый простой — через Docker. Если они еще не запущены на вашем Raspberry Pi, установить Docker и Docker Compose сейчас.

Файлы, которые вы храните на своем сервере Gitea, потенциально могут занимать много места, поэтому мы рекомендуем использование внешнего хранилища с Raspberry Pi, и использовать его в качестве места для установки Gitea.

Подключитесь к вашему Pi через SSH, затем перейдите в место, где вы хотите установить Gitea, и создайте новый каталог, а затем перейдите в него:

мкдир гитеа
CD Гитея

Создайте новый файл с помощью nano:

наноdocker-compose.yml

... и вставьте в него следующий код:

версия: "3"

сети:
гитея:
внешний: ложный

услуги:
сервер:
изображение: gitea/gitea: последний
имя_контейнера: gitea
среда:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=дб: 3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
перезапуск: всегда
сети:
- гитея
тома:
- ./gitea:/данные
- /etc/часовой пояс:/etc/часовой пояс: гб
- /etc/localtime:/etc/localtime: гб
порты:
- "3000:3000"
- "222:22"
зависит от:
- дб

дБ:
изображение: mysql: 8
перезапуск: всегда
среда:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
сети:
- гитея
тома:
- ./mysql:/var/lib/mysql

Измените часовые пояса на свой язык и выберите надежный пароль для своей базы данных, затем сохраните и выйдите из nano с помощью Ctrl + О, затем Ctrl + Х.

Входить:

docker-compose up -d

…чтобы вызвать docker-compose в автономном режиме. Docker-compose извлечет несколько образов для Gitea и Maria DB и настроит контейнеры. В зависимости от скорости вашего соединения это может занять некоторое время.

Когда вы вернетесь в командную строку:

docker-compose ps

… должны показывать «gitea» и «gitea_db_1» как «up». Теперь вы можете посетить страницу начальной настройки вашего сайта Gitea по адресу ваш.pi.локальный.ip.адрес: 3000.

Ничего пока не меняйте. Если вы планируете получить доступ к своему экземпляру Gitea через Интернет, вам нужно сначала немного подготовиться.

Доступ к вашему экземпляру Gitea через Интернет

Вы хотите иметь возможность ввести стандартный URL-адрес, чтобы получить доступ к вашему экземпляру Gitea, поэтому вам понадобится Apache для обработки прокси. Установите Apache с помощью:

Судо подходит установить апач2

Теперь запустите и включите Apache с помощью следующих команд:

sudo systemctl начинать апач2
sudo systemctl давать возможность апач2

Включите прокси-модули Apache с помощью:

sudo a2enmod прокси
sudo a2enmod proxy_http

Выберите доменное имя или имя субдомена от авторитетного регистратора. Затем на странице настроек вашего регистратора найдите параметры «Расширенный DNS» и добавьте новый А записывать. Установить Хозяин поле для "@" и поле значения на ваш статический IP-адрес. Установите значение TTL (Time to Lease) как можно меньше, затем сохраните.

Откройте страницу администрирования маршрутизатора и найдите раздел под названием Перенаправление порта, Сопоставление портов, или Управление портом.

Создайте новую запись для HTTP-запросов. Установите как локальный, так и общедоступный порт на 80и локальный IP-адрес на IP-адрес вашего Raspberry Pi.

Второй открытый порт требуется для HTTPS-запросов. Установите как локальный, так и общедоступный порт на 443, и снова локальный IP-адрес на IP-адрес вашего Pi.

Наконец, вам нужен открытый порт для SSH-запросов к вашему Git-серверу. Установите как локальный, так и общедоступный порт на 222и локальный IP-адрес на IP-адрес вашего Pi.

Вы будете использовать Certbot для получения сертификатов безопасности и ключей. Добавьте репозиторий Certbot, обновите его и установите Certbot:

sudo add-apt-repository ppa: certbot/certbot
Судо подходит обновлять
Судо подходитполучать установить python3-certbot-apache

Измените каталоги и создайте новый файл с помощью nano:

CD /etc/apache2/sites-available/
наноГитея.conf

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

<Виртуальный хост *:80>Имя_сервера ваше-домен-имя.tldProxyPass / http://127.0.0.1:3000/ProxyPassReverse / http:/127.0.0.1:3000/ProxyPreserveHost включен</VirtualHost>

Сохраните и выйдите из nano с помощью Ctrl + О, затем Ctrl + Икси включите новый файл конфигурации с помощью:

судоa2ensiteГитея.conf

Перезапустите Апач:

перезагрузка службы sudo apache2

Запустите Certbot с помощью:

sudo certbot

…и выберите свое доменное имя из списка. Certbot получит и установит сертификаты и ключи. Когда вы вернетесь к приглашению, снова перезапустите Apache:

перезагрузка службы sudo apache2

Настройка инстанса Gitea

Теперь вы можете посетить свой экземпляр Gitea в браузере по адресу https://your-domain-name.tld. Вы сможете установить тип базы данных, пароль и другие переменные в первом разделе. Это будут значения, которые вы указали в файле docker-compose, и они уже должны быть заполнены, поэтому их не нужно менять.

В общие настройки, установить Заголовок сайта на подходящий, Домен сервера должно быть вашим доменным именем и Порт SSH-сервера должен быть установлен на 222. Базовым URL-адресом должно быть ваше доменное имя, включая «HTTPS://».

Когда вы закончите, нажмите большой синий Установить Гитею кнопка. Вас встретит большая зеленая чашка чая, имя и слаг, которые вы дали экземпляру. Чтобы создать своего первого пользователя, нажмите «Зарегистрироваться» в правом верхнем углу страницы, затем введите свои данные. Поздравляем!

Чтобы запретить кому-либо еще регистрировать и размещать собственные репозитории на вашем сервере Git, вам необходимо отредактировать app.ini файл. Если вы изначально создали свой Гитея каталог в / (корневой) каталог, введите:

нано /gitea/gitea/gitea/conf/app.ini

Прокрутите вниз до раздела услуг и установите DISABLE_REGISTRATION к истине.

Сохраните и выйдите из nano с помощью Ctrl + О, затем Ctrl + ИКС, затем перезапустите свои контейнеры:

docker-compose downdocker-compose up -d

Использование Гитеи

Если вы когда-либо пользовались GitHub, вы сразу же почувствуете себя в Gitea как дома. После входа в систему вы увидите, что нет доступных репозиториев. Создайте его, нажав на + подпишите справа от страницы и дайте ему разумное имя.

Вы можете сделать репозиторий приватным, установив флажок, или оставить его открытым для всеобщего обозрения. Установите флажок, чтобы инициализировать файл readme, затем нажмите Создать репозиторий создать свой первый репозиторий! Вы можете вносить и фиксировать изменения, загружать файлы и редактировать так же, как если бы это был GitHub.

Нажмите на SSH, чтобы скопировать адрес, и вы не сможете клонировать репозитории на свой локальный компьютер, получая вместо этого сообщение об ошибке: «Пожалуйста, убедитесь, что у вас есть правильные права доступа и репозиторий существует». Сначала вам нужно добавить ключ SSH вашего локального компьютера в Gitea. Для этого скопируйте вывод из:

кошка ~/.ssh/id_rsa.pub

В веб-интерфейсе Gitea щелкните изображение своего профиля, затем выберите настройки> Ключи SSH/GPG. Нажмите на Добавить ключи вставьте только что скопированный ключ.

Теперь вы можете взаимодействовать со своим собственным репозиторием Git на своем собственном сервере Git на своем собственном Raspberry Pi!

Используйте свой экземпляр Gitea для создания потрясающих программных проектов

Git — отличный инструмент для совместной работы над потрясающими проектами, но даже без команды он отлично подходит для организации собственного рабочего процесса и создания потрясающего программного обеспечения или конфигураций. Используйте его, чтобы отслеживать свои файлы, когда вы изучаете новый язык программирования или настраиваете свою настольную систему так, чтобы она была максимально эффективной.