Files
VPS-scripts_Web-V2/Docs/docs/Dev-Adding-CMS.md
2020-04-29 11:03:05 +02:00

2.7 KiB

List of possible Files and expected Structure

  • CMS/<NewCmsName>/
    • conf.sh
    • preconf.sh
    • apt.list
    • <Webserver>-conf.sh
    • <Webserver>-preconf.sh
    • <Webserver>-apt.list
    • <Webserver>-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
<Webserver>-preconf.sh Pre config/apt install commands runs for specified webserver
<Webserver>-conf.sh Configuration runs for specified webserver
<Webserver>-apt.list packagelist for specified webserver
<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/<CMSName>/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/<CMSName>/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

<WebserverName>CMSL+=("<CMSName>:" "<CMS Description>." OFF)

For legacy

add to the “<WebserverName>CMSL variable after the last entry and before "None" Make sure the the entry is quoted, otherwise the installer will break