Gogs est un service Git auto-hébergé indolore.
Ce guide utilise PostgreSQL pour la base de données et Nginx comme proxy inverse. Après avoir suivi ce guide, vous pourrez accéder à l'interface Web de Gogs via HTTPet aux référentiels git hébergés via HTTPet SSH. HTTPSl'accès peut être ajouté en étendant la configuration Nginx.
Vous devriez avoir un système à jour et un utilisateur sudo non root .
Configurer la base de données
Ce guide utilise PostgreSQL. Vous pouvez également utiliser MySQL / MariaDB, SQLite3, MSSQL ou TiDB.
Installez PostgreSQL.
sudo apt-get install -y postgresql
Créez l'utilisateur dans lequel Gogs se connectera à la base de données. Cela vous demandera de créer un mot de passe pour cet utilisateur. Ce mot de passe sera entré ultérieurement dans la configuration de Gog.
sudo -u postgres createuser gogs -P
Créez la base de données Gogs.
sudo -u postgres createdb gogs -O gogs -E UTF8
Configurer le proxy inverse
Ce guide utilise Nginx comme proxy inverse. Vous pouvez également utiliser un autre HTTPserveur qui peut agir comme un proxy inverse tel qu'Apache ou Caddy.
Installez Nginx.
sudo apt-get install -y nginx
Modifier /etc/nginx/sites-enabled/default.
sudo nano /etc/nginx/sites-enabled/default
Trouvez les lignes suivantes.
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
}
Changez-les en ceci.
location / {
proxy_pass http://127.0.0.1:3000;
}
Rechargez Nginx pour utiliser la nouvelle configuration.
sudo systemctl reload nginx
Installer Gogs
Tout d'abord, assurez-vous qu'il gitest installé.
sudo apt-get install -y git
Ensuite, créez l'utilisateur Gogs s'exécutera en tant que et qui sera utilisé pour l'accès SSH git.
sudo useradd -m git
Ensuite, téléchargez et décompressez la version Gogs de votre architecture.
Pour les systèmes 64 bits.
sudo -u git sh -c "curl https://dl.gogs.io/0.11.29/linux_amd64.tar.gz | tar -xz -C /home/git/"
Pour les systèmes 32 bits.
sudo -u git sh -c "curl https://dl.gogs.io/0.11.29/linux_386.tar.gz | tar -xz -C /home/git/"
Configurez Gogs pour qu'il s'exécute au démarrage.
sudo cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system
sudo systemctl enable gogs
Démarrez Gogs.
sudo systemctl start gogs
C'est la seule fois que vous aurez besoin de démarrer Gogs de cette façon.
Configuration initiale
Accédez à http://example.comdans votre navigateur Web. Tu verras:Install Steps For First-time Run
Modifiez les paramètres suivants.
Database Type: PostgreSQL
User: gogs
Password: (password you created earlier)
Domain: example.com
Application URL: http://example.com/
Vous souhaiterez peut-être définir le Application Name, le Email Service Settingset le Server and Other Services Settings. Tous les paramètres peuvent être modifiés ultérieurement en les modifiant /home/git/gogs/custom/conf/app.ini.
Cliquez Install Gogs.
Vous serez redirigé vers une page de connexion. Sign upun nouvel utilisateur maintenant.
Autoriser uniquement l'accès HTTP (S) via Nginx
Ceci est surtout utile lorsque vous utilisez Nginx pour terminer HTTPS.
Ajouter HTTP_ADDR = 127.0.0.1à la [server]section de /home/git/gogs/custom/conf/app.ini.
sudo -u git nano /home/git/gogs/custom/conf/app.ini
Après cette modification, la [server]section ressemblera à ce qui suit.
[server]
DOMAIN = example.com
HTTP_ADDR = 127.0.0.1
HTTP_PORT = 3000
ROOT_URL = http://example.com/
DISABLE_SSH = false
SSH_PORT = 22
START_SSH_SERVER = false
OFFLINE_MODE = false
Redémarrez Gogs pour utiliser la configuration mise à jour.
sudo systemctl restart gogs