123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671 |
- <!DOCTYPE html>
- <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
- <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
- <head>
- <meta charset="utf-8">
- <meta http-equiv="X-UA-Compatible" content="IE=edge">
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
-
-
-
- <title>Installation de git et de gogs - The Yojik Server Installation Guide</title>
-
- <link rel="shortcut icon" href="../img/favicon.ico">
-
- <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>
- <link rel="stylesheet" href="../css/theme.css" type="text/css" />
- <link rel="stylesheet" href="../css/theme_extra.css" type="text/css" />
- <link rel="stylesheet" href="../css/highlight.css">
-
- <script>
- // Current page data
- var mkdocs_page_name = "Installation de git et de gogs";
- var mkdocs_page_input_path = "19-dixneuf.md";
- var mkdocs_page_url = "/19-dixneuf/";
- </script>
-
- <script src="../js/jquery-2.1.1.min.js"></script>
- <script src="../js/modernizr-2.8.3.min.js"></script>
- <script type="text/javascript" src="../js/highlight.pack.js"></script>
- <script src="../js/theme.js"></script>
-
- </head>
- <body class="wy-body-for-nav" role="document">
- <div class="wy-grid-for-nav">
-
- <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
- <div class="wy-side-nav-search">
- <a href=".." class="icon icon-home"> The Yojik Server Installation Guide</a>
- <div role="search">
- <form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
- <input type="text" name="q" placeholder="Search docs" />
- </form>
- </div>
- </div>
- <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
- <ul class="current">
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="..">Home</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../1-un/">Installation d'un serveur Debian/Stretch sécurisé</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../2-deux/">Premières étapes de sécurisation du serveur</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../3-trois/">Configuration du réseau</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../4-quatre/">Installation d'un serveur de temps</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../5-cinq/">Installation d'un pare-feu</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../6-six/">Contrer les attaques de brute-force avec fail2ban</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../7-sept/">Installation d'un serveur de courrier basique</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../8-huit/">Installation du serveur DNS</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../9-neuf/">Installation d'un serveur web</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../10-dix/">Installation de dovecot et de l'authentification</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../11-onze/">Installation des certificats letsencrypt</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../12-douze/">Ajout des enregistrements SPF et DKIM au fichier de zone DNS</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../17-dixsept/">Installation de programmes de surveillance du serveur</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 ">
- <a class="" href="../18-dixhuit/">Installation d'un webmail</a>
-
- </li>
- <li>
-
- <li>
- <li class="toctree-l1 current">
- <a class="current" href="./">Installation de git et de gogs</a>
-
- <ul>
-
- <li class="toctree-l3"><a href="#installation-de-git-et-de-gogs">Installation de git et de gogs</a></li>
-
- <li><a class="toctree-l4" href="#installation-de-git">Installation de git</a></li>
-
- <li><a class="toctree-l4" href="#installation-de-la-base-de-donnees-postgresql">Installation de la base de données Postgresql</a></li>
-
- <li><a class="toctree-l4" href="#creation-de-lutilisateur-git-au-sein-du-systeme">Création de l'utilisateur git au sein du système</a></li>
-
- <li><a class="toctree-l4" href="#creation-dun-repertoire-reserve-au-binaire-gogs-appartenant-a-lutilisateur-git">Création d'un répertoire réservé au binaire gogs appartenant à l'utilisateur git</a></li>
-
- <li><a class="toctree-l4" href="#telechargement-du-binaire-gogs-dans-notre-repertoire-nouvellement-cree">Téléchargement du binaire gogs dans notre répertoire nouvellement créé</a></li>
-
- <li><a class="toctree-l4" href="#decompression-de-larchive-et-suppression-de-larchive">Décompression de l'archive et suppression de l'archive</a></li>
-
- <li><a class="toctree-l4" href="#creation-de-lenregistrement-bind">Création de l'enregistrement bind</a></li>
-
- <li><a class="toctree-l4" href="#creation-du-fichier-de-configuration-dapache">Création du fichier de configuration d'apache</a></li>
-
- <li><a class="toctree-l4" href="#creation-du-certificat-letsencrypt-correspondant">Création du certificat letsencrypt correspondant</a></li>
-
- <li><a class="toctree-l4" href="#creation-des-fichiers-de-configuration-systemd">Création des fichiers de configuration systemd</a></li>
-
- <li><a class="toctree-l4" href="#tests">Tests</a></li>
-
-
- </ul>
-
- </li>
- <li>
-
- </ul>
- </div>
-
- </nav>
- <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
-
- <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
- <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
- <a href="..">The Yojik Server Installation Guide</a>
- </nav>
-
- <div class="wy-nav-content">
- <div class="rst-content">
- <div role="navigation" aria-label="breadcrumbs navigation">
- <ul class="wy-breadcrumbs">
- <li><a href="..">Docs</a> »</li>
-
-
-
- <li>Installation de git et de gogs</li>
- <li class="wy-breadcrumbs-aside">
-
- </li>
- </ul>
- <hr/>
- </div>
- <div role="main">
- <div class="section">
-
- <p></p>
- <h2 id="installation-de-git-et-de-gogs">Installation de <em>git</em> et de <em>gogs</em></h2>
- <p>Nous allons installer un serveur git sur notre petit serveur. Gogs est un serveur git écrit en <strong>go</strong>.
- Nous allons l'installer progressivement, en ajoutant ensuite le démarrage par un service, et l'accès sur un port standard servi par <strong>apache</strong> et redirigé vers le port 3000 servi par <strong>gogs</strong>.
- Je me suis inspiré de la documentation officielle ainsi que de ce tutorial:
- <a href="https://www.howtoforge.com/tutorial/how-to-install-gogs-go-git-service-on-ubuntu-1604/"># How to Install Gogs Go Git Service on Ubuntu 16.04</a></p>
- <p>Commençons par installer <strong>git</strong>.</p>
- <h3 id="installation-de-git">Installation de <em>git</em></h3>
- <pre><code class="shell">root@atom:~# apt-get install git
- Lecture des listes de paquets... Fait
- Construction de l'arbre des dépendances
- Lecture des informations d'état... Fait
- The following additional packages will be installed:
- git-man liberror-perl patch rsync
- Paquets suggérés :
- git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn ed diffutils-doc
- Les NOUVEAUX paquets suivants seront installés :
- git git-man liberror-perl patch rsync
- 0 mis à jour, 5 nouvellement installés, 0 à enlever et 0 non mis à jour.
- Il est nécessaire de prendre 6 869 ko dans les archives.
- Après cette opération, 35,9 Mo d'espace disque supplémentaires seront utilisés.
- Souhaitez-vous continuer ? [O/n] o
- Réception de:1 http://deb.debian.org/debian stretch/main i386 liberror-perl all 0.17024-1 [26,9 kB]
- Réception de:2 http://deb.debian.org/debian stretch/main i386 git-man all 1:2.11.0-3+deb9u4 [1 433 kB]
- Réception de:3 http://deb.debian.org/debian stretch/main i386 git i386 1:2.11.0-3+deb9u4 [4 879 kB]
- Réception de:4 http://deb.debian.org/debian stretch/main i386 patch i386 2.7.5-1+deb9u1 [124 kB]
- Réception de:5 http://deb.debian.org/debian stretch/main i386 rsync i386 3.1.2-1+deb9u1 [407 kB]
- 6 869 ko réceptionnés en 0s (12,4 Mo/s)
- Sélection du paquet liberror-perl précédemment désélectionné.
- (Lecture de la base de données... 37491 fichiers et répertoires déjà installés.)
- Préparation du dépaquetage de .../liberror-perl_0.17024-1_all.deb ...
- Dépaquetage de liberror-perl (0.17024-1) ...
- Sélection du paquet git-man précédemment désélectionné.
- Préparation du dépaquetage de .../git-man_1%3a2.11.0-3+deb9u4_all.deb ...
- Dépaquetage de git-man (1:2.11.0-3+deb9u4) ...
- Sélection du paquet git précédemment désélectionné.
- Préparation du dépaquetage de .../git_1%3a2.11.0-3+deb9u4_i386.deb ...
- Dépaquetage de git (1:2.11.0-3+deb9u4) ...
- Sélection du paquet patch précédemment désélectionné.
- Préparation du dépaquetage de .../patch_2.7.5-1+deb9u1_i386.deb ...
- Dépaquetage de patch (2.7.5-1+deb9u1) ...
- Sélection du paquet rsync précédemment désélectionné.
- Préparation du dépaquetage de .../rsync_3.1.2-1+deb9u1_i386.deb ...
- Dépaquetage de rsync (3.1.2-1+deb9u1) ...
- Paramétrage de git-man (1:2.11.0-3+deb9u4) ...
- Paramétrage de liberror-perl (0.17024-1) ...
- Paramétrage de rsync (3.1.2-1+deb9u1) ...
- Created symlink /etc/systemd/system/multi-user.target.wants/rsync.service → /lib/systemd/system/rsync.service.
- Paramétrage de patch (2.7.5-1+deb9u1) ...
- Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u6) ...
- Traitement des actions différées (« triggers ») pour man-db (2.7.6.1-2) ...
- Paramétrage de git (1:2.11.0-3+deb9u4) ...
- root@atom:~#
- </code></pre>
- <h3 id="installation-de-la-base-de-donnees-postgresql">Installation de la base de données <em>Postgresql</em></h3>
- <p>Nous aurions pu utiliser à la place de <strong>Postgresql</strong>, <strong>mysql</strong> ou <strong>sqlite3</strong>.</p>
- <pre><code>root@atom:/home/ericadmin# apt install -y postgresql postgresql-client libpq-dev
- Lecture des listes de paquets... Fait
- Construction de l'arbre des dépendances
- Lecture des informations d'état... Fait
- The following additional packages will be installed:
- libpq5 libsensors4 postgresql-9.6 postgresql-client-9.6 postgresql-client-common postgresql-common postgresql-contrib-9.6 sysstat
- Paquets suggérés :
- postgresql-doc-9.6 lm-sensors postgresql-doc locales-all libdbd-pg-perl isag
- Les NOUVEAUX paquets suivants seront installés :
- libpq-dev libpq5 libsensors4 postgresql postgresql-9.6 postgresql-client postgresql-client-9.6 postgresql-client-common postgresql-common
- postgresql-contrib-9.6 sysstat
- 0 mis à jour, 11 nouvellement installés, 0 à enlever et 0 non mis à jour.
- Il est nécessaire de prendre 7 398 ko dans les archives.
- Après cette opération, 33,7 Mo d'espace disque supplémentaires seront utilisés.
- Réception de:1 http://deb.debian.org/debian stretch/main i386 libpq5 i386 9.6.10-0+deb9u1 [142 kB]
- Réception de:2 http://deb.debian.org/debian stretch/main i386 libpq-dev i386 9.6.10-0+deb9u1 [224 kB]
- Réception de:3 http://deb.debian.org/debian stretch/main i386 libsensors4 i386 1:3.4.0-4 [54,0 kB]
- Réception de:4 http://deb.debian.org/debian stretch/main i386 postgresql-client-common all 181+deb9u2 [79,2 kB]
- Réception de:5 http://deb.debian.org/debian stretch/main i386 postgresql-client-9.6 i386 9.6.10-0+deb9u1 [1 271 kB]
- Réception de:6 http://deb.debian.org/debian stretch/main i386 postgresql-common all 181+deb9u2 [217 kB]
- Réception de:7 http://deb.debian.org/debian stretch/main i386 postgresql-9.6 i386 9.6.10-0+deb9u1 [4 395 kB]
- Réception de:8 http://deb.debian.org/debian stretch/main i386 postgresql all 9.6+181+deb9u2 [55,8 kB]
- Réception de:9 http://deb.debian.org/debian stretch/main i386 postgresql-client all 9.6+181+deb9u2 [55,8 kB]
- Réception de:10 http://deb.debian.org/debian stretch/main i386 postgresql-contrib-9.6 i386 9.6.10-0+deb9u1 [531 kB]
- Réception de:11 http://deb.debian.org/debian stretch/main i386 sysstat i386 11.4.3-2 [373 kB]
- 7 398 ko réceptionnés en 0s (11,8 Mo/s)
- Préconfiguration des paquets...
- Sélection du paquet libpq5:i386 précédemment désélectionné.
- (Lecture de la base de données... 38406 fichiers et répertoires déjà installés.)
- Préparation du dépaquetage de .../00-libpq5_9.6.10-0+deb9u1_i386.deb ...
- Dépaquetage de libpq5:i386 (9.6.10-0+deb9u1) ...
- Sélection du paquet libpq-dev précédemment désélectionné.
- Préparation du dépaquetage de .../01-libpq-dev_9.6.10-0+deb9u1_i386.deb ...
- Dépaquetage de libpq-dev (9.6.10-0+deb9u1) ...
- Sélection du paquet libsensors4:i386 précédemment désélectionné.
- Préparation du dépaquetage de .../02-libsensors4_1%3a3.4.0-4_i386.deb ...
- Dépaquetage de libsensors4:i386 (1:3.4.0-4) ...
- Sélection du paquet postgresql-client-common précédemment désélectionné.
- Préparation du dépaquetage de .../03-postgresql-client-common_181+deb9u2_all.deb ...
- Dépaquetage de postgresql-client-common (181+deb9u2) ...
- Sélection du paquet postgresql-client-9.6 précédemment désélectionné.
- Préparation du dépaquetage de .../04-postgresql-client-9.6_9.6.10-0+deb9u1_i386.deb ...
- Dépaquetage de postgresql-client-9.6 (9.6.10-0+deb9u1) ...
- Sélection du paquet postgresql-common précédemment désélectionné.
- Préparation du dépaquetage de .../05-postgresql-common_181+deb9u2_all.deb ...
- Ajout de « détournement de /usr/bin/pg_config en /usr/bin/pg_config.libpq-dev par postgresql-common »
- Dépaquetage de postgresql-common (181+deb9u2) ...
- Sélection du paquet postgresql-9.6 précédemment désélectionné.
- Préparation du dépaquetage de .../06-postgresql-9.6_9.6.10-0+deb9u1_i386.deb ...
- Dépaquetage de postgresql-9.6 (9.6.10-0+deb9u1) ...
- Sélection du paquet postgresql précédemment désélectionné.
- Préparation du dépaquetage de .../07-postgresql_9.6+181+deb9u2_all.deb ...
- Dépaquetage de postgresql (9.6+181+deb9u2) ...
- Sélection du paquet postgresql-client précédemment désélectionné.
- Préparation du dépaquetage de .../08-postgresql-client_9.6+181+deb9u2_all.deb ...
- Dépaquetage de postgresql-client (9.6+181+deb9u2) ...
- Sélection du paquet postgresql-contrib-9.6 précédemment désélectionné.
- Préparation du dépaquetage de .../09-postgresql-contrib-9.6_9.6.10-0+deb9u1_i386.deb ...
- Dépaquetage de postgresql-contrib-9.6 (9.6.10-0+deb9u1) ...
- Sélection du paquet sysstat précédemment désélectionné.
- Préparation du dépaquetage de .../10-sysstat_11.4.3-2_i386.deb ...
- Dépaquetage de sysstat (11.4.3-2) ...
- Paramétrage de libpq5:i386 (9.6.10-0+deb9u1) ...
- Traitement des actions différées (« triggers ») pour libc-bin (2.24-11+deb9u3) ...
- Paramétrage de postgresql-client-common (181+deb9u2) ...
- Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u6) ...
- Paramétrage de postgresql-common (181+deb9u2) ...
- Adding user postgres to group ssl-cert
- Creating config file /etc/postgresql-common/createcluster.conf with new version
- Creating config file /etc/logrotate.d/postgresql-common with new version
- Building PostgreSQL dictionaries from installed myspell/hunspell packages...
- Removing obsolete dictionary files:
- Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /lib/systemd/system/postgresql.service.
- Paramétrage de libsensors4:i386 (1:3.4.0-4) ...
- Traitement des actions différées (« triggers ») pour man-db (2.7.6.1-2) ...
- Paramétrage de libpq-dev (9.6.10-0+deb9u1) ...
- Paramétrage de sysstat (11.4.3-2) ...
- Creating config file /etc/default/sysstat with new version
- update-alternatives: utilisation de « /usr/bin/sar.sysstat » pour fournir « /usr/bin/sar » (sar) en mode automatique
- Paramétrage de postgresql-client-9.6 (9.6.10-0+deb9u1) ...
- update-alternatives: utilisation de « /usr/share/postgresql/9.6/man/man1/psql.1.gz » pour fournir « /usr/share/man/man1/psql.1.gz » (psql.1.gz) en mode automatique
- Paramétrage de postgresql-9.6 (9.6.10-0+deb9u1) ...
- Creating new cluster 9.6/main ...
- config /etc/postgresql/9.6/main
- data /var/lib/postgresql/9.6/main
- locale fr_FR.UTF-8
- socket /var/run/postgresql
- port 5432
- update-alternatives: utilisation de « /usr/share/postgresql/9.6/man/man1/postmaster.1.gz » pour fournir « /usr/share/man/man1/postmaster.1.gz » (postmaster.1.gz) en mode automatique
- Paramétrage de postgresql (9.6+181+deb9u2) ...
- Paramétrage de postgresql-client (9.6+181+deb9u2) ...
- Paramétrage de postgresql-contrib-9.6 (9.6.10-0+deb9u1) ...
- Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u6) ...
- Traitement des actions différées (« triggers ») pour libc-bin (2.24-11+deb9u3) ...
- root@atom:/home/ericadmin#
- </code></pre>
- <p>Lancement du serveur Postgresql et configuration pour un lancement automatique au démarrage de la machine:</p>
- <blockquote>
- <p>systemctl start postgresql
- systemctl enable postgresql</p>
- </blockquote>
- <pre><code>root@atom:/home/ericadmin# systemctl start postgresql
- root@atom:/home/ericadmin# systemctl enable postgresql
- Synchronizing state of postgresql.service with SysV service script with /lib/systemd/systemd-sysv-install.
- Executing: /lib/systemd/systemd-sysv-install enable postgresql
- root@atom:/home/ericadmin#
- </code></pre>
- <p>Nous allons nous connecter sous le user "postgres" pour configurer notre serveur de base de données et créer la base initiale pour <strong>gogs</strong>, ainsi que l'utilisateur <strong>gogs</strong>..</p>
- <p>Voici les données que nous allons utiliser:</p>
- <blockquote>
- <p>gestionnaire principal de la base de données postgres: postgres
- mot de passe correspondant : <strong><em>*
- utilisateur de la base de données postgres: git
- mot de passe de l'utlisateur git dans postgres: </em></strong>*
- base de données postgres, appartenant à l'utilisateur git de postgres: gogsdb</p>
- </blockquote>
- <pre><code>root@atom:/home/ericadmin# su - postgres
- postgres@atom:~$
- </code></pre>
- <p>Nous allons lancer le shell <em>postgres</em> qui nous permettra de configurer notre base:</p>
- <pre><code class="shell">postgres@atom:~$ psql
- psql (9.6.10)
- Saisissez « help » pour l'aide.
- postgres=#
- </code></pre>
- <p>Création de l'utilisateur <em>git</em> ainsi que le <em>mot de passe</em> pour cet utilisateur:</p>
- <pre><code>postgres=# CREATE USER git CREATEDB;
- CREATE ROLE
- postgres=# \password git
- Saisissez le nouveau mot de passe : ****
- Saisissez-le à nouveau : ****
- postgres=#
- </code></pre>
- <p>Remplacez bien sûr les **** par un vrai mot de passe et notez le bien soigneusement.</p>
- <p>Création de la base de donnée et vérification:</p>
- <pre><code>postgres=# CREATE DATABASE gogsdb OWNER git;
- CREATE DATABASE
- postgres=# \du
- Liste des rôles
- Nom du rôle | Attributs | Membre de
- -------------+---------------------------------------------------------------------------------+-----------
- git | Créer une base | {}
- postgres | Superutilisateur, Créer un rôle, Créer une base, Réplication, Contournement RLS | {}
- postgres=# \l
- Liste des bases de données
- Nom | Propriétaire | Encodage | Collationnement | Type caract. | Droits d'accès
- -----------+--------------+----------+-----------------+--------------+-----------------------
- gogsdb | git | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 |
- postgres | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 |
- template0 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres +
- | | | | | postgres=CTc/postgres
- template1 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres +
- | | | | | postgres=CTc/postgres
- (4 lignes)
- postgres=#
- </code></pre>
- <p>Voilà, nous avons installé le serveur de base de données (postgres), la base de données nécessaire à <em>gogs</em> (gogsdb), ainsi que l'utilisateur <em>git</em> (au sein de la base de données) qui pourra gérer les données de <strong>gogs</strong>. </p>
- <h3 id="creation-de-lutilisateur-git-au-sein-du-systeme">Création de l'utilisateur <em>git</em> au sein du système</h3>
- <blockquote>
- <p>commande adduser
- Avant, n'oubliez pas de repasser sous utilisateur <em>root</em> en tapant <em>Ctrl D</em></p>
- </blockquote>
- <pre><code>root@atom:/home/ericadmin# adduser --disabled-login --gecos 'Gogs' git
- Ajout de l'utilisateur « git » ...
- Ajout du nouveau groupe « git » (1001) ...
- Ajout du nouvel utilisateur « git » (1001) avec le groupe « git » ...
- Création du répertoire personnel « /home/git »...
- Copie des fichiers depuis « /etc/skel »...
- root@atom:/home/ericadmin#
- </code></pre>
- <h3 id="creation-dun-repertoire-reserve-au-binaire-gogs-appartenant-a-lutilisateur-git">Création d'un répertoire réservé au binaire <em>gogs</em> appartenant à l'utilisateur <em>git</em></h3>
- <pre><code>root@atom:/home/ericadmin# su - git
- git@atom:~$ mkdir -p /home/git/bin
- git@atom:~$
- </code></pre>
- <h3 id="telechargement-du-binaire-gogs-dans-notre-repertoire-nouvellement-cree">Téléchargement du binaire <em>gogs</em> dans notre répertoire nouvellement créé</h3>
- <pre><code>git@atom:~$ cd bin
- git@atom:~/bin$ wget https://dl.gogs.io/0.11.66/gogs_0.11.66_linux_386.tar.gz
- --2018-11-29 14:12:26-- https://dl.gogs.io/0.11.66/gogs_0.11.66_linux_386.tar.gz
- Résolution de dl.gogs.io (dl.gogs.io)… 68.183.105.37
- Connexion à dl.gogs.io (dl.gogs.io)|68.183.105.37|:443… connecté.
- requête HTTP transmise, en attente de la réponse… 200 OK
- Taille : 20296268 (19M) [application/x-gzip]
- Sauvegarde en : « gogs_0.11.66_linux_386.tar.gz »
- gogs_0.11.66_linux_386.tar.gz 100%[====================================================================>] 19,36M 6,65MB/s in 2,9s
- 2018-11-29 14:12:30 (6,65 MB/s) — « gogs_0.11.66_linux_386.tar.gz » sauvegardé [20296268/20296268]
- git@atom:~/bin$
- </code></pre>
- <p>Mon serveur est en i386, et pas en amd64: prenez la version qui correspond au système d'exploitation que vous avez installé. Maintenant, c'est quasi exclusivement du amd64 . Mon serveur est vieux .... (mais vaillant :) )</p>
- <h3 id="decompression-de-larchive-et-suppression-de-larchive">Décompression de l'archive et suppression de l'archive</h3>
- <pre><code>git@atom:~/bin$ tar vxfz gogs_0.11.66_linux_386.tar.gz && rm gogs_0.11.66_linux_386.tar.gz
- </code></pre>
- <p>Notez bien que toutes ces dernières étapes se font sous utilisateur <strong>git</strong>.</p>
- <p>Voici le résultat dans le répertoire <em>gogs</em> créé préalablement:</p>
- <pre><code class="shell">git@atom:~/bin/gogs$ ls
- gogs LICENSE public README.md README_ZH.md scripts templates
- git@atom:~/bin/gogs$
- </code></pre>
- <p>Bien, tous nos éléments sont en place, base de données, utilisateur <em>git</em>, programme <em>gogs</em>. Il nous reste à connecter le tout.
- Tapez :</p>
- <blockquote>
- <p>./gogs web</p>
- </blockquote>
- <p>et lancez votre navigateur sur le nom de votre serveur suivi de :3000
- Vous arriverez sur la page de configuration de <em>gogs</em>. Remplissez les champs avec les données précédemment entrées et que vous avez bien sûr notées ;).
- Confirmez votre choix, reconnectez-vous et ça y est:)
- Créez ensuite un <em>utilisateur</em> avec son mot de passe (à noter précieusement ...)
- Il nous reste à installer les fichiers de lancement <em>systemd</em> ou <em>init</em>; pour moi, <em>systemd</em>, la redirection <em>apache</em>, les certificats <em>letsencrypt</em>.</p>
- <h3 id="creation-de-lenregistrement-bind">Création de l'enregistrement <em>bind</em></h3>
- <p>On ajoute un enregistrement CNAME</p>
- <blockquote>
- <p>git IN CNAME atom.yojik.net.</p>
- </blockquote>
- <h3 id="creation-du-fichier-de-configuration-dapache">Création du fichier de configuration d'<em>apache</em></h3>
- <p>On crée le fichier <em>/etc/apache2/sites-available/git.conf avec le contenu suivant:
- Il faut activer les modules </em>apache<em> suivants avec </em>a2enmod*:</p>
- <blockquote>
- <p>proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html</p>
- </blockquote>
- <pre><code class="shell"><VirtualHost *:80>
- ServerAdmin webmaster@localhost
- ProxyPreserveHost On
- # Servers to proxy the connection, or;
- # List of application servers:
- # Usage:
- # ProxyPass / http://[IP Addr.]:[port]/
- # ProxyPassReverse / http://[IP Addr.]:[port]/
- # Example:
- ProxyPass / http://localhost:3000/
- ProxyPassReverse / http://localhost:3000/
- ServerName git.yojik.net
- ErrorLog ${APACHE_LOG_DIR}/error.log
- CustomLog ${APACHE_LOG_DIR}/access.log combined
- </VirtualHost>
- </code></pre>
- <p>On <em>relance </em>apache*</p>
- <blockquote>
- <p>service apache2 restart</p>
- </blockquote>
- <h3 id="creation-du-certificat-letsencrypt-correspondant">Création du certificat <em>letsencrypt</em> correspondant</h3>
- <p>On lance la commande suivante:</p>
- <blockquote>
- <p>certbot --apache
- Et on suit les instructions ...</p>
- </blockquote>
- <h3 id="creation-des-fichiers-de-configuration-systemd">Création des fichiers de configuration <em>systemd</em></h3>
- <p>Il y a un exemple de fichier dans le sous-répertoire scripts/systemd de <em>gogs</em></p>
- <pre><code class="shell">root@atom:/etc/systemd/system# cat gogs.service
- [Unit]
- Description=Gogs
- After=syslog.target
- After=network.target
- After=postgresql.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
- Type=simple
- User=git
- Group=git
- WorkingDirectory=/home/git/bin/gogs
- ExecStart=/home/git/bin/gogs/gogs web
- Restart=always
- Environment=USER=git HOME=/home/git/
- [Install]
- WantedBy=multi-user.target
- root@atom:/etc/systemd/system#
- </code></pre>
- <p>Pour le lancer automatiquement au démarrage et activer la prise en compte par <em>systemd</em>, lancer:</p>
- <blockquote>
- <p>systemctl daemon-reload
- systemctl enable gogs</p>
- </blockquote>
- <pre><code class="shell">root@atom:/etc/systemd/system# systemctl enable gogs
- Created symlink /etc/systemd/system/multi-user.target.wants/gogs.service → /etc/systemd/system/gogs.service.
- root@atom:/etc/systemd/system#
- </code></pre>
- <h3 id="tests">Tests</h3>
- <p>Lancez les commandes suivantes pour vous assurer que tout est fonctionnel:</p>
- <pre><code class="shell">root@atom:/etc/systemd/system# service gogs start
- root@atom:/etc/systemd/system# tail -f /var/log/daemon.log
- Dec 16 17:14:38 atom systemd[1]: Failed to start Gogs.
- Dec 16 17:14:38 atom systemd[1]: gogs.service: Unit entered failed state.
- Dec 16 17:14:38 atom systemd[1]: gogs.service: Failed with result 'exit-code'.
- Dec 16 17:16:09 atom systemd[1]: Reloading.
- Dec 16 17:16:09 atom systemd[1]: apt-daily.timer: Adding 6h 12min 40.966652s random time.
- Dec 16 17:16:13 atom systemd[1]: Started Gogs.
- Dec 16 17:16:13 atom gogs[1991]: 2018/12/16 17:16:13 [TRACE] Custom path: /home/git/bin/gogs/custom
- Dec 16 17:16:13 atom gogs[1991]: 2018/12/16 17:16:13 [TRACE] Log path: /home/git/bin/gogs/log
- Dec 16 17:16:13 atom gogs[1991]: 2018/12/16 17:16:13 [TRACE] Log Mode: File (Trace)
- Dec 16 17:16:13 atom gogs[1991]: 2018/12/16 17:16:13 [ INFO] Gogs on Yojik.net 0.11.66.0916
- root@atom:/etc/systemd/system# service gogs stop
- root@atom:/etc/systemd/system# service gogs start
- root@atom:/etc/systemd/system# tail -f /var/log/daemon.log
- Dec 16 17:16:13 atom gogs[1991]: 2018/12/16 17:16:13 [TRACE] Log path: /home/git/bin/gogs/log
- Dec 16 17:16:13 atom gogs[1991]: 2018/12/16 17:16:13 [TRACE] Log Mode: File (Trace)
- Dec 16 17:16:13 atom gogs[1991]: 2018/12/16 17:16:13 [ INFO] Gogs on Yojik.net 0.11.66.0916
- Dec 16 17:16:28 atom systemd[1]: Stopping Gogs...
- Dec 16 17:16:28 atom systemd[1]: Stopped Gogs.
- Dec 16 17:16:33 atom systemd[1]: Started Gogs.
- Dec 16 17:16:33 atom gogs[2053]: 2018/12/16 17:16:33 [TRACE] Custom path: /home/git/bin/gogs/custom
- Dec 16 17:16:33 atom gogs[2053]: 2018/12/16 17:16:33 [TRACE] Log path: /home/git/bin/gogs/log
- Dec 16 17:16:33 atom gogs[2053]: 2018/12/16 17:16:33 [TRACE] Log Mode: File (Trace)
- Dec 16 17:16:33 atom gogs[2053]: 2018/12/16 17:16:33 [ INFO] Gogs on Yojik.net 0.11.66.0916
- </code></pre>
- <p>Le lancement de gogs marche parfaitement.</p>
- <p>Connectez-vous à partir de votre navigateur sur <em>git.yojik.net</em> (ou plutôt l'url que vous avez définie auparavant); vous devez vous retrouver sur la page d'accueil de <em>gogs</em>.</p>
-
- </div>
- </div>
- <footer>
-
- <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
-
-
- <a href="../18-dixhuit/" class="btn btn-neutral" title="Installation d'un webmail"><span class="icon icon-circle-arrow-left"></span> Previous</a>
-
- </div>
-
- <hr/>
- <div role="contentinfo">
- <!-- Copyright etc -->
-
- </div>
- Built with <a href="http://www.mkdocs.org">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
- </footer>
-
- </div>
- </div>
- </section>
- </div>
- <div class="rst-versions" role="note" style="cursor: pointer">
- <span class="rst-current-version" data-toggle="rst-current-version">
-
-
- <span><a href="../18-dixhuit/" style="color: #fcfcfc;">« Previous</a></span>
-
-
- </span>
- </div>
- </body>
- </html>
|