From b462cd7c5edc8c864be1a8c26c8dd650c2d8bca5 Mon Sep 17 00:00:00 2001 From: RaspbianProyect by HP3ICC Date: Sun, 12 Feb 2023 04:56:54 +0000 Subject: [PATCH] Add new file --- install.sh | 756 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 756 insertions(+) create mode 100644 install.sh diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..9ed2616 --- /dev/null +++ b/install.sh @@ -0,0 +1,756 @@ +#!/bin/sh +if [[ $EUID -ne 0 ]]; then + whiptail --title "FDMR+" --msgbox "Debe ejecutar este script como usuario ROOT" 0 50 + exit 0 +fi +###################################### +(crontab -l; echo "* */1 * * * sync ; echo 3 > /proc/sys/vm/drop_caches >/dev/null 2>&1")|awk '!x[$0]++'|crontab - +echo Actualizando sistema +apt update +# apt-get upgrade -y +sudo apt-get install wget -y +sudo apt-get install git -y +apt-get install sudo -y +apt install python3 python3-pip python3-dev libffi-dev libssl-dev cargo sed -y +apt install default-libmysqlclient-dev build-essential -y +######################### +if [ -f "/var/www/html/tgcount.php" ]; +then + sudo systemctl stop apache2 + #echo "found file" +else + echo "file not found" + +fi +if [ -f "/var/www/html/tgcount.php" ]; +then + sudo systemctl disable apache2 + #echo "found file" +else + echo "file not found" + +fi +if [ -f "/var/www/html/tgcount.php" ]; +then + sudo rm /var/www/html/* -r + #echo "found file" +else + echo "file not found" + +fi +if [ -d "/var/www/fdmr" ]; +then + rm -r /var/www/fdmr/ + #echo "found file" +else + echo "file not found" + +fi +if [ -d "/opt/FDMR-Monitor" ] +then + rm -r /opt/FDMR-Monitor + #echo "found file" + +fi +if [ -d "/opt/FreeDMR" ] +then + rm -r /opt/FreeDMR + #echo "found file" + +fi +if [ -d "/var/log/FreeDMR" ] +then + rm -r /var/log/FreeDMR + #echo "found file" +fi + mkdir /var/log/FreeDMR +######################## +if [ -f "/opt/obp.txt" ] +then + echo "found file" +else + sudo cat > /opt/obp.txt <<- "EOF" + +#Coloque abajo su lista de obp y peer +EOF +fi +if [ -d "/var/www" ] +then + echo "found file" +else + mkdir /var/www +fi +if [ -d "/var/www/fdmr" ] +then + echo "found file" +else + mkdir /var/www/fdmr +fi +######################### +#lamp + +sudo apt install mariadb-server php libapache2-mod-php php-zip php-mbstring php-cli php-common php-curl php-xml php-mysql -y + +systemctl restart mariadb +systemctl enable mariadb +#sudo mysql_secure_installation --host=localhost --port=3306 +echo "DROP USER emqte1@localhost" | /usr/bin/mysql -u root +echo "DROP DATABASE selfcare" | /usr/bin/mysql -u root + +newUser='emqte1' +newDbPassword='' +newDb='selfcare' +host=localhost +#host='%' + +# MySQL 5.7 and earlier versions +#commands="CREATE DATABASE \`${newDb}\`;CREATE USER '${newUser}'@'${host}' IDENTIFIED BY '${newDbPassword}';GRANT USAGE ON *.* TO '${newUser}'@'${host}' IDENTIFIED BY '${newDbPassword}';GRANT ALL privileges ON \`${newDb}\`.* TO '${newUser}'@'${host}' IDENTIFIED BY '${newDbPassword}';FLUSH PRIVILEGES;" + +# MySQL 8 and higher versions +commands="CREATE DATABASE \`${newDb}\`;CREATE USER '${newUser}'@'${host}' IDENTIFIED BY '${newDbPassword}';GRANT USAGE ON *.* TO '${newUser}'@'${host}';GRANT ALL ON \`${newDb}\`.* TO '${newUser}'@'${host}';FLUSH PRIVILEGES;" + +#cho "${commands}" | /usr/bin/mysql -u root -p +echo "${commands}" | /usr/bin/mysql -u root +################# +#FDMR Server +cd /opt +git clone https://gitlab.hacknix.net/hacknix/FreeDMR.git +sudo rm /opt/FreeDMR/hotspot_proxy_v2.py +cd FreeDMR +mkdir config +mkdir /var/log/FreeDMR +chmod +x /opt/FreeDMR/install.sh +./install.sh +sudo cat > /opt/conf.txt <<- "EOF" + +[D-APRS] +MODE: MASTER +ENABLED: True +REPEAT: False +MAX_PEERS: 1 +EXPORT_AMBE: False +IP: +PORT: 52555 +PASSPHRASE: +GROUP_HANGTIME: 0 +USE_ACL: True +REG_ACL: DENY:1 +SUB_ACL: DENY:1 +TGID_TS1_ACL: PERMIT:ALL +TGID_TS2_ACL: PERMIT:ALL +DEFAULT_UA_TIMER: 10 +SINGLE_MODE: False +VOICE_IDENT: False +TS1_STATIC: +TS2_STATIC: +DEFAULT_REFLECTOR: 0 +ANNOUNCEMENT_LANGUAGE: es_ES +GENERATOR: 2 +ALLOW_UNREG_ID: True +PROXY_CONTROL: False +OVERRIDE_IDENT_TG: + +[EchoTest] +MODE: PEER +ENABLED: True +LOOSE: True +EXPORT_AMBE: False +IP: +#127.0.0.1 +PORT: 49060 +MASTER_IP: 127.0.0.1 +MASTER_PORT: 49061 +PASSPHRASE: passw0rd +CALLSIGN: ECHOTEST +RADIO_ID: 9990 +RX_FREQ: 449000000 +TX_FREQ: 444000000 +TX_POWER: 25 +COLORCODE: 1 +SLOTS: 3 +LATITUDE: 38.0000 +LONGITUDE: -095.0000 +HEIGHT: 75 +LOCATION: Local Parrot +DESCRIPTION: This is a cool repeater +URL: www.w1abc.org +SOFTWARE_ID: 20170620 +PACKAGE_ID: MMDVM_HBlink +GROUP_HANGTIME: 3 +OPTIONS: +#TS2=9990;DIAL=0;VOICE=0;TIMER=0 +USE_ACL: True +SUB_ACL: DENY:1 +TGID_TS1_ACL: DENY:ALL +TGID_TS2_ACL: PERMIT:9990 +TS1_STATIC: +TS2_STATIC:9990 +DEFAULT_REFLECTOR: 0 +ANNOUNCEMENT_LANGUAGE: en_GB +GENERATOR: 0 +DEFAULT_UA_TIMER: 999 +SINGLE_MODE: True +VOICE_IDENT: False + +EOF +## +cp /opt/FreeDMR/FreeDMR-SAMPLE.cfg /opt/ +cd /opt/ +cat FreeDMR-SAMPLE.cfg conf.txt obp.txt >> /opt/FreeDMR/config/FreeDMR.cfg +sudo sed -i 's/file-timed/console-timed/' /opt/FreeDMR/config/FreeDMR.cfg +sudo sed -i 's/INFO/DEBUG/' /opt/FreeDMR/config/FreeDMR.cfg +sudo sed -i 's/freedmr.log/\/var\/log\/FreeDMR\/FreeDMR.log/' /opt/FreeDMR/config/FreeDMR.cfg +sudo sed -i 's/ANNOUNCEMENT_LANGUAGE: en_GB/ANNOUNCEMENT_LANGUAGE: CW/' /opt/FreeDMR/config/FreeDMR.cfg +#sudo sed -i "s/TGID_URL:/#TGID_URL:/g" /opt/FreeDMR/config/FreeDMR.cfg +#sed '37 a TGID_URL: https://freedmr.cymru/talkgroups/talkgroup_ids_json.php' -i /opt/FreeDMR/config/FreeDMR.cfg + +rm /opt/conf.txt + +cd /opt/FreeDMR/ +mv loro.cfg /opt/FreeDMR/playback.cfg +sudo sed -i 's/54915/49061/' /opt/FreeDMR/playback.cfg + +###### + +sudo cat > /opt/FreeDMR/config/rules.py <<- "EOF" + +BRIDGES = { + '9990': [ + {'SYSTEM': 'EchoTest', 'TS': 2, 'TGID': 9990, 'ACTIVE':True, 'TIMEOUT': 0, 'TO_TYPE': 'NONE', 'ON': [9990], 'OFF': [], 'RESET': []}, + ], + +} +if __name__ == '__main__': + from pprint import pprint + pprint(BRIDGES) + + +EOF +################# +#FDMR-Monitor +cd /opt +sudo git clone https://github.com/hp3icc/FDMR-Monitor.git +cd FDMR-Monitor +sudo git checkout Self_Service +sudo chmod +x install.sh + +sudo sed -i 's/RELOAD_TIME = 15/RELOAD_TIME = 1/' /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg +sudo sed -i 's/FREQUENCY = 10/FREQUENCY = 120/' /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg +sudo chmod 644 /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg +sed '33 a ' -i /opt/FDMR-Monitor/html/sysinfo.php +#### +sudo sed -i "s/www\/html/www\/fdmr/g" /opt/FDMR-Monitor/html/*.* +sudo sed -i "s/www\/html/www\/fdmr/g" /opt/FDMR-Monitor/sysinfo/*.* +#### +sudo sed -i 's/localhost_2-day.png/localhost_1-day.png/' /opt/FDMR-Monitor/html/sysinfo.php +sudo sed -i "s/HBMonv2/FDMR-Monitor/g" /opt/FDMR-Monitor/sysinfo/*.sh +sudo chmod +x /opt/FDMR-Monitor/sysinfo/cpu.sh +sudo chmod +x /opt/FDMR-Monitor/sysinfo/graph.sh +sudo chmod +x /opt/FDMR-Monitor/sysinfo/rrd-db.sh + +sudo sed -i "s/root/emqte1/g" /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg +sudo sed -i "s/test/selfcare/g" /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg +sudo sed -i "s/PRIVATE_NETWORK = True/PRIVATE_NETWORK = False/g" /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg +#sudo sed -i "s/TGID_URL =/#TGID_URL =/g" /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg +#sed '63 a #TGID_URL = https://freedmr.cymru/talkgroups/talkgroup_ids_json.php' -i /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg +#sed '64 a #TGID_URL = https://freedmr.cymru/talkgroups/talkgroup_ids_flags_json.php' -i /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg + +cd /opt/FDMR-Monitor/ +#sudo rm /opt/FDMR-Monitor/install.sh +################ +sudo apt-get install rrdtool -y +sudo sed -i "s/www\/html/www\/fdmr/g" /opt/FDMR-Monitor/html/*.* +sudo sed -i "s/www\/html/www\/fdmr/g" /opt/FDMR-Monitor/sysinfo/*.* +# Install the required support programs +pip3 install -r requirements.txt +pip install pyopenssl --upgrade +cd /opt/FDMR-Monitor/ +cp /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg /opt/FDMR-Monitor/fdmr-mon.cfg + +cp /opt/FDMR-Monitor/proxy/hotspot_proxy_v2.py /opt/FreeDMR/hotspot_proxy_v2.py +cp /opt/FDMR-Monitor/proxy/proxy.cfg /opt/FreeDMR/proxy.cfg +cp /opt/FDMR-Monitor/proxy/proxy_db.py /opt/FreeDMR/proxy_db.py + +wget https://www.freedmr.uk/wp-content/uploads/2021/04/favicon.ico -O /opt/FDMR-Monitor/html/favicon.ico +sed '6 a ' -i /opt/FDMR-Monitor/html/index.php +wget https://www.freedmr.uk/wp-content/uploads/2021/04/Free_DMR_logo_250x141_72.png -O /opt/FDMR-Monitor/html/img/logo.png + +# +sudo cat > /opt/FDMR-Monitor/html/buttons.php <<- "EOF" + +Home +  + + + + + + + +EOF + +# + +mkdir /var/www/fdmr/ +cp -r /opt/FDMR-Monitor/html/* /var/www/fdmr/ +sudo chown www-data:www-data /var/www/fdmr/ -R +cp /opt/FDMR-Monitor/utils/logrotate/fdmr_mon /etc/logrotate.d/ + +cat > /opt/FDMR-Monitor/templates/main_table.html <<- "EOF" + +
+ .: Server Activity :.  +{% if _table['MASTERS']|length >0 %} + + + + + + + {% for _master in _table['MASTERS'] %} + {% for _client, _cdata in _table['MASTERS'][_master]['PEERS'].items() %} + {% if _cdata[1]['TS'] == True or _cdata[2]['TS'] == True %} + + {% if _cdata[1]['TRX'] == "RX" %} + + + + {% endif %} + {% if _cdata[2]['TRX'] == "RX" %} + + + + {% endif %} + + {% endif %} + {% endfor %} + {% endfor %} + +{% else %} +
Systems M&PSourceDestination
M: {{_master}} {{ _cdata[1]['SUB']|safe }} [TS {{ 1 if _cdata[1]['TS'] == True else 2 }}]{{ _cdata[1]['DEST']|safe }}M: {{_master}} {{ _cdata[2]['SUB']|safe }} [TS {{ 1 if _cdata[1]['TS'] == True else 2 }}]{{ _cdata[2]['DEST']|safe }}
+ + + +
Waiting for Data from FreeDMR Server ...
+ {% endif %} + {% for _peer, _pdata in _table['PEERS'].items() %} + {% if _pdata[1]['TS'] == True or _pdata[2]['TS'] == True %} + + {% if _pdata[1]['TRX'] == "RX" %} + P: {{_peer}} + {{ _pdata[1]['SUB']|safe }} [TS {{ 1 if _pdata[1]['TS'] == True else 2 }}] + {{ _cdata[1]['DEST']|safe }} + {% endif %} + {% if _pdata[2]['TRX'] == "RX" %} + P: {{_peer}} + {{ _pdata[2]['SUB']|safe }} [TS {{ 1 if _pdata[1]['TS'] == True else 2 }}] + {{ _pdata[2]['DEST']|safe }} + {% endif %} + + {% endif %} + {% endfor %} +
+ +{% if _table['OPENBRIDGES']|length >0 %} + + Systems OpenBridge + Active Incoming Calls + + {% for _openbridge in _table['OPENBRIDGES'] %} + {% set rx = namespace(value=0) %} + {% if _table['OPENBRIDGES'][_openbridge]['STREAMS']|length >0 %} + {% for entry in _table['OPENBRIDGES'][_openbridge]['STREAMS'] if _table['OPENBRIDGES'][_openbridge]['STREAMS'][entry][0]=='RX' %} + {% set rx.value=1 %} + {% endfor %} + {% if rx.value == 1 %} + + {{ _openbridge}} + + {% for entry in _table['OPENBRIDGES'][_openbridge]['STREAMS'] if _table['OPENBRIDGES'][_openbridge]['STREAMS'][entry][0] == 'RX' %}[{{ _table['OPENBRIDGES'][_openbridge]['STREAMS'][entry][0] }}: {{ _table['OPENBRIDGES'][_openbridge]['STREAMS'][entry][1] }} >> {{ _table['OPENBRIDGES'][_openbridge]['STREAMS'][entry][2] }}]  {% endfor %} + + + {% endif %} + {% endif %} + {% endfor %} +{% endif %} + +
+ + + + + + +{% if _table['SETUP']['LASTHEARD'] == True %} +
+ .: Lastheard :. + + + + + + + + + + + + {% for itm in lastheard %} + + + + {% if not itm[7] %} + + + {% else %} + + + {% endif %} + + + + + + {% endfor %} +
DateTimeCallsign (DMR-Id)NameTG#TG NameTX (s)System
{{ itm[0][:10] }}{{ itm[0][11:] }}{{ itm[6] }}{{ itm[7][0] }} ({{ itm[6] }}){{ itm[7][1] }}{{ itm[4] }}{{ '' if not itm[5] else itm[5]|safe }}{{ 'DATA' if not itm[1] else itm[1]|int }}{{ itm[3] }}
+
+{% endif %} + +
+ .: Connected to Server :. +
+{% if _table['MASTERS']|length >0 %} + +
+
  LINKS:
