#!/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 - # apt-get upgrade -y apps=("wget" "git" "sudo" "python3" "python3-pip" "python3-dev" "libffi-dev" "libssl-dev" "cargo" "sed" "default-libmysqlclient-dev" "build-essential") for app in "${apps[@]}" do # Verificar apps if ! dpkg -s "$app" >/dev/null 2>&1; then # app no instalada sudo apt-get install -y "$app" else # app ya instalada echo "$app ya instalada" fi done ###################################################################################################################### # Cronedit ###################################################################################################################### cat > /usr/local/bin/cronedit.sh <<- "EOF" cronjob_editor () { # usage: cronjob_editor '' '' if [[ -z "$1" ]] ;then printf " no interval specified\n" ;fi if [[ -z "$2" ]] ;then printf " no command specified\n" ;fi if [[ -z "$3" ]] ;then printf " no action specified\n" ;fi if [[ "$3" == add ]] ;then # add cronjob, no duplication: ( sudo crontab -l | grep -v -F -w "$2" ; echo "$1 $2" ) | sudo crontab - elif [[ "$3" == remove ]] ;then # remove cronjob: ( sudo crontab -l | grep -v -F -w "$2" ) | sudo crontab - fi } cronjob_editor "$1" "$2" "$3" EOF sudo chmod +x /usr/local/bin/cronedit.sh 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 [ -f "/opt/FreeDMR/config/FreeDMR.cfg" ]; then variable=$(grep "SERVER_ID:" /opt/FreeDMR/config/FreeDMR.cfg | grep -Eo '[0-9]{1,9}') else echo "id not found" fi if [ -z "$variable" ] then variable=0000 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 "/bin/menu-fdmr" ]; then rm /bin/menu-fdmr #echo "found file" else echo "file not found" 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 ######################## 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 [ -f "/opt/rules.txt" ] then echo "rules found" else sudo cat > /opt/rules.txt <<- "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 fi ############ if [ -f "/opt/extra-1.sh" ] then echo "found file" else sudo cat > /opt/extra-1.sh <<- "EOF" ###################################################################### # Coloque en este archivo, cualquier instruccion shell adicional que # # quierre se realice al finalizar la actualizacion. # ###################################################################### EOF # fi if [ -f "/opt/extra-2.sh" ] then echo "found file" else sudo cat > /opt/extra-2.sh <<- "EOF" ###################################################################### # Coloque en este archivo, cualquier instruccion shell adicional que # # quierre se realice al finalizar la actualizacion. # ###################################################################### EOF # fi sudo chmod +x /opt/extra-* ######################### #lamp apps=("mariadb-server" "php" "libapache2-mod-php" "php-zip" "php-mbstring" "php-cli" "php-common" "php-curl" "php-xml" "php-mysql") for app in "${apps[@]}" do # Verificar apps if ! dpkg -s "$app" >/dev/null 2>&1; then # app no instalada sudo apt-get install -y "$app" else # app ya instalada echo "$app ya instalada" fi done 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 sudo chmod +x /opt/FreeDMR/* ./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 ## if [ "$(cat /opt/FreeDMR/FreeDMR-SAMPLE.cfg | grep 'TOPO_FILE')" != "" ]; then sed -i 's/TOPO_FILE:.*/TOPO_FILE: topography.json/' /opt/FreeDMR/FreeDMR-SAMPLE.cfg else sed '45 a TOPO_FILE: topography.json' -i /opt/FreeDMR/FreeDMR-SAMPLE.cfg fi sed -i "s/ANNOUNCEMENT_LANGUAGE:.*/ANNOUNCEMENT_LANGUAGE: es_ES/g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg sed -i "s/SINGLE_MODE:.*/SINGLE_MODE: False/g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg sed -i "s/VOICE_IDENT:.*/VOICE_IDENT: False/g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg sed -i "s/VALIDATE_SERVER_IDS:.*/VALIDATE_SERVER_IDS: False/g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg sed -i "s/ALLOW_UNREG_ID:.*/ALLOW_UNREG_ID: True/g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg sed -i "s/PROXY_CONTROL:.*/PROXY_CONTROL: False/g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg sed -i "s/54000/56000/g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg cp /opt/FreeDMR/FreeDMR-SAMPLE.cfg /opt/FreeDMR-SAMPLE.cfg cd /opt/ cat FreeDMR-SAMPLE.cfg conf.txt obp.txt >> /opt/FreeDMR/config/FreeDMR.cfg sed -i 's/file-timed/console-timed/' /opt/FreeDMR/config/FreeDMR.cfg sed -i 's/INFO/DEBUG/' /opt/FreeDMR/config/FreeDMR.cfg sed -i 's/freedmr.log/\/var\/log\/FreeDMR\/FreeDMR.log/' /opt/FreeDMR/config/FreeDMR.cfg sed -i "s/SERVER_ID:.*/SERVER_ID: $variable/g" /opt/FreeDMR/config/FreeDMR.cfg rm /opt/conf.txt rm /opt/FreeDMR-SAMPLE.cfg cd /opt/FreeDMR/ mv loro.cfg /opt/FreeDMR/playback.cfg sed -i 's/54915/49061/' /opt/FreeDMR/playback.cfg sudo cat /opt/rules.txt >> /opt/FreeDMR/config/rules.py sudo chmod +x /opt/FreeDMR/config/* ####################### #FDMR-Monitor cd /opt sudo git clone https://github.com/yuvelq/FDMR-Monitor.git cd FDMR-Monitor sudo git checkout Self_Service sudo chmod +x install.sh sed -i 's/RELOAD_TIME = 15/RELOAD_TIME = 1/' /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg 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 #### sed -i "s/www\/html/www\/fdmr/g" /opt/FDMR-Monitor/html/*.* sed -i "s/www\/html/www\/fdmr/g" /opt/FDMR-Monitor/sysinfo/*.* sed -i "s/1100/1200/g" /opt/FDMR-Monitor/html/*.* sed -i "s/1100/1200/g" /opt/FDMR-Monitor/html/css/*.* sed -i "s/1100/1200/g" /opt/FDMR-Monitor/templates/*.* sed -i 's/b1eee9/3bb43d/' /opt/FDMR-Monitor/html/css/*.* #### sed -i 's/localhost_2-day.png/localhost_1-day.png/' /opt/FDMR-Monitor/html/sysinfo.php 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 sed -i "s/root/emqte1/g" /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg sed -i "s/test/selfcare/g" /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg sed -i "s/PRIVATE_NETWORK = True/PRIVATE_NETWORK = False/g" /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg cd /opt/FDMR-Monitor/ #sudo rm /opt/FDMR-Monitor/install.sh ################ apps=("rrdtool") for app in "${apps[@]}" do # Verificar apps if ! dpkg -s "$app" >/dev/null 2>&1; then # app no instalada sudo apt-get install -y "$app" else # app ya instalada echo "$app ya instalada" fi done sed -i "s/www\/html/www\/fdmr/g" /opt/FDMR-Monitor/html/*.* 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 ############################### sed -i "s/PEER_URL =.*/PEER_URL = https:\/\/freedmr-lh.gb7fr.org.uk\/json\/peer_ids.json/g" /opt/FDMR-Monitor/fdmr-mon.cfg sed -i "s/SUBSCRIBER_URL =.*/SUBSCRIBER_URL = http:\/\/datafiles.ddns.net:8888\/user.csv/g" /opt/FDMR-Monitor/fdmr-mon.cfg sed -i "s/SUBSCRIBER_FILE =.*/SUBSCRIBER_FILE = user.csv/g" /opt/FDMR-Monitor/fdmr-mon.cfg sed -i "s/TGID_URL =.*/TGID_URL = https:\/\/freedmr-lh.gb7fr.org.uk\/json\/talkgroup_ids.json/g" /opt/FDMR-Monitor/fdmr-mon.cfg sed -i "s/root/emqte1/g" /opt/FDMR-Monitor/proxy/hotspot_proxy_v2.py sed -i "s/test/selfcare/g" /opt/FDMR-Monitor/proxy/hotspot_proxy_v2.py sed -i "s/\/freedmr.cfg/\/config\/FreeDMR.cfg/g" /opt/FDMR-Monitor/proxy/hotspot_proxy_v2.py sed -i "s/test/selfcare/g" /opt/FDMR-Monitor/proxy/proxy_db.py sed -i "s/root/emqte1/g" /opt/FDMR-Monitor/proxy/proxy_db.py sed -i "s/root/emqte1/g" /opt/FDMR-Monitor/proxy/proxy.cfg sed -i "s/test/selfcare/g" /opt/FDMR-Monitor/proxy/proxy.cfg sed -i "s/54000/56000/g" /opt/FDMR-Monitor/proxy/proxy_db.py sed -i "s/54000/56000/g" /opt/FDMR-Monitor/proxy/proxy.cfg sed -i "s/54100/56100/g" /opt/FDMR-Monitor/proxy/proxy_db.py sed -i "s/54100/56100/g" /opt/FDMR-Monitor/proxy/proxy.cfg sed -i "s/54000/56000/g" /opt/FDMR-Monitor/proxy/hotspot_proxy_v2.py sed -i "s/54100/56100/g" /opt/FDMR-Monitor/proxy/hotspot_proxy_v2.py ################# 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 # 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&P Source Destination
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 %}
Date Time Callsign (DMR-Id) Name TG# TG Name TX (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() %}
  {{_peer}}   {% if _table['PEERS'][_peer]['STATS']['CONNECTION'] == 'YES' %} Connected {% else %} Disconnected {% endif %}
{% endfor %}
{% endif %}
EOF # sed -i "s/1100/1200/g" /opt/FDMR-Monitor/templates/*.* sed -i "s/Copyright (c) 2016-.*/Copyright (c) \"2016\") {\$cdate=\"2016-\".date(\"Y\");} echo \$cdate; ?>
/g" /var/www/fdmr/*.php 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 sed -i '166 s/hotpink/#ad02fd/g' /var/www/fdmr/css/styles.php sed -i '217 s/color:white/color:black/' /var/www/fdmr/css/styles.php 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 sed -i "s/THEME_COLOR = .*/THEME_COLOR = pro/g" /opt/FDMR-Monitor/fdmr-mon.cfg #sed -i "s/PEER_URL = .*/PEER_URL = https:\/\/freedmr-lh.gb7fr.org.uk\/json\/peer_ids.json/g" /opt/FDMR-Monitor/fdmr-mon.cfg #sed -i "s/SUBSCRIBER_URL = .*/SUBSCRIBER_URL = https:\/\/freedmr-lh.gb7fr.org.uk\/json\/subscriber_ids.json/g" /opt/FDMR-Monitor/fdmr-mon.cfg #sed -i "s/TGID_URL = .*/TGID_URL = https:\/\/freedmr.cymru\/talkgroups\/talkgroup_ids_json.php/g" /opt/FDMR-Monitor/fdmr-mon.cfg python3 mon_db.py --create python3 mon_db.py --update systemctl stop apache2 systemctl disable apache2 ##################### sed -i 's/b1eee9/3bb43d/' /var/www/fdmr/css/*.* 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 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 ExecStart=/usr/bin/python3 /opt/FreeDMR/hotspot_proxy_v2.py -c /opt/FreeDMR/proxy.cfg Restart=on-failure [Install] WantedBy=multi-user.target EOF ######### bash -c "$(curl -fsSL https://raw.githubusercontent.com/hp3icc/D-APRS/main/emq-daprs.sh)" ######### 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 ExecStart=/usr/bin/python3 /opt/FreeDMR/bridge_master.py -c /opt/FreeDMR/config/FreeDMR.cfg -r /opt/FreeDMR/config/rules.py Restart=on-failure [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 #Restart=on-abort Restart=on-failure [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/ Restart=on-failure [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 ExecStart=python3 /opt/FDMR-Monitor/monitor.py #Restart=on-abort Restart=on-failure [Install] WantedBy=multi-user.target EOF # sudo cat > /bin/menu-fdmr <<- "EOF" #!/bin/bash if [[ $EUID -ne 0 ]]; then whiptail --title "sudo su" --msgbox "requiere ser usuario root , escriba (sudo su) antes de entrar a menu / requires root user, type (sudo su) before entering menu" 0 50 exit 0 fi 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 " D-APRS " \ 10 " 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 start mariadb.service sudo systemctl enable mariadb.service 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) cronedit.sh '*/5 * * * *' 'sh /opt/FDMR-Monitor/sysinfo/graph.sh' add cronedit.sh '*/2 * * * *' 'sh /opt/FDMR-Monitor/sysinfo/cpu.sh' add sudo systemctl start mariadb.service sudo systemctl enable mariadb.service 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 sudo systemctl stop mariadb.service sudo systemctl disable mariadb.service ;; 8) cronedit.sh '*/5 * * * *' 'sh /opt/FDMR-Monitor/sysinfo/graph.sh' remove cronedit.sh '*/2 * * * *' 'sh /opt/FDMR-Monitor/sysinfo/cpu.sh' remove 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) menu-igate ;; 10) bash -c "$(curl -fsSL https://gitlab.com/hp3icc/fdmr/-/raw/main/update.sh)"; esac done exit 0 EOF ### chmod +x /bin/menu-fdmr ln -s /bin/menu-fdmr /bin/MENU-FDMR sh /opt/extra-1.sh sh /opt/extra-2.sh ############################# sudo systemctl daemon-reload sudo systemctl start freedmr.service sudo systemctl enable freedmr.service 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 menu-fdmr