# List of possible Files and expected Structure * CMS/``/ * conf.sh * preconf.sh * apt.list * ``-conf.sh * ``-preconf.sh * ``-apt.list * ``-unconfigured # File Explanation | File Name | Description | | -------- | ------------ | | preconf.sh | Pre config/apt install commands runs for all web servers | | conf.sh | Configuration runs for all webservers | | apt.list | packagelist for all webservers | | ``-preconf.sh | Pre config/apt install commands runs for specified webserver | | ``-conf.sh | Configuration runs for specified webserver | | ``-apt.list | packagelist for specified webserver | | ``-unconfigured | webserver(vhost) config | # Example File Content for minimal CMS using NGINX ## nginx-conf.sh ``` #Getting Nginx SiteConfig wget -q -t7 "$repo"/raw/branch/"$branch"/CMS//Nginx-unconfigured -O /tmp/nginx-siteconf #Configuring Nginx SiteConfig sed -i -e 's/PHPver/'$phpver'/g' -e 's/DOMAINname/'$domain'/' /tmp/nginx-siteconf sed -i -e "0,/^#ConfHere/s/\(^#Conf.*\)/#ConfHere1 /" -e '/#ConfHere1/ r /tmp/nginx-siteconf' -e '/#ConfHere/c\' /etc/nginx/sites-enabled/"$domain" #Crating dir for serving documents mkdir -p /var/www/"$domain"/html chown www-data:www-data -R /var/www/"$domain"/html #Restarting Nginx systemctl reload nginx ``` ## Nginx-unconfigured ``` #Getting Nginx SiteConfig wget -q -t7 "$repo"/raw/branch/"$branch"/CMS//Nginx-unconfigured -O /tmp/nginx-siteconf #Configuring Nginx SiteConfig sed -i -e 's/PHPver/'$phpver'/g' -e 's/DOMAINname/'$domain'/' /tmp/nginx-siteconf sed -i -e "0,/^#ConfHere/s/\(^#Conf.*\)/#ConfHere1 /" -e '/#ConfHere1/ r /tmp/nginx-siteconf' -e '/#ConfHere/c\' /etc/nginx/sites-enabled/"$domain" #Crating dir for serving documents mkdir -p /var/www/"$domain"/html chown www-data:www-data -R /var/www/"$domain"/html #Restarting Nginx systemctl reload nginx ``` Make sure the config always starts with #beginConf and ends with #endConf So the installer can keep track of the config # Defining in the menu ### Add the following to ModulesMenu.list For each webserver a list define seperate. ### Rules for Cms names in menu * a “:” needs to be appended * the repo name must not contain capital leters * the name need a “/” pre and appended Example CMS name: "test-cms" ### For Whiptail add under the previous “CMSL+” make sure to add to all supported webservers ``` CMSL+=(":" "." OFF) ``` ### For legacy add to the “``CMSL variable after the last entry and before "None" Make sure the the entry is quoted, otherwise the installer will break