From 3449eb2206740507f7a8a03fd01899c393e2bc81 Mon Sep 17 00:00:00 2001
From: "Hahn Axel (hahn)" <axel.hahn@iml.unibe.ch>
Date: Fri, 25 Nov 2022 09:32:18 +0100
Subject: [PATCH] update docs

---
 docs/10_Introduction/10_Requirements.md       |  14 +
 docs/10_Introduction/20_Features.md           |  10 +
 .../30_How_does_it_work.md                    |   0
 docs/10_Introduction/_index.md                |  42 +++
 ...{10_Installation.md => 20_Installation.md} |   0
 ...0_Configuration.md => 30_Configuration.md} |   0
 docs/40_Usage.md                              |  21 +-
 docs/_index.md                                |  74 +---
 docs/config.json                              |   3 +-
 docs/style.css                                | 330 +++++++++++-------
 10 files changed, 300 insertions(+), 194 deletions(-)
 create mode 100644 docs/10_Introduction/10_Requirements.md
 create mode 100644 docs/10_Introduction/20_Features.md
 rename docs/{ => 10_Introduction}/30_How_does_it_work.md (100%)
 create mode 100644 docs/10_Introduction/_index.md
 rename docs/{10_Installation.md => 20_Installation.md} (100%)
 rename docs/{20_Configuration.md => 30_Configuration.md} (100%)

