index.html 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671
  1. <!DOCTYPE html>
  2. <!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
  3. <!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
  4. <head>
  5. <meta charset="utf-8">
  6. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  7. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  8. <title>Installation de git et de gogs - The Yojik Server Installation Guide</title>
  9. <link rel="shortcut icon" href="../img/favicon.ico">
  10. <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>
  11. <link rel="stylesheet" href="../css/theme.css" type="text/css" />
  12. <link rel="stylesheet" href="../css/theme_extra.css" type="text/css" />
  13. <link rel="stylesheet" href="../css/highlight.css">
  14. <script>
  15. // Current page data
  16. var mkdocs_page_name = "Installation de git et de gogs";
  17. var mkdocs_page_input_path = "19-dixneuf.md";
  18. var mkdocs_page_url = "/19-dixneuf/";
  19. </script>
  20. <script src="../js/jquery-2.1.1.min.js"></script>
  21. <script src="../js/modernizr-2.8.3.min.js"></script>
  22. <script type="text/javascript" src="../js/highlight.pack.js"></script>
  23. <script src="../js/theme.js"></script>
  24. </head>
  25. <body class="wy-body-for-nav" role="document">
  26. <div class="wy-grid-for-nav">
  27. <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
  28. <div class="wy-side-nav-search">
  29. <a href=".." class="icon icon-home"> The Yojik Server Installation Guide</a>
  30. <div role="search">
  31. <form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
  32. <input type="text" name="q" placeholder="Search docs" />
  33. </form>
  34. </div>
  35. </div>
  36. <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
  37. <ul class="current">
  38. <li>
  39. <li class="toctree-l1 ">
  40. <a class="" href="..">Home</a>
  41. </li>
  42. <li>
  43. <li>
  44. <li class="toctree-l1 ">
  45. <a class="" href="../1-un/">Installation d'un serveur Debian/Stretch sécurisé</a>
  46. </li>
  47. <li>
  48. <li>
  49. <li class="toctree-l1 ">
  50. <a class="" href="../2-deux/">Premières étapes de sécurisation du serveur</a>
  51. </li>
  52. <li>
  53. <li>
  54. <li class="toctree-l1 ">
  55. <a class="" href="../3-trois/">Configuration du réseau</a>
  56. </li>
  57. <li>
  58. <li>
  59. <li class="toctree-l1 ">
  60. <a class="" href="../4-quatre/">Installation d'un serveur de temps</a>
  61. </li>
  62. <li>
  63. <li>
  64. <li class="toctree-l1 ">
  65. <a class="" href="../5-cinq/">Installation d'un pare-feu</a>
  66. </li>
  67. <li>
  68. <li>
  69. <li class="toctree-l1 ">
  70. <a class="" href="../6-six/">Contrer les attaques de brute-force avec fail2ban</a>
  71. </li>
  72. <li>
  73. <li>
  74. <li class="toctree-l1 ">
  75. <a class="" href="../7-sept/">Installation d'un serveur de courrier basique</a>
  76. </li>
  77. <li>
  78. <li>
  79. <li class="toctree-l1 ">
  80. <a class="" href="../8-huit/">Installation du serveur DNS</a>
  81. </li>
  82. <li>
  83. <li>
  84. <li class="toctree-l1 ">
  85. <a class="" href="../9-neuf/">Installation d'un serveur web</a>
  86. </li>
  87. <li>
  88. <li>
  89. <li class="toctree-l1 ">
  90. <a class="" href="../10-dix/">Installation de dovecot et de l'authentification</a>
  91. </li>
  92. <li>
  93. <li>
  94. <li class="toctree-l1 ">
  95. <a class="" href="../11-onze/">Installation des certificats letsencrypt</a>
  96. </li>
  97. <li>
  98. <li>
  99. <li class="toctree-l1 ">
  100. <a class="" href="../12-douze/">Ajout des enregistrements SPF et DKIM au fichier de zone DNS</a>
  101. </li>
  102. <li>
  103. <li>
  104. <li class="toctree-l1 ">
  105. <a class="" href="../17-dixsept/">Installation de programmes de surveillance du serveur</a>
  106. </li>
  107. <li>
  108. <li>
  109. <li class="toctree-l1 ">
  110. <a class="" href="../18-dixhuit/">Installation d'un webmail</a>
  111. </li>
  112. <li>
  113. <li>
  114. <li class="toctree-l1 current">
  115. <a class="current" href="./">Installation de git et de gogs</a>
  116. <ul>
  117. <li class="toctree-l3"><a href="#installation-de-git-et-de-gogs">Installation de git et de gogs</a></li>
  118. <li><a class="toctree-l4" href="#installation-de-git">Installation de git</a></li>
  119. <li><a class="toctree-l4" href="#installation-de-la-base-de-donnees-postgresql">Installation de la base de données Postgresql</a></li>
  120. <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>
  121. <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>
  122. <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>
  123. <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>
  124. <li><a class="toctree-l4" href="#creation-de-lenregistrement-bind">Création de l'enregistrement bind</a></li>
  125. <li><a class="toctree-l4" href="#creation-du-fichier-de-configuration-dapache">Création du fichier de configuration d'apache</a></li>
  126. <li><a class="toctree-l4" href="#creation-du-certificat-letsencrypt-correspondant">Création du certificat letsencrypt correspondant</a></li>
  127. <li><a class="toctree-l4" href="#creation-des-fichiers-de-configuration-systemd">Création des fichiers de configuration systemd</a></li>
  128. <li><a class="toctree-l4" href="#tests">Tests</a></li>
  129. </ul>
  130. </li>
  131. <li>
  132. </ul>
  133. </div>
  134. &nbsp;
  135. </nav>
  136. <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
  137. <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
  138. <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
  139. <a href="..">The Yojik Server Installation Guide</a>
  140. </nav>
  141. <div class="wy-nav-content">
  142. <div class="rst-content">
  143. <div role="navigation" aria-label="breadcrumbs navigation">
  144. <ul class="wy-breadcrumbs">
  145. <li><a href="..">Docs</a> &raquo;</li>
  146. <li>Installation de git et de gogs</li>
  147. <li class="wy-breadcrumbs-aside">
  148. </li>
  149. </ul>
  150. <hr/>
  151. </div>
  152. <div role="main">
  153. <div class="section">
  154. <p></p>
  155. <h2 id="installation-de-git-et-de-gogs">Installation de <em>git</em> et de <em>gogs</em></h2>
  156. <p>Nous allons installer un serveur git sur notre petit serveur. Gogs est un serveur git écrit en <strong>go</strong>.
  157. 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>.
  158. Je me suis inspiré de la documentation officielle ainsi que de ce tutorial:
  159. <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>
  160. <p>Commençons par installer <strong>git</strong>.</p>
  161. <h3 id="installation-de-git">Installation de <em>git</em></h3>
  162. <pre><code class="shell">root@atom:~# apt-get install git
  163. Lecture des listes de paquets... Fait
  164. Construction de l'arbre des dépendances
  165. Lecture des informations d'état... Fait
  166. The following additional packages will be installed:
  167. git-man liberror-perl patch rsync
  168. Paquets suggérés :
  169. 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
  170. Les NOUVEAUX paquets suivants seront installés :
  171. git git-man liberror-perl patch rsync
  172. 0 mis à jour, 5 nouvellement installés, 0 à enlever et 0 non mis à jour.
  173. Il est nécessaire de prendre 6 869 ko dans les archives.
  174. Après cette opération, 35,9 Mo d'espace disque supplémentaires seront utilisés.
  175. Souhaitez-vous continuer ? [O/n] o
  176. Réception de:1 http://deb.debian.org/debian stretch/main i386 liberror-perl all 0.17024-1 [26,9 kB]
  177. Réception de:2 http://deb.debian.org/debian stretch/main i386 git-man all 1:2.11.0-3+deb9u4 [1 433 kB]
  178. Réception de:3 http://deb.debian.org/debian stretch/main i386 git i386 1:2.11.0-3+deb9u4 [4 879 kB]
  179. Réception de:4 http://deb.debian.org/debian stretch/main i386 patch i386 2.7.5-1+deb9u1 [124 kB]
  180. Réception de:5 http://deb.debian.org/debian stretch/main i386 rsync i386 3.1.2-1+deb9u1 [407 kB]
  181. 6 869 ko réceptionnés en 0s (12,4 Mo/s)
  182. Sélection du paquet liberror-perl précédemment désélectionné.
  183. (Lecture de la base de données... 37491 fichiers et répertoires déjà installés.)
  184. Préparation du dépaquetage de .../liberror-perl_0.17024-1_all.deb ...
  185. Dépaquetage de liberror-perl (0.17024-1) ...
  186. Sélection du paquet git-man précédemment désélectionné.
  187. Préparation du dépaquetage de .../git-man_1%3a2.11.0-3+deb9u4_all.deb ...
  188. Dépaquetage de git-man (1:2.11.0-3+deb9u4) ...
  189. Sélection du paquet git précédemment désélectionné.
  190. Préparation du dépaquetage de .../git_1%3a2.11.0-3+deb9u4_i386.deb ...
  191. Dépaquetage de git (1:2.11.0-3+deb9u4) ...
  192. Sélection du paquet patch précédemment désélectionné.
  193. Préparation du dépaquetage de .../patch_2.7.5-1+deb9u1_i386.deb ...
  194. Dépaquetage de patch (2.7.5-1+deb9u1) ...
  195. Sélection du paquet rsync précédemment désélectionné.
  196. Préparation du dépaquetage de .../rsync_3.1.2-1+deb9u1_i386.deb ...
  197. Dépaquetage de rsync (3.1.2-1+deb9u1) ...
  198. Paramétrage de git-man (1:2.11.0-3+deb9u4) ...
  199. Paramétrage de liberror-perl (0.17024-1) ...
  200. Paramétrage de rsync (3.1.2-1+deb9u1) ...
  201. Created symlink /etc/systemd/system/multi-user.target.wants/rsync.service → /lib/systemd/system/rsync.service.
  202. Paramétrage de patch (2.7.5-1+deb9u1) ...
  203. Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u6) ...
  204. Traitement des actions différées (« triggers ») pour man-db (2.7.6.1-2) ...
  205. Paramétrage de git (1:2.11.0-3+deb9u4) ...
  206. root@atom:~#
  207. </code></pre>
  208. <h3 id="installation-de-la-base-de-donnees-postgresql">Installation de la base de données <em>Postgresql</em></h3>
  209. <p>Nous aurions pu utiliser à la place de <strong>Postgresql</strong>, <strong>mysql</strong> ou <strong>sqlite3</strong>.</p>
  210. <pre><code>root@atom:/home/ericadmin# apt install -y postgresql postgresql-client libpq-dev
  211. Lecture des listes de paquets... Fait
  212. Construction de l'arbre des dépendances
  213. Lecture des informations d'état... Fait
  214. The following additional packages will be installed:
  215. libpq5 libsensors4 postgresql-9.6 postgresql-client-9.6 postgresql-client-common postgresql-common postgresql-contrib-9.6 sysstat
  216. Paquets suggérés :
  217. postgresql-doc-9.6 lm-sensors postgresql-doc locales-all libdbd-pg-perl isag
  218. Les NOUVEAUX paquets suivants seront installés :
  219. libpq-dev libpq5 libsensors4 postgresql postgresql-9.6 postgresql-client postgresql-client-9.6 postgresql-client-common postgresql-common
  220. postgresql-contrib-9.6 sysstat
  221. 0 mis à jour, 11 nouvellement installés, 0 à enlever et 0 non mis à jour.
  222. Il est nécessaire de prendre 7 398 ko dans les archives.
  223. Après cette opération, 33,7 Mo d'espace disque supplémentaires seront utilisés.
  224. Réception de:1 http://deb.debian.org/debian stretch/main i386 libpq5 i386 9.6.10-0+deb9u1 [142 kB]
  225. Réception de:2 http://deb.debian.org/debian stretch/main i386 libpq-dev i386 9.6.10-0+deb9u1 [224 kB]
  226. Réception de:3 http://deb.debian.org/debian stretch/main i386 libsensors4 i386 1:3.4.0-4 [54,0 kB]
  227. Réception de:4 http://deb.debian.org/debian stretch/main i386 postgresql-client-common all 181+deb9u2 [79,2 kB]
  228. 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]
  229. Réception de:6 http://deb.debian.org/debian stretch/main i386 postgresql-common all 181+deb9u2 [217 kB]
  230. Réception de:7 http://deb.debian.org/debian stretch/main i386 postgresql-9.6 i386 9.6.10-0+deb9u1 [4 395 kB]
  231. Réception de:8 http://deb.debian.org/debian stretch/main i386 postgresql all 9.6+181+deb9u2 [55,8 kB]
  232. Réception de:9 http://deb.debian.org/debian stretch/main i386 postgresql-client all 9.6+181+deb9u2 [55,8 kB]
  233. Réception de:10 http://deb.debian.org/debian stretch/main i386 postgresql-contrib-9.6 i386 9.6.10-0+deb9u1 [531 kB]
  234. Réception de:11 http://deb.debian.org/debian stretch/main i386 sysstat i386 11.4.3-2 [373 kB]
  235. 7 398 ko réceptionnés en 0s (11,8 Mo/s)
  236. Préconfiguration des paquets...
  237. Sélection du paquet libpq5:i386 précédemment désélectionné.
  238. (Lecture de la base de données... 38406 fichiers et répertoires déjà installés.)
  239. Préparation du dépaquetage de .../00-libpq5_9.6.10-0+deb9u1_i386.deb ...
  240. Dépaquetage de libpq5:i386 (9.6.10-0+deb9u1) ...
  241. Sélection du paquet libpq-dev précédemment désélectionné.
  242. Préparation du dépaquetage de .../01-libpq-dev_9.6.10-0+deb9u1_i386.deb ...
  243. Dépaquetage de libpq-dev (9.6.10-0+deb9u1) ...
  244. Sélection du paquet libsensors4:i386 précédemment désélectionné.
  245. Préparation du dépaquetage de .../02-libsensors4_1%3a3.4.0-4_i386.deb ...
  246. Dépaquetage de libsensors4:i386 (1:3.4.0-4) ...
  247. Sélection du paquet postgresql-client-common précédemment désélectionné.
  248. Préparation du dépaquetage de .../03-postgresql-client-common_181+deb9u2_all.deb ...
  249. Dépaquetage de postgresql-client-common (181+deb9u2) ...
  250. Sélection du paquet postgresql-client-9.6 précédemment désélectionné.
  251. Préparation du dépaquetage de .../04-postgresql-client-9.6_9.6.10-0+deb9u1_i386.deb ...
  252. Dépaquetage de postgresql-client-9.6 (9.6.10-0+deb9u1) ...
  253. Sélection du paquet postgresql-common précédemment désélectionné.
  254. Préparation du dépaquetage de .../05-postgresql-common_181+deb9u2_all.deb ...
  255. Ajout de « détournement de /usr/bin/pg_config en /usr/bin/pg_config.libpq-dev par postgresql-common »
  256. Dépaquetage de postgresql-common (181+deb9u2) ...
  257. Sélection du paquet postgresql-9.6 précédemment désélectionné.
  258. Préparation du dépaquetage de .../06-postgresql-9.6_9.6.10-0+deb9u1_i386.deb ...
  259. Dépaquetage de postgresql-9.6 (9.6.10-0+deb9u1) ...
  260. Sélection du paquet postgresql précédemment désélectionné.
  261. Préparation du dépaquetage de .../07-postgresql_9.6+181+deb9u2_all.deb ...
  262. Dépaquetage de postgresql (9.6+181+deb9u2) ...
  263. Sélection du paquet postgresql-client précédemment désélectionné.
  264. Préparation du dépaquetage de .../08-postgresql-client_9.6+181+deb9u2_all.deb ...
  265. Dépaquetage de postgresql-client (9.6+181+deb9u2) ...
  266. Sélection du paquet postgresql-contrib-9.6 précédemment désélectionné.
  267. Préparation du dépaquetage de .../09-postgresql-contrib-9.6_9.6.10-0+deb9u1_i386.deb ...
  268. Dépaquetage de postgresql-contrib-9.6 (9.6.10-0+deb9u1) ...
  269. Sélection du paquet sysstat précédemment désélectionné.
  270. Préparation du dépaquetage de .../10-sysstat_11.4.3-2_i386.deb ...
  271. Dépaquetage de sysstat (11.4.3-2) ...
  272. Paramétrage de libpq5:i386 (9.6.10-0+deb9u1) ...
  273. Traitement des actions différées (« triggers ») pour libc-bin (2.24-11+deb9u3) ...
  274. Paramétrage de postgresql-client-common (181+deb9u2) ...
  275. Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u6) ...
  276. Paramétrage de postgresql-common (181+deb9u2) ...
  277. Adding user postgres to group ssl-cert
  278. Creating config file /etc/postgresql-common/createcluster.conf with new version
  279. Creating config file /etc/logrotate.d/postgresql-common with new version
  280. Building PostgreSQL dictionaries from installed myspell/hunspell packages...
  281. Removing obsolete dictionary files:
  282. Created symlink /etc/systemd/system/multi-user.target.wants/postgresql.service → /lib/systemd/system/postgresql.service.
  283. Paramétrage de libsensors4:i386 (1:3.4.0-4) ...
  284. Traitement des actions différées (« triggers ») pour man-db (2.7.6.1-2) ...
  285. Paramétrage de libpq-dev (9.6.10-0+deb9u1) ...
  286. Paramétrage de sysstat (11.4.3-2) ...
  287. Creating config file /etc/default/sysstat with new version
  288. update-alternatives: utilisation de « /usr/bin/sar.sysstat » pour fournir « /usr/bin/sar » (sar) en mode automatique
  289. Paramétrage de postgresql-client-9.6 (9.6.10-0+deb9u1) ...
  290. 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
  291. Paramétrage de postgresql-9.6 (9.6.10-0+deb9u1) ...
  292. Creating new cluster 9.6/main ...
  293. config /etc/postgresql/9.6/main
  294. data /var/lib/postgresql/9.6/main
  295. locale fr_FR.UTF-8
  296. socket /var/run/postgresql
  297. port 5432
  298. 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
  299. Paramétrage de postgresql (9.6+181+deb9u2) ...
  300. Paramétrage de postgresql-client (9.6+181+deb9u2) ...
  301. Paramétrage de postgresql-contrib-9.6 (9.6.10-0+deb9u1) ...
  302. Traitement des actions différées (« triggers ») pour systemd (232-25+deb9u6) ...
  303. Traitement des actions différées (« triggers ») pour libc-bin (2.24-11+deb9u3) ...
  304. root@atom:/home/ericadmin#
  305. </code></pre>
  306. <p>Lancement du serveur Postgresql et configuration pour un lancement automatique au démarrage de la machine:</p>
  307. <blockquote>
  308. <p>systemctl start postgresql
  309. systemctl enable postgresql</p>
  310. </blockquote>
  311. <pre><code>root@atom:/home/ericadmin# systemctl start postgresql
  312. root@atom:/home/ericadmin# systemctl enable postgresql
  313. Synchronizing state of postgresql.service with SysV service script with /lib/systemd/systemd-sysv-install.
  314. Executing: /lib/systemd/systemd-sysv-install enable postgresql
  315. root@atom:/home/ericadmin#
  316. </code></pre>
  317. <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>
  318. <p>Voici les données que nous allons utiliser:</p>
  319. <blockquote>
  320. <p>gestionnaire principal de la base de données postgres: postgres
  321. mot de passe correspondant : <strong><em>*
  322. utilisateur de la base de données postgres: git
  323. mot de passe de l'utlisateur git dans postgres: </em></strong>*
  324. base de données postgres, appartenant à l'utilisateur git de postgres: gogsdb</p>
  325. </blockquote>
  326. <pre><code>root@atom:/home/ericadmin# su - postgres
  327. postgres@atom:~$
  328. </code></pre>
  329. <p>Nous allons lancer le shell <em>postgres</em> qui nous permettra de configurer notre base:</p>
  330. <pre><code class="shell">postgres@atom:~$ psql
  331. psql (9.6.10)
  332. Saisissez « help » pour l'aide.
  333. postgres=#
  334. </code></pre>
  335. <p>Création de l'utilisateur <em>git</em> ainsi que le <em>mot de passe</em> pour cet utilisateur:</p>
  336. <pre><code>postgres=# CREATE USER git CREATEDB;
  337. CREATE ROLE
  338. postgres=# \password git
  339. Saisissez le nouveau mot de passe : ****
  340. Saisissez-le à nouveau : ****
  341. postgres=#
  342. </code></pre>
  343. <p>Remplacez bien sûr les **** par un vrai mot de passe et notez le bien soigneusement.</p>
  344. <p>Création de la base de donnée et vérification:</p>
  345. <pre><code>postgres=# CREATE DATABASE gogsdb OWNER git;
  346. CREATE DATABASE
  347. postgres=# \du
  348. Liste des rôles
  349. Nom du rôle | Attributs | Membre de
  350. -------------+---------------------------------------------------------------------------------+-----------
  351. git | Créer une base | {}
  352. postgres | Superutilisateur, Créer un rôle, Créer une base, Réplication, Contournement RLS | {}
  353. postgres=# \l
  354. Liste des bases de données
  355. Nom | Propriétaire | Encodage | Collationnement | Type caract. | Droits d'accès
  356. -----------+--------------+----------+-----------------+--------------+-----------------------
  357. gogsdb | git | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 |
  358. postgres | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 |
  359. template0 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres +
  360. | | | | | postgres=CTc/postgres
  361. template1 | postgres | UTF8 | fr_FR.UTF-8 | fr_FR.UTF-8 | =c/postgres +
  362. | | | | | postgres=CTc/postgres
  363. (4 lignes)
  364. postgres=#
  365. </code></pre>
  366. <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>
  367. <h3 id="creation-de-lutilisateur-git-au-sein-du-systeme">Création de l'utilisateur <em>git</em> au sein du système</h3>
  368. <blockquote>
  369. <p>commande adduser
  370. Avant, n'oubliez pas de repasser sous utilisateur <em>root</em> en tapant <em>Ctrl D</em></p>
  371. </blockquote>
  372. <pre><code>root@atom:/home/ericadmin# adduser --disabled-login --gecos 'Gogs' git
  373. Ajout de l'utilisateur « git » ...
  374. Ajout du nouveau groupe « git » (1001) ...
  375. Ajout du nouvel utilisateur « git » (1001) avec le groupe « git » ...
  376. Création du répertoire personnel « /home/git »...
  377. Copie des fichiers depuis « /etc/skel »...
  378. root@atom:/home/ericadmin#
  379. </code></pre>
  380. <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>
  381. <pre><code>root@atom:/home/ericadmin# su - git
  382. git@atom:~$ mkdir -p /home/git/bin
  383. git@atom:~$
  384. </code></pre>
  385. <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>
  386. <pre><code>git@atom:~$ cd bin
  387. git@atom:~/bin$ wget https://dl.gogs.io/0.11.66/gogs_0.11.66_linux_386.tar.gz
  388. --2018-11-29 14:12:26-- https://dl.gogs.io/0.11.66/gogs_0.11.66_linux_386.tar.gz
  389. Résolution de dl.gogs.io (dl.gogs.io)… 68.183.105.37
  390. Connexion à dl.gogs.io (dl.gogs.io)|68.183.105.37|:443… connecté.
  391. requête HTTP transmise, en attente de la réponse… 200 OK
  392. Taille : 20296268 (19M) [application/x-gzip]
  393. Sauvegarde en : « gogs_0.11.66_linux_386.tar.gz »
  394. gogs_0.11.66_linux_386.tar.gz 100%[====================================================================&gt;] 19,36M 6,65MB/s in 2,9s
  395. 2018-11-29 14:12:30 (6,65 MB/s) — « gogs_0.11.66_linux_386.tar.gz » sauvegardé [20296268/20296268]
  396. git@atom:~/bin$
  397. </code></pre>
  398. <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>
  399. <h3 id="decompression-de-larchive-et-suppression-de-larchive">Décompression de l'archive et suppression de l'archive</h3>
  400. <pre><code>git@atom:~/bin$ tar vxfz gogs_0.11.66_linux_386.tar.gz &amp;&amp; rm gogs_0.11.66_linux_386.tar.gz
  401. </code></pre>
  402. <p>Notez bien que toutes ces dernières étapes se font sous utilisateur <strong>git</strong>.</p>
  403. <p>Voici le résultat dans le répertoire <em>gogs</em> créé préalablement:</p>
  404. <pre><code class="shell">git@atom:~/bin/gogs$ ls
  405. gogs LICENSE public README.md README_ZH.md scripts templates
  406. git@atom:~/bin/gogs$
  407. </code></pre>
  408. <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.
  409. Tapez :</p>
  410. <blockquote>
  411. <p>./gogs web</p>
  412. </blockquote>
  413. <p>et lancez votre navigateur sur le nom de votre serveur suivi de :3000
  414. 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 ;).
  415. Confirmez votre choix, reconnectez-vous et ça y est:)
  416. Créez ensuite un <em>utilisateur</em> avec son mot de passe (à noter précieusement ...)
  417. 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>
  418. <h3 id="creation-de-lenregistrement-bind">Création de l'enregistrement <em>bind</em></h3>
  419. <p>On ajoute un enregistrement CNAME</p>
  420. <blockquote>
  421. <p>git IN CNAME atom.yojik.net.</p>
  422. </blockquote>
  423. <h3 id="creation-du-fichier-de-configuration-dapache">Création du fichier de configuration d'<em>apache</em></h3>
  424. <p>On crée le fichier <em>/etc/apache2/sites-available/git.conf avec le contenu suivant:
  425. Il faut activer les modules </em>apache<em> suivants avec </em>a2enmod*:</p>
  426. <blockquote>
  427. <p>proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html</p>
  428. </blockquote>
  429. <pre><code class="shell">&lt;VirtualHost *:80&gt;
  430. ServerAdmin webmaster@localhost
  431. ProxyPreserveHost On
  432. # Servers to proxy the connection, or;
  433. # List of application servers:
  434. # Usage:
  435. # ProxyPass / http://[IP Addr.]:[port]/
  436. # ProxyPassReverse / http://[IP Addr.]:[port]/
  437. # Example:
  438. ProxyPass / http://localhost:3000/
  439. ProxyPassReverse / http://localhost:3000/
  440. ServerName git.yojik.net
  441. ErrorLog ${APACHE_LOG_DIR}/error.log
  442. CustomLog ${APACHE_LOG_DIR}/access.log combined
  443. &lt;/VirtualHost&gt;
  444. </code></pre>
  445. <p>On <em>relance </em>apache*</p>
  446. <blockquote>
  447. <p>service apache2 restart</p>
  448. </blockquote>
  449. <h3 id="creation-du-certificat-letsencrypt-correspondant">Création du certificat <em>letsencrypt</em> correspondant</h3>
  450. <p>On lance la commande suivante:</p>
  451. <blockquote>
  452. <p>certbot --apache
  453. Et on suit les instructions ...</p>
  454. </blockquote>
  455. <h3 id="creation-des-fichiers-de-configuration-systemd">Création des fichiers de configuration <em>systemd</em></h3>
  456. <p>Il y a un exemple de fichier dans le sous-répertoire scripts/systemd de <em>gogs</em></p>
  457. <pre><code class="shell">root@atom:/etc/systemd/system# cat gogs.service
  458. [Unit]
  459. Description=Gogs
  460. After=syslog.target
  461. After=network.target
  462. After=postgresql.service
  463. [Service]
  464. # Modify these two values and uncomment them if you have
  465. # repos with lots of files and get an HTTP error 500 because
  466. # of that
  467. ###
  468. #LimitMEMLOCK=infinity
  469. #LimitNOFILE=65535
  470. Type=simple
  471. User=git
  472. Group=git
  473. WorkingDirectory=/home/git/bin/gogs
  474. ExecStart=/home/git/bin/gogs/gogs web
  475. Restart=always
  476. Environment=USER=git HOME=/home/git/
  477. [Install]
  478. WantedBy=multi-user.target
  479. root@atom:/etc/systemd/system#
  480. </code></pre>
  481. <p>Pour le lancer automatiquement au démarrage et activer la prise en compte par <em>systemd</em>, lancer:</p>
  482. <blockquote>
  483. <p>systemctl daemon-reload
  484. systemctl enable gogs</p>
  485. </blockquote>
  486. <pre><code class="shell">root@atom:/etc/systemd/system# systemctl enable gogs
  487. Created symlink /etc/systemd/system/multi-user.target.wants/gogs.service → /etc/systemd/system/gogs.service.
  488. root@atom:/etc/systemd/system#
  489. </code></pre>
  490. <h3 id="tests">Tests</h3>
  491. <p>Lancez les commandes suivantes pour vous assurer que tout est fonctionnel:</p>
  492. <pre><code class="shell">root@atom:/etc/systemd/system# service gogs start
  493. root@atom:/etc/systemd/system# tail -f /var/log/daemon.log
  494. Dec 16 17:14:38 atom systemd[1]: Failed to start Gogs.
  495. Dec 16 17:14:38 atom systemd[1]: gogs.service: Unit entered failed state.
  496. Dec 16 17:14:38 atom systemd[1]: gogs.service: Failed with result 'exit-code'.
  497. Dec 16 17:16:09 atom systemd[1]: Reloading.
  498. Dec 16 17:16:09 atom systemd[1]: apt-daily.timer: Adding 6h 12min 40.966652s random time.
  499. Dec 16 17:16:13 atom systemd[1]: Started Gogs.
  500. Dec 16 17:16:13 atom gogs[1991]: 2018/12/16 17:16:13 [TRACE] Custom path: /home/git/bin/gogs/custom
  501. Dec 16 17:16:13 atom gogs[1991]: 2018/12/16 17:16:13 [TRACE] Log path: /home/git/bin/gogs/log
  502. Dec 16 17:16:13 atom gogs[1991]: 2018/12/16 17:16:13 [TRACE] Log Mode: File (Trace)
  503. Dec 16 17:16:13 atom gogs[1991]: 2018/12/16 17:16:13 [ INFO] Gogs on Yojik.net 0.11.66.0916
  504. root@atom:/etc/systemd/system# service gogs stop
  505. root@atom:/etc/systemd/system# service gogs start
  506. root@atom:/etc/systemd/system# tail -f /var/log/daemon.log
  507. Dec 16 17:16:13 atom gogs[1991]: 2018/12/16 17:16:13 [TRACE] Log path: /home/git/bin/gogs/log
  508. Dec 16 17:16:13 atom gogs[1991]: 2018/12/16 17:16:13 [TRACE] Log Mode: File (Trace)
  509. Dec 16 17:16:13 atom gogs[1991]: 2018/12/16 17:16:13 [ INFO] Gogs on Yojik.net 0.11.66.0916
  510. Dec 16 17:16:28 atom systemd[1]: Stopping Gogs...
  511. Dec 16 17:16:28 atom systemd[1]: Stopped Gogs.
  512. Dec 16 17:16:33 atom systemd[1]: Started Gogs.
  513. Dec 16 17:16:33 atom gogs[2053]: 2018/12/16 17:16:33 [TRACE] Custom path: /home/git/bin/gogs/custom
  514. Dec 16 17:16:33 atom gogs[2053]: 2018/12/16 17:16:33 [TRACE] Log path: /home/git/bin/gogs/log
  515. Dec 16 17:16:33 atom gogs[2053]: 2018/12/16 17:16:33 [TRACE] Log Mode: File (Trace)
  516. Dec 16 17:16:33 atom gogs[2053]: 2018/12/16 17:16:33 [ INFO] Gogs on Yojik.net 0.11.66.0916
  517. </code></pre>
  518. <p>Le lancement de gogs marche parfaitement.</p>
  519. <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>
  520. </div>
  521. </div>
  522. <footer>
  523. <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
  524. <a href="../18-dixhuit/" class="btn btn-neutral" title="Installation d'un webmail"><span class="icon icon-circle-arrow-left"></span> Previous</a>
  525. </div>
  526. <hr/>
  527. <div role="contentinfo">
  528. <!-- Copyright etc -->
  529. </div>
  530. 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>.
  531. </footer>
  532. </div>
  533. </div>
  534. </section>
  535. </div>
  536. <div class="rst-versions" role="note" style="cursor: pointer">
  537. <span class="rst-current-version" data-toggle="rst-current-version">
  538. <span><a href="../18-dixhuit/" style="color: #fcfcfc;">&laquo; Previous</a></span>
  539. </span>
  540. </div>
  541. </body>
  542. </html>