#!/bin/bash ######################################################################## # Author: Fred (support@qo-op.com) # Version: 2020.03.24 # License: AGPL-3.0 (https://choosealicense.com/licenses/agpl-3.0/) ######################################################################## { MY_PATH="`dirname \"$0\"`" # relative MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized ME="${0##*/}" [[ $USER == "root" ]] && echo "DO NOT RUN AS root!! Use regular USER with sudo AUTHORISATION" && exit 1 is_apache_running=$(ps auxf --sort=+utime | grep -w apache | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1); [[ $is_apache_running ]] && echo "SORRY ONLY nginx is supported. EXIT" && exit 1 MACHINE_TYPE=`uname -m` [ ${MACHINE_TYPE:0:3} == 'arm' ] && isARM="YES" YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1); [[ ! $YOU ]] && echo "EXIT! PLEASE INSTALL & RUN ipfs daemon WITH curl -s https://git.p2p.legal/axiom-team/astroport/raw/master/.install/ipfs_alone.sh | bash " \ && exit 1 IPFSNODEID=$(ipfs id -f='\n') ################################## ## INSTALL echo ' ______ __ ____ ___ / ____/___ ____ __ __/ / ____ _/ __ \____ _____/ (_)___ / / / __ \/ __ \/ / / / / / __ `/ /_/ / __ `/ __ / / __ \ / /___/ /_/ / /_/ / /_/ / /___/ /_/ / _, _/ /_/ / /_/ / / /_/ / \____/\____/ .___/\__, /_____/\__,_/_/ |_|\__,_/\__,_/_/\____/ /_/ /____/ Multimedia Layer installation ' ######## YOUTUBE-DL ########## if [[ ! $(which youtube-dl) ]]; then sudo wget https://yt-dl.org/downloads/latest/youtube-dl -O /usr/local/bin/youtube-dl || exit 1 sudo chmod a+rx /usr/local/bin/youtube-dl sudo chown $USER /usr/local/bin/youtube-dl fi # AUDIO LAYER sudo apt-get update sudo apt-get install libid3-tools mpd mpc lame -y || err=1 sudo apt-get install lame sox libsox-fmt-mp3 eyed3 python-chardet imagemagick curl -y #libav-tools || err=1 sudo apt-get install ca-certificates git-core binutils rsync alsa-utils bc espeak mpg321 fuse atomicparsley -y || err=1 ## CONFIG MPD sudo cp -f /home/$YOU/.zen/astroport/.install/templates/copylaradio/mpd.conf /etc/mpd.conf sudo sed -i "s/_USER_/$USER/g" /etc/mpd.conf || err=1 mkdir ~/.config/mpd && sudo cp -f /etc/mpd.conf ~/.config/mpd/mpd.conf && sudo chown $USER ~/.config/mpd/mpd.conf ## MUSIC & PLAYLISTS mkdir -p ~/.zen/music mkdir -p ~/.zen/playlists ## CHOWN mpd FILES STRUCTURE sudo chown -R $USER /var/lib/mpd/ /var/run/mpd /run/mpd /var/log/mpd sudo service mpd restart || err=1 ## TODO add to system start (/etc/rc.local?) ### INSTALL NGINX echo ' _ ____ ____ _(_)___ _ __ / __ \/ __ `/ / __ \| |/_/ / / / / /_/ / / / / /> < /_/ /_/\__, /_/_/ /_/_/|_| /____/ ' sudo apt-get install fail2ban nginx ssl-cert php-curl php-sqlite3 php-gd php-json php-xml php-mbstring php-fpm sqlite -y || err=1 # CONFIG NGINX - LOVE LAND FRONTAL WEB PAGE sudo cp -f /home/$YOU/.zen/astroport/www/loveland.conf /etc/nginx/conf.d/ PHPVERSION=$(ps auxf | grep php-fpm | grep -v -E 'color=auto|grep' | head -n 1 | grep -oP '(?<=\().*(?=\))' | awk -F '/' '{print $4}') sudo sed -i "s/_PHPVERSION_/$PHPVERSION/g" /etc/nginx/conf.d/loveland.conf nodename=$(cat /etc/hostname) echo "ENTER Station accessible Network name !!! Suggestion : $nodename" read nodename [[ $nodename == "" ]] && echo "Are you sure? Hit ENTER to keep $nodename)" && read nodename [[ $nodename == "" ]] && nodename=$(cat /etc/hostname) sudo sed -i "s/_SERVERNAME_/$nodename/g" /etc/nginx/conf.d/loveland.conf echo "INSTALL LOVELand WebSite" if [[ ! -L /var/www/loveland ]]; then sudo ln -s /home/$YOU/.zen/astroport/www/LOVELand /var/www/loveland fi sudo chmod -R 777 /var/www/loveland/jukebox/albumart sudo chmod -R 777 /var/www/loveland/jukebox/prefs # Disabling default website sudo rm -f /etc/nginx/sites-enabled/default sudo systemctl restart nginx || err=1 echo "Trying to REstart OASIS with good $nodename security options" kill -9 $(ps auxf --sort=+utime | grep -w oasis | grep -v -E 'color=auto|grep' | tail -n 1 | awk '{print $2}') extension=$(echo $nodename | cut -d '.' -f 2) myip=$(hostname -I | awk '{print $1}') isLAN=$(echo $myip | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/") if [[ ! $isLAN ]]; then oasis --allow-host $nodename 2>&1>/dev/null & echo "BE CAREFULL your SSB identity could be publicly controled..." echo "TODO correct 'Not Found' error (cors problem related)" else oasis --allow-host $nodename --host $nodename 2>&1>/dev/null & fi sleep 5 if [[ $err ]]; then echo -e "${c_red}Installation de LOVELand bizarre??$c_" echo "PLEASE... POST YOUR ISSUE! https://git.p2p.legal/axiom-team/astroport/issues" exit 1 else echo -e "${c_green}LOVE Land a été installé avec succès$c_" echo "LoveLand Portal link http://$nodename (TRY ME) Add ScuttleButt Astroport PUB Invitation in http://$nodename:3000/settings oasis.astroport.com:8008::@UeiA9iqZ0/XTjmYBht230KGr44bsr+Tl5BXSUDFv8vo=.ed25519~jd9Z4y/d/xZCF7bfuSgQSiSGLMeWFhwMosKUFhFxeEY=" exit 0 fi } # for script being completely downloaded before run