diff --git a/docs/10_Introduction/10_Requirements.md b/docs/10_Introduction/10_Requirements.md
new file mode 100644
index 0000000..990e2a7
--- /dev/null
+++ b/docs/10_Introduction/10_Requirements.md
@@ -0,0 +1,14 @@
+## Requirements
+
+A few Linux standard tools are required. It should run on any GNU Linux.
+
+* Bash
+* Curl
+* sed
+
+Tested environments:
+
+* CentOS
+* Debian
+* Manjaro
+* Ubuntu
diff --git a/docs/10_Introduction/20_Features.md b/docs/10_Introduction/20_Features.md
new file mode 100644
index 0000000..e56a473
--- /dev/null
+++ b/docs/10_Introduction/20_Features.md
@@ -0,0 +1,10 @@
+## Features
+
+* Secure download from CI package server using shared secret
+* detect a changed download to run an upgrade or just apply rules for configs
+* Extraction to target dir
+* Cleanup: delete all files in target dir that are not included in the software package
+* Create (config) files by inserting strings into placeholders
+* Several hooks to allow custom actions, eg. restart a service un changes
+* Handle multiple applications on a machine (aka profiles)
+* Writes a logfile per execution and application (and to stdout)
diff --git a/docs/30_How_does_it_work.md b/docs/10_Introduction/30_How_does_it_work.md
similarity index 100%
rename from docs/30_How_does_it_work.md
rename to docs/10_Introduction/30_How_does_it_work.md
diff --git a/docs/10_Introduction/_index.md b/docs/10_Introduction/_index.md
new file mode 100644
index 0000000..93f576d
--- /dev/null
+++ b/docs/10_Introduction/_index.md
@@ -0,0 +1,42 @@
+# IML deployment client
+
+This client is a set of bash scripts to deploy a package that was built on th IML CI server.
+
+```mermaid
+graph LR
+
+    %% ----- STYLING
+    style CIserver     fill:none,stroke:#aaa,stroke-dasharray: 3 5
+    style DeployClient fill:#8e8,stroke:#4a3,stroke-width:2px
+
+    %% ----- GRAPH
+    subgraph CIserver
+        CI(CI<br>deployment<br>web gui) --> |Build| PkgDir 
+        PkgDir[Package<br>dir]
+    end
+
+    PkgDir --> |rsync| Pkg1
+    PkgDir --> |rsync| Pkg2
+    PkgDir --> |rsync| Pkg3
+
+    Pkg1(CI package<br>server 1) --> |secure<br>download| DeployClient
+    Pkg2(CI package<br>server N)
+    Pkg3(Puppet master)
+
+    subgraph Appserver
+        DeployClient --> |installs| ApplicationA(Application A)
+        DeployClient --> |installs| ApplicationB(Application B)
+    end
+
+```
+
+You need to put the files to the appliation servers. The task of the deployment client are:
+
+* fetch software with a secure download
+* extract the packages
+* generates configs by replacing variables in templates
+
+This project is related to
+
+* CI deployment web gui <https://git-repo.iml.unibe.ch/iml-open-source/imldeployment> - it builds the software packages
+* CI package server <https://git-repo.iml.unibe.ch/iml-open-source/ci-pkg> - a sattelite with all build packages
diff --git a/docs/10_Installation.md b/docs/20_Installation.md
similarity index 100%
rename from docs/10_Installation.md
rename to docs/20_Installation.md
diff --git a/docs/20_Configuration.md b/docs/30_Configuration.md
similarity index 100%
rename from docs/20_Configuration.md
rename to docs/30_Configuration.md
diff --git a/docs/40_Usage.md b/docs/40_Usage.md
index 506f428..aad84a9 100644
--- a/docs/40_Usage.md
+++ b/docs/40_Usage.md
@@ -7,24 +7,27 @@ This is the main deployment script.
 
 ```txt
 ./deploy_app.sh -h
+_______________________________________________________________________________
 
+ IML - DEPLOYMENT CLIENT
+ DOCS: https://os-docs.iml.unibe.ch/imldeployment-client/                 _____
+_________________________________________________________________________/ v0.9
 
-<<<<<<<<<<##########|  IML - DEPLOYMENT SCRIPT  |##########>>>>>>>>>>
+HELP:
+  Loads one or more profiles profile to deploy an application.
+  If the download file is not newer then it does not extract files and does not
+  Optionally it cleans up the target directory.
+  Runs pre and post hooks - it updates the config files only and sets the owner.
 
-HELP
-Load one or more profiles profile to deploy an application.
-If the download file is not newer then it does not extract files and does not
-run pre and post hooks - it updates the config files only and sets the owner.
-
-Syntax:
+SYNTAX:
   deploy_app.sh [OPTION] [PROFILE(S)]
 
-Optioms:
+OPTIONS:
   -h | show this help and exit
   -f | force full installation even if the download file is not newer
   -l | list exiting profile names
 
-Profile(s):
+PROFILE(S):
   Set one or more valid profile names. By default it loops over all profiles.
   This prameter limits the execution to the given profiles.
   Use option -l to get a list of profiles.
diff --git a/docs/_index.md b/docs/_index.md
index 534b246..e037f34 100644
--- a/docs/_index.md
+++ b/docs/_index.md
@@ -1,64 +1,10 @@
-# IML deployment client
-
-This client is a set of bash scripts to deploy a package that was built on th IML CI server.
-It handles a secure download, extracts the package, generates configs.
-
-```mermaid
-graph LR
-    CI(CI<br>deployment<br>web gui) --> |Build| PkgDir 
-    PkgDir[Package<br>dir]
-
-    PkgDir --> |rsync| Pkg1
-    PkgDir --> |rsync| Pkg2
-    PkgDir --> |rsync| Pkg3
-
-    Pkg1(CI package<br>server 1) --> |secure<br>download| DeployClient
-    Pkg2(CI package<br>server N)
-    Pkg3(Puppet master)
-
-    subgraph Appserver
-        DeployClient --> |installs| ApplicationA(Application A)
-        DeployClient --> |installs| ApplicationB(Application B)
-    end
-
-```
-
-
-This project is related to
-
-* CI deployment web gui <https://git-repo.iml.unibe.ch/iml-open-source/imldeployment>
-* CI package server <https://git-repo.iml.unibe.ch/iml-open-source/ci-pkg>
-
-## License
-
-GNU GPL 3.0
-
-## Source
-
-URL: <https://git-repo.iml.unibe.ch/iml-open-source/imldeployment-client/>
-
-## Requirements
-
-A few Linux standard tools are required. It should run on any GNU Linux.
-
-* Bash
-* Curl
-* sed
-
-Tested environments:
-
-* CentOS
-* Debian
-* Manjaro
-* Ubuntu
-
-## Features
-
-* Secure download from CI package server using shared secret
-* detect a changed download to run an upgrade or just apply rules for configs
-* Extraction to target dir
-* Cleanup: delete all files in target dir that are not included in the software package
-* Create (config) files by inserting strings into placeholders
-* Several hooks to allow custom actions, eg. restart a service un changes
-* Handle multiple applications on a machine (aka profiles)
-* Writes a logfile per execution and application (and to stdout)
+<html>
+<div class="hero">
+    <h2>Welcome</h2>
+    a set of bash scripts to deploy a package that was built on th IML CI server
+</div>
+</html>
+
+📄 Source: <https://git-repo.iml.unibe.ch/iml-open-source/imldeployment-client/> \
+📜 GNU GPL 3.0 \
+📗 Docs: <https://os-docs.iml.unibe.ch/imldeployment-client/>
\ No newline at end of file
diff --git a/docs/config.json b/docs/config.json
index 82afde3..11dd14b 100644
--- a/docs/config.json
+++ b/docs/config.json
@@ -17,7 +17,8 @@
             "basepath": "https://git-repo.iml.unibe.ch/iml-open-source/imldeployment-client/tree/master/docs"
         },
         "links": {
-            "Git Repo": "https://git-repo.iml.unibe.ch/iml-open-source/imldeployment-client/"
+            "Git Repo": "https://git-repo.iml.unibe.ch/iml-open-source/imldeployment-client/",
+            "IML Opensource": "https://os-docs.iml.unibe.ch/"   
         },
         "theme": "daux-blue",
         "search": true
diff --git a/docs/style.css b/docs/style.css
index 1ceb0eb..188bab0 100644
--- a/docs/style.css
+++ b/docs/style.css
@@ -1,176 +1,266 @@
 /*
-
     patch css elements of daux.io blue theme
-    version 2022-04-22
-
+    version 2022-11-22
 */
-
-
-/* ---------- vars ---------- */ 
-
-:root{
-
-    /* background colors */
-    --bg:none;
-    --bg-body: #fff;
-    --bg-navlinkactive:#f4f4f4;
-    --bg-navlinkactive: linear-gradient(-90deg,rgba(0,0,0,0), rgba(40,60,80,0.05) 30%);
-    --bg-pre:#f8f8f8;
-    --bg-toc: #fff;
-
-    /* foreground colors */
-    --color: #234;
-    --navlinkactive:#f33;
-    --title: #aaa;
-
-    --link:#12a;
-    --toclink:rgba(40,60,80,0.8);
-
-    --h1: rgba(40,60,80,0.8);
-    --h1-bottom: 1px solid rgba(40,60,80,0.1);
-    --h2: rgba(40,60,80,0.5);
-    --h3: rgba(40,60,80,0.3);
-
+:root {
+    /* Axels Overrides */
+    --link-color: #37a;
+    --brand-color: var(--color-secondary);
+    --brand-background: var(--body-background);
+    --hr-color: none;
+    --search-field-background: none;
+    --search-field-border-color: none;
+    --sidebar-background: var(--body-background);
+    --sidebar-border-color: none;
+    --sidebar-link-active-background: #e8f4f6;
+    --sidebar-link-active-background: #eee;
+    /* Axels custom values */
+    --axel_bg-toc: var(--body-background);
+    --axel_bg-toc-head: #f8f8f8;
+    --axel_brand-background: none;
+    --axel_brand-pre-background: rgb(255, 0, 51);
+    ;
+    --axel_brand-pre-background-hover: rgb(255, 0, 51);
+    ;
+    --axel_h1_header: none;
+    --axel_h1: #345;
+    --axel_h1-bg: none;
+    --axel_h1-bottom: 3px solid none;
+    --axel_h2: #27a;
+    --axel_h2-bg: #fafafa;
+    --axel_h2-bottom: 2px solid #8ce;
+    --axel_h2-hero-bottom: 2px solid #912;
+    --axel_h3: #838;
+    --axel_h3-bottom: 1px solid #ddd;
+    --axel_hero_bg: #f8f8f8;
+    --axel_nav-bg: #fcfcfc;
+    --axel_nav-buttomborder: #ddd;
+    --axel_pre-background: #f8f8f8;
+    --axel-th-background: #d0e0e8;
+    --axel-article-nav-border-top: 0px dotted #ddd;
 }
 
-/* ---------- tags ---------- */
+.dark {
+    /* Axels Overrides */
+    --color-text: #c0c0c0;
+    --link-color: #6bd;
+    --brand-color: var(--color-text);
+    --brand-background: var(--body-background);
+    --hr-color: none;
+    --code-tag-background-color_: #bcc;
+    --search-field-background: none;
+    --search-field-border-color: none;
+    --sidebar-background: var(--body-background);
+    --sidebar-border-color: none;
+    --sidebar-link-active-background: #333;
+    /* Axels custom values */
+    --axel_bg-toc: var(--body-background);
+    --axel_bg-toc-head: #333;
+    --axel_brand-background: none;
+    --axel_brand-pre-background: rgb(255, 0, 51);
+    ;
+    --axel_brand-pre-background-hover: rgb(255, 0, 51);
+    ;
+    --axel_h1_header: none;
+    --axel_h1: #777;
+    --axel_h1-bg: none;
+    --axel_h1-bottom: none;
+    --axel_h2: #27a;
+    --axel_h2-bg: #282828;
+    --axel_h2-bottom: 2px solid #256;
+    --axel_h2-hero-bottom: 2px solid #712;
+    --axel_h3: #838;
+    --axel_h3-bottom: 1px solid #333;
+    --axel_hero_bg: #242424;
+    --axel_nav-bg: #242424;
+    --axel_nav-buttomborder: #555;
+    --axel_pre-background: #bcc;
+    --axel-th-background: #203038;
+    --axel-article-nav-border-top: 0px dotted #234;
+}
 
+/* ---------- left side ---------- */
 a.Brand::before {
-	background: rgb(255,0,51);
-	color: #fff;
+    background: var(--axel_brand-pre-background);
+    color: #fff;
     font-family: arial;
-	font-weight: bold;
-	padding: 0.5em 0.3em;
-	content: 'IML';
+    font-weight: bold;
+    padding: 0.5em 0.3em;
+    content: 'IML';
     margin-right: 0.4em;
+    float: left;
 }
 
-body, *{color: var(--color);}
-body{background: var(--bg-body);}
-
-
-a{color: var(--link);}
-a:hover{opacity: 0.7;}
-
-h1>a{ color:var(--title);}
-_h1:nth-child(1){position: fixed; background: var(--bg); box-shadow: 0 0 1em #ccc; padding: 0 1em}
-h1:nth-child(1)>a{ color:var(--navlinkactive); }
-
-.s-content h1{color: var(--h1); font-size: 200%; font-weight:bold; margin-top: 2em; border-bottom: var(--h1-bottom);}
-.s-content h2{color: var(--h2); font-size: 160%; }
-.s-content h3{color: var(--h3); font-size: 140%; }
-.s-content h4{margin: 0; font-size: 100%; text-align: center; background-color: rgba(0,0,0,0.05);padding: 0.3em;}
-
-.s-content pre{
-    background: var(--bg-pre);
+a.Brand:hover::before {
+    background: var(--axel_brand-pre-background-hover);
 }
 
-/* ---------- classes ---------- */
-
-.required{color:#a42;}
-.optional{color:#888;}
+a.Brand {
+    background: var(--axel_brand-background);
+    font-size: 200%;
+    height: 4em;
+}
 
+/* ---------- page header: breadcrumb ---------- */
+.Page__header {
+    border: none;
+}
 
-/* ----- top left */
-.Brand,
-.Columns__left {
-	background: var(--bg);
-	border-right: 0px solid #e7e7e9;
-    color: var(--color);
+.Page__header a {
+    color: var(--axel_h1_header);
 }
-.Brand{font-size: 200%;
-    background_: linear-gradient(-10deg,#fff 50%, #ddd);
-    background: var(--bg);
+
+.Page__header h1 {
+    font-size: 1.3em;
 }
-.Columns__right__content {
-	background: var(--bg);
+
+/* ---------- page content ---------- */
+.s-content {
+    padding-top: 1em;
 }
 
-/* ----- Navi left */
+.s-content h1 {
+    background: var(--axel_h1-bg);
+    color: var(--axel_h1);
+    font-size: 200%;
+    font-weight: bold;
+    margin-bottom: 2em;
+    margin-top: 2em;
+    border-bottom: var(--axel_h1-bottom);
+}
 
-.Nav a:hover{
-    background: none;
-    color: var(--navlinkactive) !important;
+.s-content h2 {
+    background: var(--axel_h2-bg);
+    color: var(--axel_h2);
+    font-size: 180%;
+    font-weight: bold;
+    margin-top: 4em;
+    border-bottom: var(--axel_h2-bottom);
 }
 
-.Nav__item--active {
-    border-right_: 0.3em solid var(--navlinkactive);
+h1:first-of-type {
+    margin-top: 0em;
 }
-.Nav__item--active > a{
-	background: var(--bg-navlinkactive);
-    color: var(--navlinkactive);
+
+h2:first-of-type {
+    margin-top: 0em;
 }
-.Nav .Nav .Nav__item--active a {
-    color: var(--navlinkactive);
+
+.s-content h3 {
+    background: var(--axel_h3-bg);
+    color: var(--axel_h3);
+    font-size: 150%;
+    font-weight: bold;
+    margin-top: 3em;
+    border-bottom: var(--axel_h3-bottom);
 }
-.Nav .Nav .Nav__item a {
-	opacity: 1;
+
+.s-content h4 {
+    margin: 0;
+    font-size: 100%;
+    text-align: center;
+    background-color: rgba(0, 0, 0, 0.05);
+    padding: 0.3em;
 }
-.Nav__item--open > a {
-	background-color: var(--bg);
+
+.s-content pre {
+    background: var(--axel_pre-background);
 }
 
-.Nav a[href*="__Welcome"]{
-    background: url("/icons/house.png") no-repeat 10px 4px ;
-    padding-left: 40px;
+/* FIX smaller fnt size in tables */
+.s-content table {
+    font-size: 1em;
 }
-.Nav a[href*="__How_does_it_work"]{
-    background: url("/icons/light-bulb.png") no-repeat 10px 4px ;
-    padding-left: 40px;
+
+.s-content table th {
+    background: var(--axel-th-background);
 }
 
+.s-content h3 code {
+    border: none;
+    background: none;
+}
 
+article nav {
+    border-top: var(--axel-article-nav-border-top);
+    margin: 8em 0 5em;
+}
 
+.Pager li>a {
+    padding: 1em 2em;
+}
 
 /* ---------- classes ---------- */
+.required {
+    color: #a42;
+}
 
-/* FIX smaller fnt size in tables */
-.s-content table {
-	font-size: 1em;
+.optional {
+    color: #888;
+}
+
+div.hero {
+    background: var(--axel_hero_bg);
+    border-radius: 2em;
+    padding: 5em 2em;
+    text-align: center;
+    margin-bottom: 1.5em;
 }
 
+div.hero h2 {
+    color: var(--color-text);
+    background: none;
+    border-bottom: var(--axel_h2-hero-bottom);
+    font-size: 300%;
+    margin: 0 0 2em;
+}
 
-/* TOC */
-@media(min-width:1700px){
-    .TableOfContentsContainer{
+/* ---------- TOC ---------- */
+@media(min-width:1700px) {
+    .TableOfContentsContainer {
         position: fixed;
         right: 2em;
         top: 1em;
     }
 }
 
-.TableOfContentsContainer{
-    border-top-left-radius: 1em;
-    background-color: var(--bg-toc);
-	border-left: 2px solid rgba(0,0,0,0.05);
-    padding: 0em;
+.TableOfContentsContainer {
+    background-color: var(--axel_bg-toc);
+    padding: 0.5em;
 }
-.TableOfContentsContainer__content {
 
-	border: none;
-	font-size: 0.5em;
+.s-content .TableOfContentsContainer h4 {
+    background-color: var(--axel_bg-toc-head);
+    border-top-left-radius: 1em;
+    font-size: 1.1em;
+    margin: 0;
+    padding: 0;
+}
 
+.TableOfContentsContainer__content {
+    border-width: 1px;
+    font-size: 0.5em;
 }
-ul.TableOfContents ul{
-	list-style-type: none;
+
+ul.TableOfContents ul {
+    list-style-type: none;
     padding-left: 1em;
 }
-.TableOfContentsContainer a{ color:var(--toclink);}
 
-.TableOfContentsContainer__content > .TableOfContents > li + li {
-	border-top: none;
-}
-.TableOfContentsContainer__content > .TableOfContents > li {
-	border-bottom: 1px dashed #ddd;
-}
+/* ----- Icons on links --- */
 
-/* pager - prev .. next */
-.s-content{
-    margin-bottom: 6em;
+.EditOn a::before{
+    content: '✏️ ';
 }
-.Pager{
-    border-top: 1px dashed #aaa; margin: 0; padding: 1em;
+
+.Links a[href^="https://github.com/"]::before {
+    content: '🌐 ';
 }
-.Pager a{
-    color:var(--navlinkactive);
+
+.Links a[href^="https://git-repo.iml.unibe.ch/"]::before {
+    content: '🌐 ';
 }
+
+.Links a[href^="https://os-docs.iml.unibe.ch"]::before {
+    content: '📗 ';
+}
\ No newline at end of file
-- 
GitLab