#!/bin/bash ######################################################################## # Author: Fred (support@qo-op.com) # Version: 0.3 # 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 https://copylaradio.com ' | lolcat ######## 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 [[ ! $(which mpd) ]] && 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 ## MULTIMEDIA ## VIDEO & AUDIO & PLAYLISTS ~/.zen/ DIR mkdir -p ~/.zen/video mkdir -p ~/.zen/audio mkdir -p ~/.zen/playlists mkdir -p /home/$YOU/.zen/ipfs/.$IPFSNODEID/TASK/loveland_entrance ## 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 ### INSTALL NGINX echo ' _ ____ ____ _(_)___ _ __ / __ \/ __ `/ / __ \| |/_/ / / / / /_/ / / / / /> < /_/ /_/\__, /_/_/ /_/_/|_| /____/ ' | lolcat 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 # IN CASE, KILL RUNNING OASIS sudo kill -9 $(ps auxf --sort=+utime | grep -w oasis | grep -v -E 'color=auto|grep' | tail -n 1 | awk '{print $2}') echo "REstarting OASIS with good $nodename & network config" [[ ! $(which nslookup) ]] && sudo apt-get install lolcat dnsutils -y echo ' __ ___ _ ___ / |/ /_ __ ____ ____ _____ ___ ___ (_)___/__ \ / /|_/ / / / / / __ \/ __ `/ __ `__ \/ _ \ / / ___// _/ / / / / /_/ / / / / / /_/ / / / / / / __/ / (__ )/_/ /_/ /_/\__, / /_/ /_/\__,_/_/ /_/ /_/\___/ /_/____/(_) /____/ ' | lolcat myip=$(hostname -I | awk '{print $1}') # Check if IP is from reserved LAN addresses (Thanks a lot to https://stackoverflow.com) isLAN=$(echo $myip | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/") # Find 1st route gateway myRouter=$(sudo route -n | head -n 3 | tail -n 1 | awk '{print $2}') # Ask to the router its name (BOX DNS or system defined) nodename=$(curl -s https://git.p2p.legal/axiom-team/astroport/raw/master/zen/tools/nodename | bash) echo $nodename if [[ ! $isLAN ]]; then oasis --allow-host $nodename 2>&1>/dev/null & echo "BE CAREFULL your SSB identity could be publicly controled..." else oasis --allow-host $nodename --host $nodename 2>&1>/dev/null & fi sleep 5 echo "INSTALL LOVELand WebSite. Linking to /var/www ..." if [[ ! -L /var/www/loveland ]]; then sudo ln -s /home/$YOU/.zen/astroport/www/LOVELand /var/www/loveland fi echo "JUKEBOX init" sudo chmod -R 777 /var/www/loveland/jukebox/albumart sudo chmod -R 777 /var/www/loveland/jukebox/prefs # CONFIG NGINX - LOVE LAND FRONTAL WEB PAGE echo "$nodename" | figlet -f slant | lolcat NODENAME=$nodename YOU=$(ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1); PHPVERSION=$(ps auxf | grep php-fpm | grep -v -E 'color=auto|grep' | head -n 1 | grep -oP '(?<=\().*(?=\))' | awk -F '/' '{print $4}') ### ASTROPORT STATION PORTAL sudo sed "s/_PHPVERSION_/$PHPVERSION/g" /home/$YOU/.zen/astroport/www/loveland.conf > /tmp/loveland.conf sudo sed -i "s/_NODERNAME_/$NODENAME/g" /tmp/loveland.conf [[ $isLAN ]] && sudo sed -i "s/_PORT_/10010/g" /tmp/loveland.conf \ || sudo sed -i "s/_PORT_/80/g" /tmp/loveland.conf sudo sed -i "s/_APPLI_//g" /tmp/loveland.conf sudo cp -f /tmp/loveland.conf /etc/nginx/conf.d/loveland.conf ### GCHANGE G1 Zen sudo rm -f /etc/nginx/conf.d/gchange.conf sudo sed "s/_PHPVERSION_/$PHPVERSION/g" /home/$YOU/.zen/astroport/www/loveland.conf > /tmp/gchange.conf sudo sed -i "s/_NODERNAME_/$NODENAME/g" /tmp/gchange.conf sudo sed -i "s/_PORT_/10020/g" /tmp/gchange.conf sudo sed -i "s/_APPLI_/gchange/g" /tmp/gchange.conf sudo cp -f /tmp/gchange.conf /etc/nginx/conf.d/gchange.conf ### CESIUM G1 Zen sudo sed "s/_PHPVERSION_/$PHPVERSION/g" /home/$YOU/.zen/astroport/www/loveland.conf > /tmp/cesium.conf sudo sed -i "s/_NODERNAME_/$NODENAME/g" /tmp/cesium.conf sudo sed -i "s/_PORT_/10030/g" /tmp/cesium.conf sudo sed -i "s/_APPLI_/cesium/g" /tmp/cesium.conf sudo cp -f /tmp/cesium.conf /etc/nginx/conf.d/cesium.conf ### SSB OASIS Zen sudo sed "s/_NODERNAME_/$NODENAME/g" /home/$YOU/.zen/astroport/www/oasis.conf > /tmp/oasis.conf sudo sed -i "s/_PORT_/10040/g" /tmp/oasis.conf sudo sed -i "s/_LPORT_/3000/g" /tmp/oasis.conf sudo sed -i "s/_APPLI_//g" /tmp/oasis.conf sudo cp -f /tmp/oasis.conf /etc/nginx/conf.d/oasis.conf ### JUKEBOX RompR CopyLaRadio sudo sed "s/_PHPVERSION_/$PHPVERSION/g" /home/$YOU/.zen/astroport/www/loveland.conf > /tmp/jukebox.conf sudo sed -i "s/_NODERNAME_/$NODENAME/g" /tmp/jukebox.conf sudo sed -i "s/_PORT_/10011/g" /tmp/jukebox.conf sudo sed -i "s/_APPLI_/jukebox/g" /tmp/jukebox.conf sudo cp -f /tmp/jukebox.conf /etc/nginx/conf.d/jukebox.conf sudo systemctl restart nginx || err=1 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