Выбор бесплатного локального сервера Git — Gitea — победитель!
Попытаться выбрать хороший сервер Git с открытым исходным кодом
Хотите перенести свои проекты с открытых облачных провайдеров git и рассмотреть возможность локального размещения внутреннего сервера git?
Выбор серверов
Запуск собственного сервера git не должен быть слишком сложным, правда?
Теперь выбираем бесплатный сервер git из очень короткого списка вариантов. Bonobo Gogs vs Gitea vs Gitlab.
Bonobo бесплатен, но работает только под Windows, и у него нет версии для Linux.
Gitlab богат на функции и требует значительных ресурсов, это опыт на руках. Это коммерческий продукт, но имеет бесплатную версию также.
Gogs очень легковесный, я пробовал его, и он работал хорошо, но у него нет реестра контейнеров.
Сравнение в моем мнении выгодно для Gitea.
Оба Gitea и Postgresql в контейнерах Docker
https://docs.gitea.com/next/installation/install-with-docker
cd ~
mkdir gitea
cd gitea
docker-compose.yml:
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:latest
container_name: gitea
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=gitea
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: postgres:14
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea
- POSTGRES_DB=gitea
networks:
- gitea
volumes:
- ./postgres:/var/lib/postgresql/data
затем
docker-compose up -d
перейдите по адресу http://localhost:3000/
для остановки
docker-compose down
объемы останутся
Использование ресурсов
Показывает, что контейнеры используют 260 МБ оперативной памяти и немного процессора.
Общий размер образов Docker составляет 583 МБ. 422 МБ из них занимает образ postgres:14. Образ postgres:14-alpine занимает 239 МБ, может также подойти, если ресурсы ограничены.
PS. После миграции 10+ репозиториев в gitea, некоторые ветвления и клонирование контейнера gitea используют сейчас 420 МБ оперативной памяти. Нужно следить за этим.
Синхронизация двух репозиториев
https://docs.gitea.com/next/usage/repo-mirror
Можно выполнять push и pull.
pull
- Выберите Новая миграция в меню Создать… в правом верхнем углу.
- Выберите удаленную службу репозитория.
- Введите URL репозитория.
- Если репозиторий требует аутентификации, заполните свои данные аутентификации.
- Поставьте галочку Это репозиторий будет зеркалом.
- Выберите Мигрировать репозиторий, чтобы сохранить настройки.
Теперь репозиторий будет периодически зеркалироваться с удаленного репозитория. Вы можете принудительно синхронизировать, выбрав Синхронизировать сейчас в настройках репозитория.
Можно настроить только pull-зеркалирование для репозиториев, которые еще не существуют на вашем экземпляре. Как только репозиторий создан, вы не сможете больше преобразовать его в pull-зеркало.
Настройка HTTPS
Есть больше в настройках SSL: https://docs.gitea.com/next/administration/https-setup
но мы попробуем это сейчас (взято с сайта gitea):
Использование встроенного сервера
Перед включением HTTPS убедитесь, что у вас есть действительные SSL/TLS-сертификаты. Вы можете использовать самогенерируемые сертификаты для оценки и тестирования. Пожалуйста, выполните
gitea cert --host [HOST]
чтобы сгенерировать самоподписанный сертификат.
Если вы используете Apache или nginx на сервере, рекомендуется проверить руководство по обратному прокси.
Чтобы использовать встроенную поддержку HTTPS в Gitea, вы должны изменить файл app.ini:
[server]
PROTOCOL = https
ROOT_URL = https://git.example.com:3000/
HTTP_PORT = 3000
CERT_FILE = cert.pem
KEY_FILE = key.pem
Обратите внимание, что если ваш сертификат подписан третьей стороной (то есть не самоподписанный), то cert.pem должен содержать цепочку сертификатов. Сертификат сервера должен быть первым элементом в cert.pem, за ним следуют промежуточные сертификаты (если есть). Корневой сертификат не требуется, потому что клиент должен уже иметь его, чтобы установить доверительные отношения. Чтобы узнать больше о значениях конфигурации, пожалуйста, посетите Листок подсказок по конфигурации.
Для поля CERT_FILE или KEY_FILE путь к файлу относится к переменной окружения GITEA_CUSTOM, если это относительный путь. Он также может быть абсолютным путем.
Настройка перенаправления HTTP Сервер Gitea может слушать только один порт; чтобы перенаправить HTTP-запросы на порт HTTPS, вам нужно включить службу перенаправления HTTP:
[server]
REDIRECT_OTHER_PORT = true
; Порт, на котором должна слушать служба перенаправления
PORT_TO_REDIRECT = 3080
Если вы используете Docker, убедитесь, что этот порт настроен в вашем файле docker-compose.yml.
Использование обратного прокси
В этой статье: Gitea-ssl я настраиваю Apache как обратный прокси с завершением TLS.
Список дел
Настройка ssh: https://docs.gitea.com/next/installation/install-with-docker
тестирование резервного копирования и восстановления.