6.8 KiB
Gitea
Le paquet gitea-spk n'a pas été mis à jour pour DSM7. Il faut donc installer Gitea d'après les binaires.
Installation:
Déclarer le répertoire d'installation dans .bashrc:
export GITEA_WORK_DIR=/var/services/homes/bruno/gitea
Préparer les répertoires:
# dossier d'installation
mkdir -p $GITEA_WORK_DIR/{custom,data,log}
#chown -R git:git $GITEA_WORK_DIR/
chown -R bruno:users $GITEA_WORK_DIR/
chmod -R 750 $GITEA_WORK_DIR/
# dossier de configuration
mkdir /etc/gitea
#chown root:git /etc/gitea
chown bruno:users /etc/gitea
chmod 770 /etc/gitea
Télécharger Gitea
wget -O gitea https://dl.gitea.io/gitea/1.15.4/gitea-1.15.4-linux-amd64
chmod +x gitea
mv gitea /usr/local/bin/
Lancer Gitea
gitea web
GITEA_WORK_DIR=/var/lib/gitea/ /usr/local/bin/gitea web -c /etc/gitea/app.ini
Configuration:
Accéder au site:
http://localhost:3000 . Si Safari ne peut y accéder parce que la connexion n'est pas sécurisée (HSTS Policy):
command + ,- Confidentialité -> Gérer les données de sites web...
- Chercher localhost
- Clic Supprimer
DSM -> Portail des applications -> Proxy inversé
| Source | Destination | |
|---|---|---|
| Protocole | HTTPS | HTTP |
| Nom d'hôte | clicclac.synology.me | localhost |
| Port | 3001 | 3000 |
Apache:
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests off
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
</VirtualHost>
Nginx:
server {
listen 80;
server_name git.example.com;
location / {
proxy_pass http://localhost:3000;
}
}
Configuration:
Base: sqlite3 (impossible de se connecter à mariadb)
PATH: = /var/services/homes/bruno/gitea/data/gitea.db
Une fois Gitea installé et configuré, on peut sécuriser le fichier de configuration:
chmod 750 /etc/gitea
chmod 640 /etc/gitea/app.ini
Les repos sont stockés ici:
ROOT = /var/services/homes/bruno/gitea/data/gitea-repositories
et les logs là:
ROOT_PATH = /var/services/homes/bruno/gitea/log
On peut lancer gitea depuis un script:
$ /usr/local/bin/gitea web -c /etc/gitea/app.ini
ou depuis un service.
Service
A installer dans /etc/systemd/system:
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
###
# Don't forget to add the database service dependencies
###
#
#Wants=mysql.service
#After=mysql.service
#
#Wants=mariadb.service
#After=mariadb.service
#
#Wants=postgresql.service
#After=postgresql.service
#
#Wants=memcached.service
#After=memcached.service
#
#Wants=redis.service
#After=redis.service
#
###
# If using socket activation for main http/s
###
#
#After=gitea.main.socket
#Requires=gitea.main.socket
#
###
# (You can also provide gitea an http fallback and/or ssh socket too)
#
# An example of /etc/systemd/system/gitea.main.socket
###
##
## [Unit]
## Description=Gitea Web Socket
## PartOf=gitea.service
##
## [Socket]
## Service=gitea.service
## ListenStream=<some_port>
## NoDelay=true
##
## [Install]
## WantedBy=sockets.target
##
###
[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=bruno
Group=users
WorkingDirectory=/var/services/homes/bruno/gitea/
# If using Unix socket: tells systemd to create the /run/gitea folder, which will contain the gitea.sock file
# (manually creating /run/gitea doesn't work, because it would not persist across reboots)
#RuntimeDirectory=gitea
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=bruno HOME=/var/services/homes/bruno GITEA_WORK_DIR=/var/services/homes/bruno/gitea
# If you install Git to directory prefix other than default PATH (which happens
# for example if you install other versions of Git side-to-side with
# distribution version), uncomment below line and add that prefix to PATH
# Don't forget to place git-lfs binary on the PATH below if you want to enable
# Git LFS support
#Environment=PATH=/path/to/git/bin:/bin:/sbin:/usr/bin:/usr/sbin
# If you want to bind Gitea to a port below 1024, uncomment
# the two values below, or use socket activation to pass Gitea its ports as above
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE
###
[Install]
WantedBy=multi-user.target
Activer le service gitea au démarrage:
$ sudo systemctl enable gitea
Démarrer le service gitea:
$ sudo systemctl start gitea
Vérifier le status de gitea:
$ sudo systemctl status -l gitea
$ ps auxw | grep gitea
bruno 8220 0.8 6.2 2038820 122672 ? Ssl 20:26 0:02 /usr/local/bin/gitea web --config /etc/gitea/app.ini
bruno 9790 0.0 0.0 2860 184 pts/1 D+ 20:32 0:00 grep gitea
Mise-à-jour
Depuis un script dsm7-gitea-update.sh:
#!/bin/bash
GITEA_BIN=`which gitea`
if [ "$GITEA_BIN" == "*gitea*" ]; then
echo "Gitea is not installed..."
exit 0
fi
GITEA_INSTALLED=`$GITEA_BIN --version | cut -d \ -f 3`
LATEST_URL=`curl -Ls -o /dev/null -w %{url_effective} https://github.com/go-gitea/gitea/releases/latest`
#https://github.com/go-gitea/gitea/releases/tag/v1.11.3
#echo LATEST_URL = ${LATEST_URL}
GITEA_VERSION=${LATEST_URL##*/v}
if [ "${GITEA_INSTALLED}" != "${GITEA_VERSION}" ]; then
echo "No Gitea update available..."
exit 0
else
echo "Installed: "${GITEA_INSTALLED}
echo "Latest: "${GITEA_VERSION}
a=$(echo -e "Do you wanna update Gitea to ${GITEA_VERSION} ? (y/n)")
read -p "$a" choice
if [ "$choice" == "y" ] || [ "$choice" == "Y" ]; then
rm -rf /tmp/gitea
mkdir /tmp/gitea
cd /tmp/gitea
sudo systemctl stop gitea
echo "Download latest Gitea..."
GITEA_ARCHIVE=gitea-${GITEA_VERSION}-linux-amd64.xz
#DOWNLOAD_URL=https://github.com/go-gitea/gitea/releases/download/v${GITEA_VERSION}/gitea-${GITEA_VERSION}-linux-amd64.xz
DOWNLOAD_URL=https://github.com/go-gitea/gitea/releases/download/v${GITEA_VERSION}/${GITEA_ARCHIVE}
echo ${DOWNLOAD_URL}
wget -P /tmp/gitea ${DOWNLOAD_URL}
# sudo opkg install xz
# sudo opkg install tar (sinon tar: unrecognized option '--exclude=INFO.in')
xz --decompress ${GITEA_ARCHIVE}
echo "Installing Gitea ${GITEA_VERSION}..."
filename="${GITEA_ARCHIVE%.*}"
if [[ "$filename" =~ gitea ]]; then
mv $filename gitea
sudo mv gitea `dirname "$GITEA_BIN"`
fi
sudo chmod +x ${GITEA_BIN}
sudo chown root:root ${GITEA_BIN}
sudo systemctl start gitea
sudo systemctl status gitea
fi
fi
exit 1