Установка сервера Git с веб-интерфейсом Gitea
Установка MariaDB на Centos 8
Установка Git:
# yum install git
Создайте нового системного пользователя, который будет запускать приложение Gitea:
# useradd --system --shell /bin/bash --comment 'Git Version Control' --create-home --home-dir /home/git git
Создать структуру папок
# mkdir -p /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
# chown git:git /var/lib/gitea/{data,indexers,log}
# chmod 750 /var/lib/gitea/{data,indexers,log}
# chown root:git /etc/gitea
# chmod 770 /etc/gitea
Установить MySQL базу (если нет), описано здесь
Создать пользователя и базу для Gitea: gitea
Загрузить Gitea (в примере версия 1.16.5, последнюю версию можно посмотреть перейдя по ссылке):
# wget https://github.com/go-gitea/gitea/releases/download/v1.16.5/gitea-1.16.5-linux-amd64
назначить права на выполнения и переместить к приложениям
# chmod +x gitea-*-linux-amd64
# mv gitea-*-linux-amd64 /usr/local/bin/gitea
проверка версии
# gitea --version
Gitea version 1.12.2 built with GNU Make 4.1, go1.14.4 : bindata, sqlite, sqlite_unlock_notify
создать сервис
# nano /etc/systemd/system/gitea.service
заполнить:
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mariadb.service
[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
# If you want to bind Gitea to a port below 1024 uncomment
# the two values below
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target
перезагрузить демон, запустить Gitea и добавить в автозапуск
# systemctl daemon-reload
# systemctl restart gitea
# systemctl enable gitea
для веб-сервера проксирование нужно настроить на: http://localhost:3000
Пример настройки для NGINX
файл: /etc/nginx/conf.d/gitea.conf
без SSL:
server {
listen 80;
server_name git.example.com;
location / {
proxy_pass http://localhost:3000;
}
}
с SSL:
server {
listen 80;
server_name git.example.com;
location / {
rewrite ^ https://git.example.com$request_uri? permanent;
}
}
server {
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/git.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/git.example.com/privkey.pem;
server_name git.example.com;
location / {
proxy_pass http://localhost:3000;
}
}
Пример настройки для Apache
<VirtualHost *:443>
ServerName git.example.com
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/letsencrypt/live/git.example.com/certificate.crt
SSLCertificateKeyFile /etc/letsencrypt/live/git.example.com/private.key
SSLCertificateChainFile /etc/letsencrypt/live/git.example.com/ca_bundle.crt
<Location />
ProxyPass http://localhost:3000/
Order allow,deny
Allow from all
</Location>
</VirtualHost>