gitea
installlation des paquets essentiels¶
apt -y install git vim bash-completion sudo wget
Création de l'utilisateur¶
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
Préparation de la base¶
sudo apt -y install mariadb-server
sudo mysql_secure_installation
sudo mysql -u root -p
CREATE DATABASE gitea;
GRANT ALL PRIVILEGES ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY "StrongP@ssword";
FLUSH PRIVILEGES;
QUIT;
Installation du paquet gitea¶
Initialiser la version
export VER=1.12.5
wget https://github.com/go-gitea/gitea/releases/download/v${VER}/gitea-${VER}-linux-amd64
chmod +x gitea-${VER}-linux-amd64
sudo mv gitea-${VER}-linux-amd64 /usr/local/bin/gitea
Configuration de systemD¶
sudo mkdir -p /etc/gitea /var/lib/gitea/{custom,data,indexers,public,log}
sudo chown git:git /var/lib/gitea/{data,indexers,log}
sudo chmod 750 /var/lib/gitea/{data,indexers,log}
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
puis l'unité systemD :
cat << EOF > /etc/systemd/system/gitea.service
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
After=mysql.service
[Service]
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
[Install]
WantedBy=multi-user.target
EOF
On prend compte les changements et on démarre le service
sudo systemctl daemon-reload
sudo systemctl enable --now gitea
Par défaut gitea écoute sur le port 3000
NGINX reverse proxy¶
server {
listen 80;
server_name URL;
return 301 URL$request_uri;
}
server {
listen 443 ssl http2;
server_name URL;
# Let's Encrypt:
ssl_certificate /etc/letsencrypt/live/URL/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/URL/privkey.pem;
# Add common Conf:
include /etc/nginx/RVPRX_common.conf;
# LOGS
gzip on;
access_log /var/log/nginx/URL_access.log;
error_log /var/log/nginx/URL_error.log;
location / {
proxy_pass http://IP:PORT;
}
}
NGINX reverse proxy with sub path¶
server {
listen 80;
server_name URL;
return 301 URL$request_uri;
}
server {
listen 443 ssl http2;
server_name URL;
# Let's Encrypt:
ssl_certificate /etc/letsencrypt/live/URL/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/URL/privkey.pem;
# Add common Conf:
include /etc/nginx/RVPRX_common.conf;
# LOGS
gzip on;
access_log /var/log/nginx/URL_access.log;
error_log /var/log/nginx/URL_error.log;
location /git/ { # Note: Trailing slash
proxy_pass http://IP:PORT/; # Note: Trailing slash
}
}
et rajouter au /etc/gitea/app.ini
:
[server] ROOT_URL = http://git.example.com/git/
Terminer l'installation¶
- se rendre sur https://URL:PORT/install
Script permettant de surveiller les nouvelles versions¶
by zordhak
#!/usr/bin/env bash
# Script permettant de vérifier si une mise à jour de Gitea est disponible
# condition : gitea ne doit pas être renommé après son téléchargement dans /usr/local/bin, exemple :
# gitea -> gitea-1.13.6
# gitea-1.13.5
# gitea-1.13.6
version_local=$(readlink /usr/local/bin/gitea)
version_upstream=$(curl -s https://dl.gitea.io/gitea|grep -Eo '"Current Release [0-9]+\.[0-9]+\.[0-9]+'|grep -Eo [0-9]+\.[0-9]+\.[0-9])
if [ "$version_local" = "gitea-$version_upstream" ] ; then
echo "[OK] Gitea $version_local"
exit 0
else
echo "[WARNING] Gitea local : $version_local - upstream : $version_upstream"
exit 2
fi