diff --git a/README.md b/README.md index fd06104..88b052e 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,14 @@ -Is an excerpt from the emq-TE1ws proyect, focused on new and current sysops who want to install FreeDMR easily, quickly and up-to-date. +ADN Systems DMR Peer Server is a fork from FreeDMR by G7RZU hacknix +Launched on April 21, 2024, by a visionary group of 20 international amateur radio enthusiasts, ADN Systems operates on an Open Bridge Protocol (OBP), fostering a decentralized network devoid of hierarchical structures. -This shell, install FreeDMR Peer Server,with 2 option Dashboard for select: FDMR-Monitor by OA4DOA Christian and FDMR-Monitor by CS8ABG Bruno , Both Dashboard version Self-Service +This shell, install ADN Peer Server,with 2 option Dashboard for select: FDMR-Monitor by OA4DOA Christian and FDMR-Monitor by CS8ABG Bruno , Both Dashboard version Self-Service # -Shell easy auto install FreeDMR Peer Server version Self-Service without Docker, latest original gitlab hacknix version by G7RZU Simon, with Dashboard, template mods by WP3JM James & N6DOZ Rudy, Self-Service mods with Dial-TG by IU2NAF Diego and menu by HP3ICC. +Shell easy auto install ADN Peer Server version Self-Service without Docker latest release, with Dashboard, template mods by WP3JM James & N6DOZ Rudy, Self-Service mods with Dial-TG by IU2NAF Diego and menu by HP3ICC. # Compatibility @@ -20,8 +21,7 @@ Shell easy auto install FreeDMR Peer Server version Self-Service without Docker, -* Very important, this script is preconfigured to be used in the ADN Systems server mesh, if you want to use it in other networks, it must meet the configuration requirements of the network that you want to connect your server with the FreeDMR-peer-server software. - +* Very important, this script is preconfigured to be used in the ADN Systems server mesh # Pre-Requirements @@ -50,7 +50,7 @@ into your ssh terminal copy and paste the following link : At the end of the installation your freedmr Peer server will be installed and working, a menu will be displayed that will make it easier for you to edit, restart or update your server and dashboard to future versions. - to use the options menu, just type "menu-fdmr" without the quotes in your ssh terminal or console. + to use the options menu, just type "menu-adn" without the quotes in your ssh terminal or console. # @@ -60,7 +60,7 @@ into your ssh terminal copy and paste the following link : The self-service feature, added by fellow OA4DOA Christian, allows each user to add or remove one or more static tgs from the ease of a graphical environment from the server's Dashboard. - Thanks to colleague IU2NAF Diego and the FreeDMR Italia team, they add Dial-TG compatibility and option to customize the language of the announcement voice or use CW. + Thanks to colleague IU2NAF Diego and the Italia team, they compatibility and option to customize the language of the announcement voice or use CW. # Self-Service database @@ -95,7 +95,7 @@ To facilitate your update, copy all your obp in the opb list menu option, when w -* Select update FreeDMR +* Select update ADN Server @@ -110,20 +110,16 @@ To facilitate your update, copy all your obp in the opb list menu option, when w # - - # FreeDMR Peer Server Release : - - * v1.3.19 - + # Location files config : - * FreeDMR Peer Server: + * ADN DMR Peer Server: - /opt/FreeDMR/config/FreeDMR.cfg + /opt/ADN-DMR-Peer-Server/config/FreeDMR.cfg * FreeDMR Rules: - /opt/FreeDMR/config/FreeDMR.cfg + /opt/ADN-DMR-Peer-Server/config/FreeDMR.cfg * FDMR-Monitor: @@ -137,17 +133,17 @@ To facilitate your update, copy all your obp in the opb list menu option, when w # Systemctl Services : - * Freedmr: + * ADN DMR server: - freedmr.service + adn-server.service - * FreeDMR Proxy: + * ADN server Proxy: proxy.service - * FreeDMR Parrot: + * ADN server Parrot: - fdmrparrot.service + adn-parrot.service * FDMR-Monitor: @@ -180,14 +176,11 @@ To facilitate your update, copy all your obp in the opb list menu option, when w # * Support +