+
+ {% for _master in _table['MASTERS'] %} + {% if _table['MASTERS'][_master]['PEERS']|length >0 %} + {% for _client, _cdata in _table['MASTERS'][_master]['PEERS'].items() %} + + {{_cdata['CALLSIGN']}} + + +    DMR ID: {{ _client }}
+ {% if _cdata['RX_FREQ'] == 'N/A' and _cdata['TX_FREQ'] == 'N/A' %} +    Type: IP Network
+ {% else %} +    Type: Radio ({{ _cdata['SLOTS'] }})
+ {% endif %} +    Hardware: {{_cdata['PACKAGE_ID'] }} +
   Soft_Ver: {{_cdata['SOFTWARE_ID'] }} +
   Info: {{_cdata['LOCATION']}} +
   Master: {{_master}} +
  + {% endfor %} + {% endif %} + {% endfor %} +
+{% endif %} + + {% if _table['PEERS']|length >0 %} +

PEERS:

+
+ {% for _peer, _pdata in _table['PEERS'].items() %} +   {{_pdata['CALLSIGN']}}   + {% if _table['PEERS'][_peer]['STATS']['CONNECTION'] == 'YES' %} + Connected + {% else %} + Disconnected + {% endif %} +
+ {% endfor %} +
+ {% endif %} + +
+ + +EOF +# +sudo sed -i "s/Copyright (c) 2016-.*/Copyright (c) \"2016\") {\$cdate=\"2016-\".date(\"Y\");} echo \$cdate; ?>
/g" /var/www/fdmr/*.php +sudo sed -i "s/meta name=\"description.*/meta name=\"description\" content=\"Copyright (c) 2016-22.The Regents of the K0USY Group. All rights reserved. Version OA4DOA 2022 (v270422)\">/g" /var/www/fdmr/*.php +sudo sed -i '166 s/hotpink/#ad02fd/g' /var/www/fdmr/css/styles.php +sudo sed -i '217 s/color:white/color:black/' /var/www/fdmr/css/styles.php +sudo sed -i "251d" /var/www/fdmr/css/styles.php +sed '250 a ' -i /var/www/fdmr/css/styles.php + +sed '21 a # For custom color, select: pro' -i /opt/FDMR-Monitor/fdmr-mon.cfg + +sed '24 a COLOR_TEXT = #fff519' -i /opt/FDMR-Monitor/fdmr-mon.cfg +sed '25 a COLOR_1 = #000080' -i /opt/FDMR-Monitor/fdmr-mon.cfg +sed '26 a COLOR_2 = #193dff' -i /opt/FDMR-Monitor/fdmr-mon.cfg +#sed '27 a COLOR_BACKGROUND = 5a5958' -i /opt/FDMR-Monitor/fdmr-mon.cfg + +sed '45 a $cd1 = strtolower($config["GLOBAL"]["COLOR_1"]);' -i /var/www/fdmr/include/config.php +sed '46 a $cd2 = strtolower($config["GLOBAL"]["COLOR_2"]);' -i /var/www/fdmr/include/config.php +sed '47 a $cd3 = strtolower($config["GLOBAL"]["COLOR_TEXT"]);' -i /var/www/fdmr/include/config.php +sed '48 a $cd3 = strtolower($config["GLOBAL"]["COLOR_TEXT"]);' -i /var/www/fdmr/include/config.php +sed '49 a $cd4 = strtolower($config["GLOBAL"]["COLOR_BACKGROUND"]);' -i /var/www/fdmr/include/config.php + +sed '66 a } elseif ($theme == "pro") {' -i /var/www/fdmr/include/config.php +sed '67 a $tc = "background-image: linear-gradient(to bottom, $cd1 0%, $cd2 100%);color:$cd3;";' -i /var/www/fdmr/include/config.php + +sudo sed -i "s/THEME_COLOR = .*/THEME_COLOR = pro/g" /opt/FDMR-Monitor/fdmr-mon.cfg +sudo sed -i "s/PEER_URL = .*/PEER_URL = https:\/\/freedmr-lh.gb7fr.org.uk\/json\/peer_ids.json/g" /opt/FDMR-Monitor/fdmr-mon.cfg +sudo sed -i "s/SUBSCRIBER_URL = .*/SUBSCRIBER_URL = https:\/\/freedmr-lh.gb7fr.org.uk\/json\/subscriber_ids.json/g" /opt/FDMR-Monitor/fdmr-mon.cfg +sudo sed -i "s/TGID_URL = .*/TGID_URL = https:\/\/freedmr-lh.gb7fr.org.uk\/json\/talkgroup_ids.json/g" /opt/FDMR-Monitor/fdmr-mon.cfg + +python3 mon_db.py --create +python3 mon_db.py --update + +systemctl stop apache2 +systemctl disable apache2 +##################### +sudo sed -i "s/All rights reserved.
.*/All rights reserved.
\"2018\") {\$cdate=\"2018-\".date(\"Y\");} echo \$cdate; ?>\" target=\"_blank\" href=https:\/\/gitlab.com\/hp3icc\/FDMR+\/>Proyect: FDMR+<\/a>
/g" /var/www/fdmr/*.php +sudo sed -i "s/root/emqte1/g" /opt/FreeDMR/hotspot_proxy_v2.py +sudo sed -i "s/test/selfcare/g" /opt/FreeDMR/hotspot_proxy_v2.py +sudo sed -i "s/\/freedmr.cfg/\/config\/FreeDMR.cfg/g" /opt/FreeDMR/hotspot_proxy_v2.py +sudo sed -i "s/test/selfcare/g" /opt/FreeDMR/proxy_db.py +sudo sed -i "s/root/emqte1/g" /opt/FreeDMR/proxy_db.py +# +sudo sed -i "s/root/emqte1/g" /opt/FreeDMR/proxy.cfg +sudo sed -i "s/test/selfcare/g" /opt/FreeDMR/proxy.cfg +################# +chmod +x /opt/FDMR-Monitor/sysinfo/* +sh /opt/FDMR-Monitor/sysinfo/rrd-db.sh +(crontab -l; echo "*/5 * * * * sh /opt/FDMR-Monitor/sysinfo/graph.sh")|awk '!x[$0]++'|crontab - +(crontab -l; echo "*/2 * * * * sh /opt/FDMR-Monitor/sysinfo/cpu.sh")|awk '!x[$0]++'|crontab - +################## +#Service +sudo cat > /lib/systemd/system/proxy.service <<- "EOF" +[Unit] +Description= Proxy Service +After=multi-user.target + +[Service] +User=root +Type=simple +Restart=always +RestartSec=3 +StandardOutput=null +ExecStartPre=/bin/sh -c 'until ping -c1 noip.com; do sleep 1; done;' +ExecStart=/usr/bin/python3 /opt/FreeDMR/hotspot_proxy_v2.py -c /opt/FreeDMR/proxy.cfg + +[Install] +WantedBy=multi-user.target +EOF +######### +sudo cat > /lib/systemd/system/freedmr.service <<- "EOF" +[Unit] +Description=FreeDmr +After=multi-user.target + +[Service] +User=root +Type=simple +Restart=always +RestartSec=3 +StandardOutput=null +ExecStartPre=/bin/sh -c 'until ping -c1 noip.com; do sleep 1; done;' +ExecStart=/usr/bin/python3 /opt/FreeDMR/bridge_master.py -c /opt/FreeDMR/config/FreeDMR.cfg -r /opt/FreeDMR/config/rules.py + +[Install] +WantedBy=multi-user.target +EOF +### +sudo cat > /lib/systemd/system/fdmrparrot.service <<- "EOF" +[Unit] +Description=Freedmr Parrot +After=network-online.target syslog.target +Wants=network-online.target + +[Service] +StandardOutput=null +WorkingDirectory=/opt/FreeDMR +RestartSec=3 +ExecStart=/usr/bin/python3 /opt/FreeDMR/playback.py -c /opt/FreeDMR/playback.cfg +#/usr/bin/python3 /opt/HBlink3/playback.py -c /opt/HBlink3/playback.cfg +Restart=on-abort +[Install] +WantedBy=multi-user.target +EOF +# +cat > /lib/systemd/system/http.server-fdmr.service <<- "EOF" +[Unit] +Description=PHP http.server.fdmr +After=network.target + +[Service] +User=root +#ExecStartPre=/bin/sleep 30 +# Modify for different other port +ExecStart=php -S 0.0.0.0:80 -t /var/www/fdmr/ + +[Install] +WantedBy=multi-user.target +EOF +# +cat > /lib/systemd/system/fdmr_mon.service <<- "EOF" +[Unit] +Description=FDMR Monitor +# To make the network-online.target available +# systemctl enable systemd-networkd-wait-online.service +#After=network-online.target syslog.target +#Wants=network-online.target + +[Service] +User=root +Type=simple +Restart=always +RestartSec=3 +StandardOutput=null +WorkingDirectory=/opt/FDMR-Monitor +ExecStartPre=/bin/sh -c 'until ping -c1 noip.com; do sleep 1; done;' +ExecStart=python3 /opt/FDMR-Monitor/monitor.py +Restart=on-abort + +[Install] +WantedBy=multi-user.target +EOF +# +sudo cat > /bin/menu <<- "EOF" +#!/bin/bash +while : ; do +choix=$(whiptail --title "Raspbian Proyect HP3ICC FDMR+" --menu "move up or down with the keyboard arrows and select your option by pressing enter:" 23 56 13 \ +1 " Edit FreeDMR Server " \ +2 " Edit Interlink " \ +3 " Edit FDMR-Monitor " \ +4 " Edit Port HTTP " \ +5 " Start-Restart FreeDMR Server " \ +6 " Start-Restart FDMR-Monitor " \ +7 " Stop FreeDMR SERVER " \ +8 " Stop FDMR-Monitor " \ +9 " Menu update " 3>&1 1>&2 2>&3) +exitstatus=$? +#on recupere ce choix +#exitstatus=$? +if [ $exitstatus = 0 ]; then + echo "Your chosen option:" $choix +else + echo "You chose cancel."; break; +fi +# case : action en fonction du choix +case $choix in +1) +sudo nano /opt/FreeDMR/config/FreeDMR.cfg ;; +2) +sudo nano /opt/FreeDMR/config/rules.py ;; +3) +sudo nano /opt/FDMR-Monitor/fdmr-mon.cfg ;; +4) +sudo nano /lib/systemd/system/http.server-fdmr.service && systemctl daemon-reload && systemctl restart http.server-fdmr.service ;; +5) +sudo systemctl stop fdmrparrot.service +sudo systemctl start fdmrparrot.service +sudo systemctl enable fdmrparrot.service +sudo systemctl stop proxy.service +sudo systemctl start proxy.service +sudo systemctl enable proxy.service +sudo systemctl stop freedmr.service +sudo systemctl start freedmr.service +sudo systemctl enable freedmr.service ;; +6) +sudo systemctl stop fdmr_mon.service +sudo systemctl start fdmr_mon.service +sudo systemctl enable fdmr_mon.service +sudo systemctl stop http.server-fdmr.service +sudo systemctl start http.server-fdmr.service +sudo systemctl enable http.server-fdmr.service;; +7) +sudo systemctl stop fdmrparrot.service +sudo systemctl disable fdmrparrot.service +sudo systemctl stop proxy.service +sudo systemctl disable proxy.service +sudo systemctl stop freedmr.service +sudo systemctl disable freedmr.service ;; +8) +sudo systemctl stop fdmr_mon.service +sudo systemctl disable fdmr_mon.service +sudo systemctl stop http.server-fdmr.service +sudo systemctl disable http.server-fdmr.service;; +9) +sh -c "$(curl -fsSL https://gitlab.com/hp3icc/FDMR+/-/raw/main/update.sh)"; +esac +done +exit 0 +EOF +### +chmod +x /bin/menu +ln -s /bin/menu /bin/MENU +############################# +sudo systemctl daemon-reload +sudo systemctl start proxy.service +sudo systemctl enable proxy.service +sudo systemctl start fdmr_mon.service +sudo systemctl enable fdmr_mon.service +sudo systemctl start fdmrparrot.service +sudo systemctl enable fdmrparrot.service +sudo systemctl start http.server-fdmr.service +sudo systemctl enable http.server-fdmr.service