Меню

Собственный репозиторий на Gitea с веб-интерфейсом (аналог GitHub)

Собственный репозиторий на Gitea с веб-интерфейсом (аналог GitHub)

Задача: Развернуть git-репозиторий на собственном сервере с помощью Gitea — для ведения проектов, с веб-интерфейсом и поддержкой многопользовательской работы.
Дополнительно можно настроить systemd-сервис для автоматического запуска Gitea при перезагрузке сервера, что бы не запускать бинарник вручную
Создаем файл:
Код
nano /etc/systemd/system/gitea.service

С содержимым:
Код
[Unit]
Description=Gitea
After=network.target

[Service]
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
Environment=GITEA_WORK_DIR=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
ExecReload=/bin/kill -HUP $MAINPID
Restart=always

[Install]
WantedBy=multi-user.target

Включаем:
Код
systemctl daemon-reload  # Перезагружаем systemd, чтобы он увидел новый сервис
systemctl enable gitea    # Включаем автозапуск при старте системы
systemctl start gitea     # Запускаем сервис

И редактируем файл:
Код
nano /etc/letsencrypt/renew-hook.sh

Вместо перезапуска бинарника перезапускаем сервис gitea:
Код
#!/bin/bash
chown -R git:git /etc/letsencrypt/live/git.camouf.ru/
chown -R git:git /etc/letsencrypt/archive/git.camouf.ru/
chmod -R 755 /etc/letsencrypt/live/
chmod -R 755 /etc/letsencrypt/archive/

systemctl restart gitea
Более простой вариант, что бы не мучаться с systemd:
- Устанавливаем на сервер nginx,
- убираем все настройки letsencrypt из конфигурации gitea
- В nginx добавляем проксирование на порт gitea
Код
server {
    listen 443;
    server_name ВАШ_ДОМЕН;

    #Здесь certbot сам пропишет пути к сертификатам

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

После этого ваша gitea будет доступна по домену, с https и без указания порта 3000.
Форма ответов
 
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
Загрузить файлы
 

Блог-note: заметки разработчика

Массово: применить наценку ко всем товарам каталога с пересчетом от базовой.

Рассмотрим как, в магазине работающем на 1С-битрикс, массово применить наценку на все товары каталога. Устанавливать буд...

Связанные элементы в карточке товара, с помощью catalog.section

Достаточно часто, при разработке магазинов на битрикс, требуется выводить связанные элементы внутри карточки товара. Д...

Вывести разделы инфоблока в которых находится элемент Битрикс

Если нужно в карточке товара или новости, вывести структуру разделов в котором находится элемент. С одной стороны, это у...

Базовая защита "Битрикс виртуальная машина" от DDoS атак.

Данный способ защиты не панацея, и скорее всего не спасет от профессиональной DDoS атаки, когда ваш сервер на CentOS под...

Дать пользователю возможность быстро отредактировать материал

На одном из разрабатываемых сайтов, пользователи формируют его контент. После регистрации, становится доступен персональ...

Помечаем новинки лейблом в каталоге битрикс

Достаточно часто, при разработке каталога товаров или интернет магазина на системе управления Битрикс, встает задача как...

Изменить размер картинок по ID файла, в 1C-Битрикс

Задача: изменить размер картинок загруженных в элементы инфоблока, для оптимизации их размера и подгонки под содержимое...

Кастомизация поля input type file, свой внешний вид

Задача: Поле input type="file" предоставляет возможность загрузки файлов на веб-странице. Однако стандартный в...

Как вывести картинки к разделам на базе _ext меню

Просто для эстетической красоты, нужно вывести в меню разделов сайта картинки или иконки. Достаточно популярный метод, э...