-Unofficial script to install Freedmr Peer Server with Dashboard self-service, if you require support from the official version of the developer , refer to the original developer script : +Contact us in our Telegram group, and join a truly free network for amateur radio use, based on 3 pillars, equality, respect and responsibility. - - -https://gitlab.hacknix.net/hacknix/FreeDMR/-/wikis/Installing-using-Docker-(recommended!) - -FreeDMR Peer Server original version gitlab FreeDMR by G7RZU hacknix Simon. + If you have the basic knowledge of Linux to install, configure and manage a DMR server, you can integrate your server to the ever-growing network of mesh servers of Amateur radio digital network systems. # @@ -200,9 +193,9 @@ Special thanks to colleagues: CE5RPY Rodrigo, CS8ABG Bruno, OA4DOA Christian, G7 # Sources : - * https://gitlab.hacknix.net/hacknix/FreeDMR + * https://github.com/Amateur-Digital-Network/ADN-DMR-Peer-Server - * http://www.freedmr.uk/index.php/freedmr-server-install/ + * https://gitlab.hacknix.net/hacknix/FreeDMR * https://github.com/CS8ABG/FDMR-Monitor/tree/Self_Service diff --git a/install.sh b/install.sh index decc028..cb042d1 100644 --- a/install.sh +++ b/install.sh @@ -56,9 +56,9 @@ else echo "file not found" fi -if [ -f "/opt/FreeDMR/config/FreeDMR.cfg" ]; +if [ -f "/opt/ADN-DMR-Peer-Server/config/adn.cfg" ]; then - variable=$(grep "SERVER_ID:" /opt/FreeDMR/config/FreeDMR.cfg | grep -Eo '[0-9]{1,9}') + variable=$(grep "SERVER_ID:" /opt/ADN-DMR-Peer-Server/config/adn.cfg | grep -Eo '[0-9]{1,9}') else echo "id not found" @@ -69,13 +69,13 @@ then variable=0000 fi ################################### -if [ -d "/var/log/FreeDMR" ] +if [ -d "/var/log/ADN" ] then - sudo rm -rf /var/log/FreeDMR + sudo rm -rf /var/log/ADN fi -if [ -d "/opt/FreeDMR" ] +if [ -d "/opt/ADN-DMR-Peer-Server" ] then - sudo rm -rf /opt/FreeDMR + sudo rm -rf /opt/ADN-DMR-Peer-Server fi if [ -d "/var/www/fdmr2" ] then @@ -115,9 +115,9 @@ if [ ! -d "/var/www/fdmr2" ] then mkdir -p /var/www/fdmr2 fi -if [ ! -d "/var/log/FreeDMR" ] +if [ ! -d "/var/log/ADN" ] then - mkdir -p /var/log/FreeDMR + mkdir -p /var/log/ADN fi ######################## if [ -f "/opt/obp.txt" ] @@ -221,160 +221,38 @@ echo "${commands}" | /usr/bin/mysql -u root #sudo -H pip3 install --upgrade pip #pip install pyopenssl --upgrade cd /opt -git clone https://gitlab.hacknix.net/hacknix/FreeDMR.git -cd FreeDMR -sudo git checkout v1.3.19 +git clone https://github.com/Amateur-Digital-Network/ADN-DMR-Peer-Server.git +cd ADN-DMR-Peer-Server +sudo git checkout develop mkdir config -mkdir /var/log/FreeDMR -sudo chmod +x /opt/FreeDMR/* +mkdir /var/log/ADN +sudo chmod -R +x /opt/ADN-DMR-Peer-Server/* #./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: - -[ECHO] -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 'KEYS_FILE')" != "" ]; then -sudo sed -i 's/KEYS_FILE:.*/KEYS_FILE: keys.json/' /opt/FreeDMR/FreeDMR-SAMPLE.cfg -else -sudo sed '45 a KEYS_FILE: keys.json' -i /opt/FreeDMR/FreeDMR-SAMPLE.cfg -fi -sed -i '/\[OBP-TEST\]/,/\[/{s/TGID_ACL: [^ ]*/TGID_ACL: DENY:0-82,92-199,800-899,9990-9999,900999/}' /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|ANNOUNCEMENT_LANGUAGE:.*|ANNOUNCEMENT_LANGUAGE: es_ES|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|54000|56400|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|PROTO_VER:.*|PROTO_VER: 5|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|PROXY_CONTROL:.*|PROXY_CONTROL: False|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg +cp /opt/ADN-DMR-Peer-Server/config/ADN-SAMPLE.cfg /opt/ADN-DMR-Peer-Server/config/adn.cfg +sed -i "s/SERVER_ID:.*/SERVER_ID: $variable/g" /opt/ADN-DMR-Peer-Server/config/adn.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|PEER_FILE:.*|PEER_FILE: peer_ids.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|SUBSCRIBER_FILE:.*|SUBSCRIBER_FILE: subscriber_ids.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|TGID_FILE:.*|TGID_FILE: talkgroup_ids.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|PEER_URL:.*|PEER_URL: https://adn.systems/files/peer_ids.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|SUBSCRIBER_URL:.*|SUBSCRIBER_URL: https://adn.systems/files/subscriber_ids.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|TGID_URL:.*|TGID_URL: https://adn.systems/files/talkgroup_ids.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|STALE_TIME:.*|STALE_TIME: 1|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|SUB_MAP_FILE:.*|SUB_MAP_FILE: sub_map.pkl|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|SERVER_ID_FILE:.*|SERVER_ID_FILE: server_ids.tsv|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|CHECKSUM_URL:.*|CHECKSUM_URL: https://adn.systems/files/file_checksums.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|CHECKSUM_FILE:.*|CHECKSUM_FILE: file_checksums.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|SERVER_ID_URL:.*|SERVER_ID_URL: https://adn.systems/files/server_ids.tsv|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -# -wget https://adn.systems/files/cwadnsystems.ambe -O /opt/FreeDMR/Audio/CW/freedmr.ambe -wget https://adn.systems/files/adn.ambe -O /opt/FreeDMR/Audio/es_ES/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/en_GB/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/en_GB_2/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/fr_FR/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/pt_PT/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/th_TH/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/de_DE/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/cy_GB/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/el_GR/freedmr.ambe -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 chmod +x /opt/FreeDMR/config/* +cd /opt/ADN-DMR-Peer-Server/ ############# -wget https://raw.githubusercontent.com/CS8ABG/FDMR-Monitor/Self_Service/proxy/hotspot_proxy_v2.py -O /opt/FreeDMR/hotspot_proxy_v2.py -wget https://raw.githubusercontent.com/CS8ABG/FDMR-Monitor/Self_Service/proxy/proxy_SAMPLE.cfg -O /opt/FreeDMR/proxy.cfg -wget https://raw.githubusercontent.com/CS8ABG/FDMR-Monitor/Self_Service/proxy/proxy_db.py -O /opt/FreeDMR/proxy_db.py +wget https://raw.githubusercontent.com/CS8ABG/FDMR-Monitor/Self_Service/proxy/hotspot_proxy_v2.py -O /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py +wget https://raw.githubusercontent.com/CS8ABG/FDMR-Monitor/Self_Service/proxy/proxy_SAMPLE.cfg -O /opt/ADN-DMR-Peer-Server/proxy.cfg +wget https://raw.githubusercontent.com/CS8ABG/FDMR-Monitor/Self_Service/proxy/proxy_db.py -O /opt/ADN-DMR-Peer-Server/proxy_db.py #################### -sed -i "s/db_username =.*/db_username = 'hbmon'/g" /opt/FreeDMR/hotspot_proxy_v2.py -sed -i "s/db_password =.*/db_password = 'hbmon'/g" /opt/FreeDMR/hotspot_proxy_v2.py -sed -i "s/db_name =.*/db_name = 'hbmon'/g" /opt/FreeDMR/hotspot_proxy_v2.py -sed -i "s/\/freedmr.cfg/\/config\/FreeDMR.cfg/g" /opt/FreeDMR/hotspot_proxy_v2.py -sed -i "s/db_selfcare =.*/db_selfcare = ProxyDB('localhost', 'hbmon', 'hbmon', 'hbmon', 3306)/g" /opt/FreeDMR/proxy_db.py -sed -i "s/USERNAME =.*/USERNAME = hbmon/g" /opt/FreeDMR/proxy.cfg -sed -i "s/PASSWORD =.*/PASSWORD = hbmon/g" /opt/FreeDMR/proxy.cfg -sed -i "s/DB_NAME =.*/DB_NAME = hbmon/g" /opt/FreeDMR/proxy.cfg -sed -i "s/54000/56400/g" /opt/FreeDMR/proxy_db.py -sed -i "s/54000/56400/g" /opt/FreeDMR/proxy.cfg -sed -i "s/54100/56499/g" /opt/FreeDMR/proxy_db.py -sed -i "s/54100/56499/g" /opt/FreeDMR/proxy.cfg -sed -i "s/54000/56400/g" /opt/FreeDMR/hotspot_proxy_v2.py -sed -i "s/54100/56499/g" /opt/FreeDMR/hotspot_proxy_v2.py -sed -i "s/1234567/1234567,1231237,123123701/g" /opt/FreeDMR/proxy.cfg -#sed -i '228s/20/50/' /opt/FreeDMR/hotspot_proxy_v2.py +sed -i "s/db_username =.*/db_username = 'hbmon'/g" /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py +sed -i "s/db_password =.*/db_password = 'hbmon'/g" /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py +sed -i "s/db_name =.*/db_name = 'hbmon'/g" /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py +sed -i "s/\/freedmr.cfg/\/config\/adn.cfg/g" /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py +sed -i "s/db_selfcare =.*/db_selfcare = ProxyDB('localhost', 'hbmon', 'hbmon', 'hbmon', 3306)/g" /opt/ADN-DMR-Peer-Server/proxy_db.py +sed -i "s/USERNAME =.*/USERNAME = hbmon/g" /opt/ADN-DMR-Peer-Server/proxy.cfg +sed -i "s/PASSWORD =.*/PASSWORD = hbmon/g" /opt/ADN-DMR-Peer-Server/proxy.cfg +sed -i "s/DB_NAME =.*/DB_NAME = hbmon/g" /opt/ADN-DMR-Peer-Server/proxy.cfg +sed -i "s/54000/56400/g" /opt/ADN-DMR-Peer-Server/proxy_db.py +sed -i "s/54000/56400/g" /opt/ADN-DMR-Peer-Server/proxy.cfg +sed -i "s/54100/56499/g" /opt/ADN-DMR-Peer-Server/proxy_db.py +sed -i "s/54100/56499/g" /opt/ADN-DMR-Peer-Server/proxy.cfg +sed -i "s/54000/56400/g" /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py +sed -i "s/54100/56499/g" /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py +sed -i "s/1234567/1234567,1231237,123123701/g" /opt/ADN-DMR-Peer-Server/proxy.cfg +#sed -i '228s/20/50/' /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py ####################### #FDMR-Monitor cd /opt @@ -387,31 +265,15 @@ sudo git checkout Self_Service sudo chmod +x install.sh chmod 755 /opt/FDMR-Monitor/data # -sed -i 's/RELOAD_TIME =.*/RELOAD_TIME = 1/' /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg -sed -i 's/FREQUENCY =.*/FREQUENCY = 1/' /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/DB_NAME =.*/DB_NAME = hbmon/g" /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg -sed -i "s/DB_USERNAME =.*/DB_USERNAME = hbmon/g" /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg -sed -i "s/DB_PASSWORD =.*/DB_PASSWORD = hbmon/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 -sed -i "s/FILES_PATH =.*/FILES_PATH = \/opt\/FDMR-Monitor\/data/g" /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg -# cd /opt/FDMR-Monitor/ #sudo rm /opt/FDMR-Monitor/install.sh ################ @@ -435,15 +297,8 @@ sed -i "s/www\/html/www\/fdmr/g" /opt/FDMR-Monitor/sysinfo/*.* cd /opt/FDMR-Monitor/ cp /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg /opt/FDMR-Monitor/fdmr-mon.cfg ############################### -sed -i "s|SUBSCRIBER_FILE =.*|SUBSCRIBER_FILE = subscriber_ids.json|g" /opt/FDMR-Monitor/fdmr-mon.cfg -sed -i "s|SUBSCRIBER_URL.*|SUBSCRIBER_URL = https://adn.systems/files/subscriber_ids.json|g" /opt/FDMR-Monitor/fdmr-mon.cfg -sed -i "s|TGID_URL.*|TGID_URL = https://adn.systems/files/talkgroup_ids.json|g" /opt/FDMR-Monitor/fdmr-mon.cfg -sed -i "s|PEER_URL.*|PEER_URL = https://adn.systems/files/peer_ids.json|g" /opt/FDMR-Monitor/fdmr-mon.cfg -# -#wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1B-M7QNdf1gLVzbTn-Fi5GVPy6GTXcxJ-' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1B-M7QNdf1gLVzbTn-Fi5GVPy6GTXcxJ-" -O /opt/FDMR-Monitor/html/favicon.ico && rm -rf /tmp/cookies.txt && -# -sed '6 a ' -i /opt/FDMR-Monitor/html/index.php -#wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1evvxLOh8uxKYYLoV0aORjDhFeLF42_S_' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1evvxLOh8uxKYYLoV0aORjDhFeLF42_S_" -O /opt/FDMR-Monitor/html/img/logo.png && rm -rf /tmp/cookies.txt && +wget -O /opt/FDMR-Monitor/html/img/logo.png https://adn.systems/files/logo1.png +wget -O /opt/FDMR-Monitor/html/favicon.ico https://adn.systems/files/ADN_37x18_01.ico # sudo cat > /opt/FDMR-Monitor/html/buttons.php <<- "EOF" @@ -488,13 +343,12 @@ sudo cat > /opt/FDMR-Monitor/html/buttons.php <<- "EOF" @@ -526,202 +380,8 @@ 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/ -sudo 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() %} -
  {{_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/TGID_URL =.*/TGID_URL = https:\/\/freedmr.cymru\/talkgroups\/talkgroup_ids_json.php/g" /opt/FDMR-Monitor/fdmr-mon.cfg if [ -f "mon.db" ] then rm mon.db @@ -733,9 +393,6 @@ 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.
, FreeDMR<\/a> by G7RZU hacknix<\/a>, Script project: \"2018\") {\$cdate=\"2018-\".date(\"Y\");} echo \$cdate; ?>\" target=\"_blank\" href=https:\/\/gitlab.com\/hp3icc\/fdmr\/>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 - @@ -753,7 +410,7 @@ Type=simple Restart=always RestartSec=3 StandardOutput=null -ExecStart=/usr/bin/python3 /opt/FreeDMR/hotspot_proxy_v2.py -c /opt/FreeDMR/proxy.cfg +ExecStart=/usr/bin/python3 /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py -c /opt/ADN-DMR-Peer-Server/proxy.cfg #Restart=on-failure [Install] @@ -763,7 +420,7 @@ EOF ######### bash -c "$(curl -fsSLk https://raw.githubusercontent.com/hp3icc/D-APRS/main/emq-daprs.sh)" ######### -sudo cat > /lib/systemd/system/freedmr.service <<- "EOF" +sudo cat > /lib/systemd/system/adn-server.service <<- "EOF" [Unit] Description=FreeDmr After=multi-user.target @@ -774,7 +431,7 @@ Type=simple Restart=always RestartSec=3 StandardOutput=null -ExecStart=/usr/bin/python3 /opt/FreeDMR/bridge_master.py -c /opt/FreeDMR/config/FreeDMR.cfg +ExecStart=/usr/bin/python3 /opt/ADN-DMR-Peer-Server/bridge_master.py -c /opt/ADN-DMR-Peer-Server/config/adn.cfg #Restart=on-failure [Install] @@ -782,7 +439,7 @@ WantedBy=multi-user.target EOF ### -sudo cat > /lib/systemd/system/fdmrparrot.service <<- "EOF" +sudo cat > /lib/systemd/system/adn-parrot.service <<- "EOF" [Unit] Description=Freedmr Parrot After=network-online.target syslog.target @@ -794,8 +451,8 @@ Type=simple Restart=always RestartSec=3 StandardOutput=null -WorkingDirectory=/opt/FreeDMR -ExecStart=/usr/bin/python3 /opt/FreeDMR/playback.py -c /opt/FreeDMR/playback.cfg +WorkingDirectory=/opt/ADN-DMR-Peer-Server +ExecStart=/usr/bin/python3 /opt/ADN-DMR-Peer-Server/playback.py -c /opt/ADN-DMR-Peer-Server/config/parrot.cfg #Restart=on-abort #Restart=on-failure @@ -844,9 +501,7 @@ sudo git checkout Self_Service #sudo pip install -U -r requirements.txt chmod 755 /opt/FDMR-Monitor2/data -#sed -i '72d' /opt/FDMR-Monitor2/html/include/navbar.php -#sed '69 a \ ' -i /opt/FDMR-Monitor2/html/include/navbar.php -sudo chmod 644 /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg +sudo chmod 644 /opt/FDMR-Monitor2/fdmr-mon_SAMPLE.cfg sed -i 's/RELOAD_TIME =.*/RELOAD_TIME = 1/' /opt/FDMR-Monitor2/fdmr-mon_SAMPLE.cfg sed -i 's/FREQUENCY =.*/FREQUENCY = 1/' /opt/FDMR-Monitor2/fdmr-mon_SAMPLE.cfg sed -i "s/LANGUAGE =.*/LANGUAGE = \"es\"/g" /opt/FDMR-Monitor2/fdmr-mon_SAMPLE.cfg @@ -857,7 +512,7 @@ sed -i "s/TELEGRAM/#TELEGRAM/g" /opt/FDMR-Monitor2/fdmr-mon_SAMPLE.cfg sed -i "s/configFile =.*/configFile = '\/opt\/FDMR-Monitor2\/fdmr-mon.cfg';/g" /opt/FDMR-Monitor2/html/config.php sed -i "s/PRIVATE_NETWORK = True/PRIVATE_NETWORK = False/g" /opt/FDMR-Monitor2/fdmr-mon_SAMPLE.cfg variable2=$(date +'%Y' | tail -c 5) -#sed -i "s/CS8ABG<\/a> Dash/FDMR-Monitor2<\/a> by
CS8ABG<\/a>, FreeDMR<\/a> by G7RZU hacknix<\/a>, Script project: FDMR+<\/a>/g" /opt/FDMR-Monitor2/html/include/footer.php +#sed -i "s/CS8ABG<\/a> Dash/FDMR-Monitor2<\/a> by CS8ABG<\/a>, FreeDMR<\/a> by G7RZU hacknix<\/a>, Script project: FDMR+<\/a>/g" /opt/FDMR-Monitor2/html/include/footer.php sed -i "s|SUBSCRIBER_URL.*|SUBSCRIBER_URL = https://adn.systems/files/subscriber_ids.json|g" /opt/FDMR-Monitor2/fdmr-mon_SAMPLE.cfg sed -i "s|TGID_URL.*|TGID_URL = https://adn.systems/files/talkgroup_ids.json|g" /opt/FDMR-Monitor2/fdmr-mon_SAMPLE.cfg sed -i "s|PEER_URL.*|PEER_URL = https://adn.systems/files/peer_ids.json|g" /opt/FDMR-Monitor2/fdmr-mon_SAMPLE.cfg @@ -869,11 +524,12 @@ sed -i "s/configFile =.*/configFile = '\/opt\/FDMR-Monitor2\/fdmr-mon.cfg';/g" / #sed -i "s/configFile =.*/configFile = '\/opt\/FDMR-Monitor2\/fdmr-mon.cfg';/g" /var/www/fdmr2/ssconfunc.php ########################################################## wget -q --no-check-certificate -r 'https://docs.google.com/uc?export=download&id=1cWqClH0FUxV5d-rVnibI_-iCypFnTDb3' -O /opt/FDMR-Monitor2/html/img/bk.jpg && -wget -q --no-check-certificate -r 'https://docs.google.com/uc?export=download&id=1vsviKjpZmL_mWVEW2UstNODGPl8-uNVo' -O /opt/flags.zip && - -sudo unzip -o /opt/flags.zip -d /opt/FDMR-Monitor2/html/flags/ && -rm /opt/flags.zip - +#wget -q --no-check-certificate -r 'https://docs.google.com/uc?export=download&id=1vsviKjpZmL_mWVEW2UstNODGPl8-uNVo' -O /opt/flags.zip && +#sudo unzip -o /opt/flags.zip -d /opt/FDMR-Monitor2/html/flags/ && +#rm /opt/flags.zip +wget -O /opt/FDMR-Monitor2/html/img/logo.png https://adn.systems/files/logo1.png +wget -O /opt/FDMR-Monitor2/html/img/favicon.ico https://adn.systems/files/ADN_37x18_01.ico +wget -O /opt/FDMR-Monitor2/html/img/Logo_mini.png https://adn.systems/files/Logo_mini.png cp fdmr-mon_SAMPLE.cfg fdmr-mon.cfg sudo chmod 644 fdmr-mon.cfg sudo cp /opt/FDMR-Monitor2/html/* /var/www/fdmr2/ -r diff --git a/update.sh b/update.sh index 78eb60b..2728236 100644 --- a/update.sh +++ b/update.sh @@ -33,21 +33,23 @@ cd / ################## #!/bin/bash if ! grep -q "Web-Dashboar-name" "/opt/wdp" > /dev/null 2>&1; then - sudo cat > /opt/wdp <<- "EOFX" -#!/bin/bash -######################################### -# Select number port, FreeDMR Dashboard # -######################################### +cat > /opt/wdp <<- "EOFX" +############################################ +# Select number port, ADN-Server Dashboard # +############################################ -Web-Dashboar-name: freedmr +Web-Dashboar-name: adn Web-Dashboar-Port: 80 Web-Dashboar-dns: Web-Dashboar-dir: /var/www/fdmr2 Web-Dashboar-select: fdmr_mon2 Web-Dashboar-soft: /opt/FDMR-Monitor2 - + EOFX fi +if ! grep -q "Web-Dashboar-name: adn" "/opt/wdp" > /dev/null 2>&1; then + sed -i "s|Web-Dashboar-name:.*|Web-Dashboar-name: adn|g" /opt/wdp +fi if [ ! -f "/etc/nginx/sites-available/000" ]; then bash -c "$(curl -fsSLk https://gitlab.com/hp3icc/emq-TE1/-/raw/main/install/nginx.sh)" fi @@ -119,9 +121,9 @@ if [[ $EUID -ne 0 ]]; then fi while : ; do -choix=$(whiptail --title "Raspbian Proyect HP3ICC / update FDMR" --menu "Nota Importante: antes de iniciar la actualizacion, el proceso de actualizacion borrara por completo todas las configuraciones, al finalizar la actualizacion el servicio se reinniciara automaticamente. +choix=$(whiptail --title "Script proyect HP3ICC / update FDMR+" --menu "Nota Importante: antes de iniciar la actualizacion, el proceso de actualizacion borrara por completo todas las configuraciones, al finalizar la actualizacion el servicio se reinniciara automaticamente. " 17 50 4 \ -1 " Update FreeDMR " \ +1 " Update ADN-Server " \ 2 " Update FDMR-Monitor OA4DOA " \ 3 " Update FDMR-Monitor CS8ABG " \ 4 " Menu Principal " 3>&1 1>&2 2>&3) @@ -136,7 +138,7 @@ fi # case : action en fonction du choix case $choix in 1) -menu-up-fdm ;; +menu-up-adn ;; 2) menu-up-fdmon ;; 3) @@ -151,7 +153,7 @@ exit 0 EOF # -sudo cat > /bin/menu-up-fdm <<- "EOF" +sudo cat > /bin/menu-up-adn <<- "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 @@ -159,11 +161,11 @@ if [[ $EUID -ne 0 ]]; then fi while : ; do -choix=$(whiptail --title "Raspbian Proyect HP3ICC / update FreeDMR" --menu "Nota Importante: debe debe agregar todos sus obp en la opcion numero uno, ( 1-Lista de OBP )antes de iniciar la actualizacion, el proceso de actualizacion borrara por completo la carpeta /opt/FreeDMR, al finalizar la actualizacion el servicio Freedmr se reinniciara automaticamente. +choix=$(whiptail --title "Script proyect HP3ICC / update ADN-Server" --menu "Nota Importante: debe debe agregar todos sus obp en la opcion numero uno, ( 1-Lista de OBP )antes de iniciar la actualizacion, el proceso de actualizacion borrara por completo la carpeta /opt/ADN-DMR-Peer-Server, al finalizar la actualizacion el servicio Freedmr se reinniciara automaticamente. " 18 55 5 \ 1 " List OBP " \ 2 " shell extra " \ -3 " Iniciar Actualizacion FreeDMR " \ +3 " Iniciar Actualizacion ADN-Server " \ 4 " Menu Principal " 3>&1 1>&2 2>&3) exitstatus=$? #on recupere ce choix @@ -197,7 +199,7 @@ if [[ $EUID -ne 0 ]]; then fi while : ; do -choix=$(whiptail --title "Raspbian Proyect HP3ICC / update FDMR-Monitor OA4DOA" --menu "Nota Importante: antes de iniciar la actualizacion, el proceso de actualizacion borrara por completo todas las configuraciones, al finalizar la actualizacion el servicio se reinniciara automaticamente. +choix=$(whiptail --title "Script proyect HP3ICC / update FDMR-Monitor OA4DOA" --menu "Nota Importante: antes de iniciar la actualizacion, el proceso de actualizacion borrara por completo todas las configuraciones, al finalizar la actualizacion el servicio se reinniciara automaticamente. " 17 50 4 \ 1 " shell extra " \ 2 " Iniciar Actualizacion FDMR-Monitor OA4DOA " \ @@ -232,7 +234,7 @@ if [[ $EUID -ne 0 ]]; then fi while : ; do -choix=$(whiptail --title "Raspbian Proyect HP3ICC / update FDMR-Monitor CS8ABG" --menu "Nota Importante: antes de iniciar la actualizacion, el proceso de actualizacion borrara por completo todas las configuraciones, al finalizar la actualizacion el servicio se reinniciara automaticamente. +choix=$(whiptail --title "Script proyect HP3ICC / update FDMR-Monitor CS8ABG" --menu "Nota Importante: antes de iniciar la actualizacion, el proceso de actualizacion borrara por completo todas las configuraciones, al finalizar la actualizacion el servicio se reinniciara automaticamente. " 17 50 4 \ 1 " shell extra " \ 2 " Iniciar Actualizacion FDMR-Monitor CS8ABG" \ @@ -260,80 +262,7 @@ exit 0 EOF -######################################### FreeDMR Update ############################################################### -sudo cat > /opt/conf.txt <<- "EOFA1" - -[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: - -[ECHO] -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 - -EOFA1 -############################# +######################################### ADN-Server Update ############################################################### sudo cat > /opt/fdmr-update.sh <<- "EOFD1" #!/bin/bash apps=("mariadb-server" "php" "libapache2-mod-php" "php-zip" "php-mbstring" "php-cli" "php-common" "php-curl" "php-xml" "php-mysql") @@ -377,15 +306,35 @@ echo "${commands}" | /usr/bin/mysql -u root /usr/bin/python3 -m pip install --upgrade spyne ############### cd / -variable=$(grep "SERVER_ID:" /opt/FreeDMR/config/FreeDMR.cfg | grep -Eo '[0-9]{1,9}') +variable=$(grep "SERVER_ID:" /opt/ADN-DMR-Peer-Server/config/adn.cfg | grep -Eo '[0-9]{1,9}') if [ -z "$variable" ] then variable=0000 fi -sudo systemctl stop freedmr.service -sudo systemctl stop proxy.service -sudo systemctl stop fdmrparrot.service -#sudo /usr/bin/python3 -m pip install --upgrade spyne + +SERVICIOS=("adn-server.service" "freedmr.service" "proxy.service" "adn-parrot.service" "parrot.service") + +for servicio in "${SERVICIOS[@]}"; do + # Verificar si el servicio existe + if systemctl list-unit-files --type=service | grep -q "^$servicio "; then + echo "El servicio $servicio existe." + + # Verificar si el servicio está activo + if systemctl is-active --quiet $servicio; then + echo "El servicio $servicio está activo. Deteniendo..." + sudo systemctl stop $servicio + else + echo "El servicio $servicio no está activo." + fi + + # Deshabilitar el servicio + echo "Deshabilitando el servicio $servicio..." + sudo systemctl disable $servicio + + else + echo "El servicio $servicio no existe." + fi +done ######################### #Service @@ -400,7 +349,7 @@ Type=simple Restart=always RestartSec=3 StandardOutput=null -ExecStart=/usr/bin/python3 /opt/FreeDMR/hotspot_proxy_v2.py -c /opt/FreeDMR/proxy.cfg +ExecStart=/usr/bin/python3 /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py -c /opt/ADN-DMR-Peer-Server/proxy.cfg #Restart=on-failure [Install] @@ -408,7 +357,7 @@ WantedBy=multi-user.target EOF ######### -sudo cat > /lib/systemd/system/freedmr.service <<- "EOF" +sudo cat > /lib/systemd/system/adn-server.service <<- "EOF" [Unit] Description=FreeDmr After=multi-user.target @@ -419,7 +368,7 @@ Type=simple Restart=always RestartSec=3 StandardOutput=null -ExecStart=/usr/bin/python3 /opt/FreeDMR/bridge_master.py -c /opt/FreeDMR/config/FreeDMR.cfg +ExecStart=/usr/bin/python3 /opt/ADN-DMR-Peer-Server/bridge_master.py -c /opt/ADN-DMR-Peer-Server/config/adn.cfg #Restart=on-failure @@ -428,7 +377,7 @@ WantedBy=multi-user.target EOF ### -sudo cat > /lib/systemd/system/fdmrparrot.service <<- "EOF" +sudo cat > /lib/systemd/system/adn-parrot.service <<- "EOF" [Unit] Description=Freedmr Parrot After=network-online.target syslog.target @@ -440,8 +389,8 @@ Type=simple Restart=always RestartSec=3 StandardOutput=null -WorkingDirectory=/opt/FreeDMR -ExecStart=/usr/bin/python3 /opt/FreeDMR/playback.py -c /opt/FreeDMR/playback.cfg +WorkingDirectory=/opt/ADN-DMR-Peer-Server +ExecStart=/usr/bin/python3 /opt/ADN-DMR-Peer-Server/playback.py -c /opt/ADN-DMR-Peer-Server/config/parrot.cfg #Restart=on-abort #Restart=on-failure @@ -450,9 +399,9 @@ WantedBy=multi-user.target EOF # -if [ -d "/opt/FreeDMR" ] +if [ -d "/opt/ADN-DMR-Peer-Server" ] then - sudo rm -r /opt/FreeDMR + sudo rm -r /opt/ADN-DMR-Peer-Server fi if [ -d "/var/log/FreeDMR" ] then @@ -462,168 +411,52 @@ fi #sudo -H pip3 install --upgrade pip #pip install pyopenssl --upgrade cd /opt -git clone https://gitlab.hacknix.net/hacknix/FreeDMR.git -cd FreeDMR -sudo git checkout v1.3.19 -if [ ! -d "/opt/FreeDMR/config" ] +git clone https://github.com/Amateur-Digital-Network/ADN-DMR-Peer-Server.git +cd ADN-DMR-Peer-Server +sudo git checkout develop +sudo chmod -R +x /opt/ADN-DMR-Peer-Server/* +if [ ! -d "/var/log/ADN" ] then - mkdir -p /opt/FreeDMR/config + mkdir -p /var/log/ADN fi -if [ ! -d "/var/log/FreeDMR" ] -then - mkdir -p /var/log/FreeDMR -fi -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: - -[ECHO] -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 +#### +cp /opt/ADN-DMR-Peer-Server/config/ADN-SAMPLE.cfg /opt/ADN-DMR-Peer-Server/config/adn.cfg +sudo sed -i "s/SERVER_ID: .*/SERVER_ID: $variable/g" /opt/ADN-DMR-Peer-Server/config/adn.cfg + +cd /opt/ADN-DMR-Peer-Server/ -EOF -### -if [ "$(cat /opt/FreeDMR/FreeDMR-SAMPLE.cfg | grep 'KEYS_FILE')" != "" ]; then -sudo sed -i 's/KEYS_FILE:.*/KEYS_FILE: keys.json/' /opt/FreeDMR/FreeDMR-SAMPLE.cfg -else -sudo sed '45 a KEYS_FILE: keys.json' -i /opt/FreeDMR/FreeDMR-SAMPLE.cfg -fi -sed -i '/\[OBP-TEST\]/,/\[/{s/TGID_ACL: [^ ]*/TGID_ACL: DENY:0-82,92-199,800-899,9990-9999,900999/}' /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|ANNOUNCEMENT_LANGUAGE:.*|ANNOUNCEMENT_LANGUAGE: es_ES|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|54000|56400|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|PROTO_VER:.*|PROTO_VER: 5|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|PROXY_CONTROL:.*|PROXY_CONTROL: False|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|PEER_FILE:.*|PEER_FILE: peer_ids.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|SUBSCRIBER_FILE:.*|SUBSCRIBER_FILE: subscriber_ids.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|TGID_FILE:.*|TGID_FILE: talkgroup_ids.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|PEER_URL:.*|PEER_URL: https://adn.systems/files/peer_ids.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|SUBSCRIBER_URL:.*|SUBSCRIBER_URL: https://adn.systems/files/subscriber_ids.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|TGID_URL:.*|TGID_URL: https://adn.systems/files/talkgroup_ids.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|STALE_TIME:.*|STALE_TIME: 1|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|SUB_MAP_FILE:.*|SUB_MAP_FILE: sub_map.pkl|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|SERVER_ID_FILE:.*|SERVER_ID_FILE: server_ids.tsv|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|CHECKSUM_URL:.*|CHECKSUM_URL: https://adn.systems/files/file_checksums.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|CHECKSUM_FILE:.*|CHECKSUM_FILE: file_checksums.json|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -sed -i "s|SERVER_ID_URL:.*|SERVER_ID_URL: https://adn.systems/files/server_ids.tsv|g" /opt/FreeDMR/FreeDMR-SAMPLE.cfg -# -wget https://adn.systems/files/cwadnsystems.ambe -O /opt/FreeDMR/Audio/CW/freedmr.ambe -wget https://adn.systems/files/adn.ambe -O /opt/FreeDMR/Audio/es_ES/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/en_GB/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/en_GB_2/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/fr_FR/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/pt_PT/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/th_TH/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/de_DE/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/cy_GB/freedmr.ambe -cp /opt/FreeDMR/Audio/es_ES/freedmr.ambe /opt/FreeDMR/Audio/el_GR/freedmr.ambe -cp /opt/FreeDMR/FreeDMR-SAMPLE.cfg /opt/FreeDMR-SAMPLE.cfg -cd /opt/ -sudo 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/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 -sudo sed -i 's/54915/49061/' /opt/FreeDMR/playback.cfg ############# -wget https://raw.githubusercontent.com/CS8ABG/FDMR-Monitor/Self_Service/proxy/hotspot_proxy_v2.py -O /opt/FreeDMR/hotspot_proxy_v2.py -wget https://raw.githubusercontent.com/CS8ABG/FDMR-Monitor/Self_Service/proxy/proxy_SAMPLE.cfg -O /opt/FreeDMR/proxy.cfg -wget https://raw.githubusercontent.com/CS8ABG/FDMR-Monitor/Self_Service/proxy/proxy_db.py -O /opt/FreeDMR/proxy_db.py +wget https://raw.githubusercontent.com/CS8ABG/FDMR-Monitor/Self_Service/proxy/hotspot_proxy_v2.py -O /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py +wget https://raw.githubusercontent.com/CS8ABG/FDMR-Monitor/Self_Service/proxy/proxy_SAMPLE.cfg -O /opt/ADN-DMR-Peer-Server/proxy.cfg +wget https://raw.githubusercontent.com/CS8ABG/FDMR-Monitor/Self_Service/proxy/proxy_db.py -O /opt/ADN-DMR-Peer-Server/proxy_db.py #################### -sed -i "s/db_username =.*/db_username = 'hbmon'/g" /opt/FreeDMR/hotspot_proxy_v2.py -sed -i "s/db_password =.*/db_password = 'hbmon'/g" /opt/FreeDMR/hotspot_proxy_v2.py -sed -i "s/db_name =.*/db_name = 'hbmon'/g" /opt/FreeDMR/hotspot_proxy_v2.py -sed -i "s/\/freedmr.cfg/\/config\/FreeDMR.cfg/g" /opt/FreeDMR/hotspot_proxy_v2.py -sed -i "s/db_selfcare =.*/db_selfcare = ProxyDB('localhost', 'hbmon', 'hbmon', 'hbmon', 3306)/g" /opt/FreeDMR/proxy_db.py -sed -i "s/USERNAME =.*/USERNAME = hbmon/g" /opt/FreeDMR/proxy.cfg -sed -i "s/PASSWORD =.*/PASSWORD = hbmon/g" /opt/FreeDMR/proxy.cfg -sed -i "s/DB_NAME =.*/DB_NAME = hbmon/g" /opt/FreeDMR/proxy.cfg -sed -i "s/54000/56400/g" /opt/FreeDMR/proxy_db.py -sed -i "s/54000/56400/g" /opt/FreeDMR/proxy.cfg -sed -i "s/54100/56499/g" /opt/FreeDMR/proxy_db.py -sed -i "s/54100/56499/g" /opt/FreeDMR/proxy.cfg -sed -i "s/54000/56400/g" /opt/FreeDMR/hotspot_proxy_v2.py -sed -i "s/54100/56499/g" /opt/FreeDMR/hotspot_proxy_v2.py -sed -i "s/1234567/1234567,1231237,123123701/g" /opt/FreeDMR/proxy.cfg -#sed -i '228s/20/50/' /opt/FreeDMR/hotspot_proxy_v2.py +sed -i "s/db_username =.*/db_username = 'hbmon'/g" /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py +sed -i "s/db_password =.*/db_password = 'hbmon'/g" /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py +sed -i "s/db_name =.*/db_name = 'hbmon'/g" /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py +sed -i "s/\/freedmr.cfg/\/config\/adn.cfg/g" /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py +sed -i "s/db_selfcare =.*/db_selfcare = ProxyDB('localhost', 'hbmon', 'hbmon', 'hbmon', 3306)/g" /opt/ADN-DMR-Peer-Server/proxy_db.py +sed -i "s/USERNAME =.*/USERNAME = hbmon/g" /opt/ADN-DMR-Peer-Server/proxy.cfg +sed -i "s/PASSWORD =.*/PASSWORD = hbmon/g" /opt/ADN-DMR-Peer-Server/proxy.cfg +sed -i "s/DB_NAME =.*/DB_NAME = hbmon/g" /opt/ADN-DMR-Peer-Server/proxy.cfg +sed -i "s/54000/56400/g" /opt/ADN-DMR-Peer-Server/proxy_db.py +sed -i "s/54000/56400/g" /opt/ADN-DMR-Peer-Server/proxy.cfg +sed -i "s/54100/56499/g" /opt/ADN-DMR-Peer-Server/proxy_db.py +sed -i "s/54100/56499/g" /opt/ADN-DMR-Peer-Server/proxy.cfg +sed -i "s/54000/56400/g" /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py +sed -i "s/54100/56499/g" /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py +sed -i "s/1234567/1234567,1231237,123123701/g" /opt/ADN-DMR-Peer-Server/proxy.cfg +#sed -i '228s/20/50/' /opt/ADN-DMR-Peer-Server/hotspot_proxy_v2.py ################# -sudo chmod +x /opt/FreeDMR/*.py -#sudo chmod +x /opt/FreeDMR/config/*.py +sudo chmod +x /opt/ADN-DMR-Peer-Server/*.py +#sudo chmod +x /opt/ADN-DMR-Peer-Server/config/*.py sh /opt/extra-1.sh sudo systemctl daemon-reload sudo systemctl start proxy.service -sudo systemctl start freedmr.service -sudo systemctl start fdmrparrot.service +sudo systemctl start adn-server.service +sudo systemctl start adn-parrot.service +sudo systemctl enable proxy.service +sudo systemctl enable adn-server.service +sudo systemctl enable adn-parrot.service if systemctl status fdmr_mon.service |grep "service; enabled;" >/dev/null 2>&1 then sudo systemctl stop fdmr_mon.service @@ -650,7 +483,9 @@ if [[ $EUID -ne 0 ]]; then echo "Este script debe ejecutarse como usuario ROOT" exit 1 fi - +if ! grep -q "Web-Dashboar-name: adn" "/opt/wdp" > /dev/null 2>&1; then + sed -i "s|Web-Dashboar-name:.*|Web-Dashboar-name: adn|g" /opt/wdp +fi ############## cd /opt @@ -749,31 +584,14 @@ sudo chmod +x install.sh chmod 777 /opt/FDMR-Monitor/data sudo chmod 644 /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg -sudo sed -i 's/RELOAD_TIME =.*/RELOAD_TIME = 1/' /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg -sudo sed -i 's/FREQUENCY =.*/FREQUENCY = 1/' /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg -sudo 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/1100/1200/g" /opt/FDMR-Monitor/html/*.* -sudo sed -i "s/1100/1200/g" /opt/FDMR-Monitor/html/css/*.* -sudo sed -i "s/1100/1200/g" /opt/FDMR-Monitor/templates/*.* -sudo sed -i 's/b1eee9/3bb43d/' /opt/FDMR-Monitor/html/css/*.* #### -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 -sed -i "s/DB_NAME =.*/DB_NAME = hbmon/g" /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg -sed -i "s/DB_USERNAME =.*/DB_USERNAME = hbmon/g" /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg -sed -i "s/DB_PASSWORD =.*/DB_PASSWORD = hbmon/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/FILES_PATH =.*/FILES_PATH = \/opt\/FDMR-Monitor\/data/g" /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg - cd /opt/FDMR-Monitor/ #sudo rm /opt/FDMR-Monitor/install.sh ################ @@ -786,17 +604,8 @@ sudo sed -i "s/www\/html/www\/fdmr/g" /opt/FDMR-Monitor/sysinfo/*.* cd /opt/FDMR-Monitor/ cp /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg /opt/FDMR-Monitor/fdmr-mon.cfg ############################### -sed -i "s|SUBSCRIBER_URL.*|SUBSCRIBER_URL = https://adn.systems/files/subscriber_ids.json|g" /opt/FDMR-Monitor/fdmr-mon.cfg -sed -i "s|TGID_URL.*|TGID_URL = https://adn.systems/files/talkgroup_ids.json|g" /opt/FDMR-Monitor/fdmr-mon.cfg -sed -i "s|PEER_URL.*|PEER_URL = https://adn.systems/files/peer_ids.json|g" /opt/FDMR-Monitor/fdmr-mon.cfg -sed -i "s/SUBSCRIBER_FILE =.*/SUBSCRIBER_FILE = subscriber_ids.json/g" /opt/FDMR-Monitor/fdmr-mon.cfg -################# -#logo -#wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1evvxLOh8uxKYYLoV0aORjDhFeLF42_S_' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1evvxLOh8uxKYYLoV0aORjDhFeLF42_S_" -O /opt/FDMR-Monitor/html/img/logo.png && rm -rf /tmp/cookies.txt && -#favicon.ico -#wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1B-M7QNdf1gLVzbTn-Fi5GVPy6GTXcxJ-' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1B-M7QNdf1gLVzbTn-Fi5GVPy6GTXcxJ-" -O /opt/FDMR-Monitor/html/favicon.ico && rm -rf /tmp/cookies.txt && - -sudo sed '6 a ' -i /opt/FDMR-Monitor/html/index.php +wget -O /opt/FDMR-Monitor/html/img/logo.png https://adn.systems/files/logo1.png +wget -O /opt/FDMR-Monitor/html/favicon.ico https://adn.systems/files/ADN_37x18_01.ico # sudo cat > /opt/FDMR-Monitor/html/buttons.php <<- "EOF" @@ -841,13 +650,12 @@ sudo cat > /opt/FDMR-Monitor/html/buttons.php <<- "EOF" @@ -876,210 +684,11 @@ sudo cat > /opt/FDMR-Monitor/html/buttons.php <<- "EOF" 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() %} -
  {{_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/TGID_URL =.*/TGID_URL = https:\/\/freedmr.cymru\/talkgroups\/talkgroup_ids_json.php/g" /opt/FDMR-Monitor/fdmr-mon.cfg - if [ -f "mon.db" ] then rm mon.db @@ -1104,7 +713,6 @@ sudo sed -i "s/THEME_COLOR =.*/$variable2/g" /opt/FDMR-Monitor/fdmr-mon.cfg sudo sed -i "s/COLOR_TEXT =.*/$variable3/g" /opt/FDMR-Monitor/fdmr-mon.cfg sudo sed -i "s/COLOR_1 =.*/$variable4/g" /opt/FDMR-Monitor/fdmr-mon.cfg sudo sed -i "s/COLOR_2 =.*/$variable5/g" /opt/FDMR-Monitor/fdmr-mon.cfg -#sudo sed -i "s/All rights reserved.
.*/All rights reserved.
, FreeDMR<\/a> by G7RZU hacknix<\/a>, Script project: \"2018\") {\$cdate=\"2018-\".date(\"Y\");} echo \$cdate; ?>\" target=\"_blank\" href=https:\/\/gitlab.com\/hp3icc\/fdmr\/>FDMR+<\/a>
/g" /var/www/fdmr/*.php chmod +x /opt/FDMR-Monitor/sysinfo/* sh /opt/FDMR-Monitor/sysinfo/rrd-db.sh @@ -1139,6 +747,11 @@ cronedit.sh '* */24 * * *' 'rm /etc/freedmr/hbmon/data/*' remove && cronedit.sh '* */24 * * *' 'rm /opt/FDMR-Monitor/data/*' add && cronedit.sh '* */24 * * *' 'rm /opt/FDMR-Monitor2/data/*' remove +if [ -f "/etc/nginx/sites-enabled/freedmr" ]; then + mv /etc/nginx/sites-enabled/freedmr /etc/nginx/sites-enabled/adn + sudo systemctl restart nginx +fi + EOFB1 sudo chmod +x /opt/monitor-update.sh ######################################### FDMR-Monitor2 Update ############################################################### @@ -1149,7 +762,9 @@ if [[ $EUID -ne 0 ]]; then echo "Este script debe ejecutarse como usuario ROOT" exit 1 fi - +if ! grep -q "Web-Dashboar-name: adn" "/opt/wdp" > /dev/null 2>&1; then + sed -i "s|Web-Dashboar-name:.*|Web-Dashboar-name: adn|g" /opt/wdp +fi ############## cd / sudo systemctl stop fdmr_mon.service @@ -1222,9 +837,7 @@ sudo git checkout Self_Service chmod 777 /opt/FDMR-Monitor2/data -#sed -i '72d' /opt/FDMR-Monitor2/html/include/navbar.php -#sed '69 a \ ' -i /opt/FDMR-Monitor2/html/include/navbar.php -sudo chmod 644 /opt/FDMR-Monitor/fdmr-mon_SAMPLE.cfg +sudo chmod 644 /opt/FDMR-Monitor2/fdmr-mon_SAMPLE.cfg sed -i "s|SUBSCRIBER_URL.*|SUBSCRIBER_URL = https://adn.systems/files/subscriber_ids.json|g" /opt/FDMR-Monitor2/fdmr-mon_SAMPLE.cfg sed -i "s|TGID_URL.*|TGID_URL = https://adn.systems/files/talkgroup_ids.json|g" /opt/FDMR-Monitor2/fdmr-mon_SAMPLE.cfg sed -i "s|PEER_URL.*|PEER_URL = https://adn.systems/files/peer_ids.json|g" /opt/FDMR-Monitor2/fdmr-mon_SAMPLE.cfg @@ -1241,17 +854,18 @@ sed -i "s/SUBSCRIBER_FILE =.*/SUBSCRIBER_FILE = subscriber_ids.json/g" /opt/FDMR sed -i "s/FILES_PATH =.*/FILES_PATH = \/opt\/FDMR-Monitor2\/data/g" /opt/FDMR-Monitor2/fdmr-mon_SAMPLE.cfg sed -i "s/configFile =.*/configFile = '\/opt\/FDMR-Monitor2\/fdmr-mon.cfg';/g" /opt/FDMR-Monitor2/html/config.php variable2=$(date +'%Y' | tail -c 5) -#sed -i "s/CS8ABG<\/a> Dash/FDMR-Monitor2<\/a> by
CS8ABG<\/a>, FreeDMR<\/a> by G7RZU hacknix<\/a>, Script project: FDMR+<\/a>/g" /opt/FDMR-Monitor2/html/include/footer.php sed -i "s/#fff/#d1d1d1/g" /opt/FDMR-Monitor2/html/plugins/adminlte/css/adminlte.min.css sed -i "s/f8f9fa/d0d0d0/g" /opt/FDMR-Monitor2/html/plugins/adminlte/css/adminlte.min.css sed -i "s/configFile =.*/configFile = '\/opt\/FDMR-Monitor2\/fdmr-mon.cfg';/g" /opt/FDMR-Monitor2/html/ssconfunc.php #sed -i "s/configFile =.*/configFile = '\/opt\/FDMR-Monitor2\/fdmr-mon.cfg';/g" /var/www/fdmr2/ssconfunc.php -wget -q --no-check-certificate -r 'https://docs.google.com/uc?export=download&id=1cWqClH0FUxV5d-rVnibI_-iCypFnTDb3' -O /opt/FDMR-Monitor2/html/img/bk.jpg && -wget -q --no-check-certificate -r 'https://docs.google.com/uc?export=download&id=1vsviKjpZmL_mWVEW2UstNODGPl8-uNVo' -O /opt/flags.zip && - -sudo unzip -o /opt/flags.zip -d /opt/FDMR-Monitor2/html/flags/ && -rm /opt/flags.zip +#wget -q --no-check-certificate -r 'https://docs.google.com/uc?export=download&id=1cWqClH0FUxV5d-rVnibI_-iCypFnTDb3' -O /opt/FDMR-Monitor2/html/img/bk.jpg && +#wget -q --no-check-certificate -r 'https://docs.google.com/uc?export=download&id=1vsviKjpZmL_mWVEW2UstNODGPl8-uNVo' -O /opt/flags.zip && +#sudo unzip -o /opt/flags.zip -d /opt/FDMR-Monitor2/html/flags/ && +#rm /opt/flags.zip +wget -O /opt/FDMR-Monitor2/html/img/logo.png https://adn.systems/files/logo1.png +wget -O /opt/FDMR-Monitor2/html/img/favicon.ico https://adn.systems/files/ADN_37x18_01.ico +wget -O /opt/FDMR-Monitor2/html/img/Logo_mini.png https://adn.systems/files/Logo_mini.png sudo cp fdmr-mon_SAMPLE.cfg fdmr-mon.cfg sudo chmod 644 fdmr-mon.cfg @@ -1344,6 +958,12 @@ cronedit.sh '*/2 * * * *' 'sh /etc/freedmr/hbmon/sysinfo/cpu.sh' remove && cronedit.sh '* */24 * * *' 'rm /etc/freedmr/hbmon/data/*' remove && cronedit.sh '* */24 * * *' 'rm /opt/FDMR-Monitor/data/*' remove && cronedit.sh '* */24 * * *' 'rm /opt/FDMR-Monitor2/data/*' add + +if [ -f "/etc/nginx/sites-enabled/freedmr" ]; then + mv /etc/nginx/sites-enabled/freedmr /etc/nginx/sites-enabled/adn + sudo systemctl restart nginx +fi + EOFB2 sudo chmod +x /opt/monitor-update2.sh ###################################################################################################################### @@ -1380,7 +1000,7 @@ sudo chmod +x /opt/monitor-update.sh sudo chmod +x /bin/menu* sudo chmod +x /opt/monitor-update2.sh -if [ -d "/opt/FreeDMR/" ] +if [ -d "/opt/ADN-DMR-Peer-Server/" ] then menu-update else