diff --git a/docker/init.sh b/docker/init.sh index e5c103eceb6ca6c53e8aadc1cf859298114feff0..060db24942ad10e1bb0f3abca96443d85f55d289 100755 --- a/docker/init.sh +++ b/docker/init.sh @@ -9,6 +9,8 @@ # 2022-11-16 v1.2 <www.axel-hahn.de> use docker-compose -p "$APP_NAME" # 2022-12-18 v1.3 <www.axel-hahn.de> add -p "$APP_NAME" in other docker commands # 2022-12-20 v1.4 <axel.hahn@unibe.ch> replace fgrep with grep -F +# 2023-03-06 v1.5 <www.axel-hahn.de> up with and without --build +# 2023-08-17 v1.6 <www.axel-hahn.de> menu selection with single key (without return) # ====================================================================== cd $( dirname $0 ) @@ -17,7 +19,7 @@ cd $( dirname $0 ) # git@git-repo.iml.unibe.ch:iml-open-source/docker-php-starterkit.git selfgitrepo="docker-php-starterkit.git" -_version="1.4" +_version="1.6" # ---------------------------------------------------------------------- # FUNCTIONS @@ -226,8 +228,14 @@ function _showInfos(){ echo } +# helper for menu: print an inverted key +function _key(){ + printf "\e[4;7m ${1} \e[0m" +} + +# helper: wait for a return key function _wait(){ - echo -n "... press RETURN > "; read dummy + echo -n "... press RETURN > "; read -r } # ---------------------------------------------------------------------- @@ -245,21 +253,25 @@ while true; do _showContainers h2 MENU - echo " g - remove git data of starterkit" + echo " $( _key g ) - remove git data of starterkit" + echo + echo " $( _key i ) - init application: set permissions" + echo " $( _key t ) - generate files from templates" + echo " $( _key T ) - remove generated files" echo - echo " i - init application: set permissions" - echo " t - generate files from templates" - echo " T - remove generated files" + echo " $( _key u ) - startup containers docker-compose ... up -d" + echo " $( _key U ) - startup containers docker-compose ... up -d --build" + echo " $( _key s ) - shutdown containers docker-compose stop" + echo " $( _key r ) - remove containers docker-compose rm -f" echo - echo " u - startup containers docker-compose up -d" - echo " s - shutdown containers docker-compose stop" - echo " r - remove containers docker-compose rm -f" + echo " $( _key m ) - more infos" + echo " $( _key c ) - console (bash)" echo - echo " m - more infos" - echo " c - console (bash)" + echo " $( _key q ) - quit" echo echo -n " select >" - read action + read -rn 1 action + echo fi case "$action" in @@ -277,18 +289,22 @@ while true; do _removeGeneratedFiles rm -rf containers ;; - f) - _removeGeneratedFiles - _generateFiles - _wait - ;; + # not in the menu + # f) + # _removeGeneratedFiles + # _generateFiles + # _wait + # ;; m) _showInfos _wait ;; - u) - if docker-compose -p "$APP_NAME" --verbose up -d --remove-orphans --build; then - # test ! -z "${APP_ONSTARTUP}" && sleep 2 && docker exec -it appmonitor-server /bin/bash -c "${APP_ONSTARTUP}" + u|U) + dockerUp="docker-compose -p "$APP_NAME" --verbose up -d --remove-orphans" + if [ "$action" = "U" ]; then + dockerUp+=" --build" + fi + if $dockerUp; then echo "In a web browser:" echo " $frontendurl" else @@ -311,7 +327,11 @@ while true; do read dockerid test -z "$dockerid" || docker exec -it $dockerid /bin/bash ;; - *) echo "ACTION [$action] NOT IMPLEMENTED." + q) + exit 0; + ;; + *) + test -n "$action" && ( echo " ACTION FOR [$action] NOT IMPLEMENTED."; sleep 1 ) esac action= done diff --git a/docs/20_Installation.md b/docs/20_Installation.md index d6c95e7e83d5636431d87c215395ee355081e558..06deacb6d0f6bc126685a6d50b62fc2ac2cb904a 100644 --- a/docs/20_Installation.md +++ b/docs/20_Installation.md @@ -1,4 +1,30 @@ -## Start from scratch +## First steps + +This project contains files for docker, the docs and webroot with a demo of implemented components. +To bring up and running: + +You need + +* a rootless docker instance (if it is working with docker as root I didn't tested). +* docker compose +* facl + +Steps: + +* start ./docker/init.sh +* press ``i`` to apply write permissions with setfacl command +* press ``u`` to startup the container + +In your browser open http://localhost:8008/. + +## Start a new project using demo page + +Steps: + +* delete the directories .git + docs +* delete the files .gitignore + readme.md + +## Start from scratch (WIP) If you have no AdminLTE page and want to jump in from point zero: diff --git a/public_html/classes/pageinclude.class.php b/public_html/classes/pageinclude.class.php new file mode 100644 index 0000000000000000000000000000000000000000..e5dc4c3028edabc452478893cdae1f0cbea77160 --- /dev/null +++ b/public_html/classes/pageinclude.class.php @@ -0,0 +1,53 @@ +<?php + + +class pageinclude{ + + protected $_request; + protected $_sPageFile; + protected $_sPagesDir; + + /** + * init + * @return bool + */ + public function __construct(){ + $this->_sPagesDir=__DIR__.'/../pages/'; + return true; + } + + protected function _detectPagefile(){ + $_request=$_SERVER['REQUEST_URI']; + $sPagefile=preg_replace('/\?.*$/', '', $_request); + if($sPagefile=="/"){ + $sPagefile="/index"; + } + return $sPagefile.=".php"; + } + + /** + * set another base dir for pages + * @param string $sDir path of the new pages dir + * @return bool + */ + public function setPagedir($sDir){ + if(is_dir($sDir)){ + $this->_sPagesDir=$sDir; + return true; + } + return false; + } + + public function getPage(){ + $this->_sPageFile=$this->_detectPagefile(); + ob_start(); + // echo "$this->_sPagesDir.$this->_sPageFile<br>"; + if (!@include($this->_sPagesDir.$this->_sPageFile)) { + echo "$this->_sPagesDir.$this->_sPageFile<br>"; + @include($this->_sPagesDir."error_404.php"); + } + $sPhpOut = ob_get_contents(); + ob_end_clean(); + return $sPhpOut; + } +} \ No newline at end of file diff --git a/public_html/config/navi_left.php b/public_html/config/navi_left.php new file mode 100644 index 0000000000000000000000000000000000000000..645a61cc429f6d53d6dc8004bc11115f154872cd --- /dev/null +++ b/public_html/config/navi_left.php @@ -0,0 +1,14 @@ +<?php + +// icons: https://fontawesome.com/v5/search?o=r&m=free + +return [ + ['href'=>'#', 'label'=>'Menu A', 'icon'=>'fas fa-home' ], + ['href'=>'#', 'label'=>'Menu B', 'icon'=>'fas fa-tv'], + ['href'=>'#', 'label'=>'Menu C', 'icon'=>'fas fa-truck-pickup', + 'children'=>[ + ['href'=>'#', 'label'=>'FAQ' , 'icon'=>'fas fa-truck-monster'], + ['href'=>'#', 'label'=>'Support' , 'icon'=>'fas fa-truck-moving'], + ] + ] +]; \ No newline at end of file diff --git a/public_html/config/navi_top.php b/public_html/config/navi_top.php new file mode 100644 index 0000000000000000000000000000000000000000..3f48208c4dd0180993e3889403d5cf0630256afc --- /dev/null +++ b/public_html/config/navi_top.php @@ -0,0 +1,15 @@ +<?php + +// icons: https://fontawesome.com/v5/search?o=r&m=free + +return [ + ['href'=>'/index.php', 'label'=>'MyHome' , 'icon'=>'fas fa-home', 'class'=>'bg-gray'], + ['href'=>'#', 'label'=>'Contact' ], + ['href'=>'#', 'label'=>'Help', + 'children'=>[ + ['href'=>'#', 'label'=>'FAQ'], + ['label'=>'-'], + ['href'=>'#', 'label'=>'Support'], + ] + ] +]; \ No newline at end of file