From 1110b0c74b4d9332d3e4fe0dbb617c59c4de0d41 Mon Sep 17 00:00:00 2001 From: fred Date: Fri, 9 Sep 2022 18:20:18 +0200 Subject: [PATCH] systemctl and InitV startup script --- G1VOEUX.sh | 2 +- install.sh | 51 +++++++++++++++++ templates/ipfs/ipfs-initV.sh | 103 +++++++++++++++++++++++++++++++++++ templates/ipfs/ipfs.service | 14 +++++ tools/TUBE.copy.sh | 3 +- tools/VOEUX.print.sh | 2 + 6 files changed, 173 insertions(+), 2 deletions(-) create mode 100644 templates/ipfs/ipfs-initV.sh create mode 100644 templates/ipfs/ipfs.service diff --git a/G1VOEUX.sh b/G1VOEUX.sh index fcb051d1..51273bf2 100755 --- a/G1VOEUX.sh +++ b/G1VOEUX.sh @@ -242,7 +242,7 @@ convert -gravity northwest -pointsize 50 -fill black -draw "text 30,300 \"$PEPPE echo "CAPSULE A REVE $PEPPER : http://127.0.0.1:8080/ipns/$VOEUXNS" - ech "## Creating Cesium+ Profil #### timeout long ... patience ...." + echo "## Creating Cesium+ Profil #### timeout long ... patience ...." $MY_PATH/tools/jaklis/jaklis.py -k ~/.zen/tmp/qrtw.dunikey -n "https://g1.data.presles.fr" set --name "G1Voeu $PEPPER" --avatar "/home/$USER/.zen/Astroport.ONE/images/logojune.jpg" --site "https://astroport.com/ipns/$VOEUXNS" #CESIUM+ [[ ! $? == 0 ]] && echo "CESIUM PROFILE CREATION FAILED !!!!" diff --git a/install.sh b/install.sh index 403f7c4e..8f69e084 100755 --- a/install.sh +++ b/install.sh @@ -187,6 +187,57 @@ else exit 0 fi +########################################### +# ACTIVATE IPFS OPTIONS: #swarm0 INIT +########################################### +### IMPORTANT !!!!!!! IMPORTANT !!!!!! +########################################### +# DHT PUBSUB mode +ipfs config Pubsub.Router gossipsub +# MAXSTORAGE = 1/2 available +availableDiskSize=$(df -P ~/ | awk 'NR>1{sum+=$4}END{print sum}') +diskSize="$((availableDiskSize / 2))" +ipfs config Datastore.StorageMax $diskSize +## Activate Rapid "ipfs p2p" +ipfs config --json Experimental.Libp2pStreamMounting true +ipfs config --json Experimental.P2pHttpProxy true +ipfs config --json Swarm.ConnMgr.LowWater 0 +ipfs config --json Swarm.ConnMgr.HighWater 0 +ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["http://127.0.0.1:8080", "http://astroport", "https://astroport.com", "https://qo-op.com", "https://tube.copylaradio.com" ]' +ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "GET", "POST"]' +ipfs config --json API.HTTPHeaders.Access-Control-Allow-Credentials '["true"]' + +ipfs config Addresses.API "/ip4/0.0.0.0/tcp/5001" +ipfs config Addresses.Gateway "/ip4/0.0.0.0/tcp/8080" + +######### CLEAN DEFAULT BOOTSTRAP TO STAY INVISIBLE ########### +ipfs bootstrap rm --all +########################################### +# BOOTSTRAP NODES ARE ADDED LATER +########################################### +# AVOID CONFLICT WITH KODI ./.install/.kodi/userdata/guisettings.xml +ipfs config Addresses.Gateway "/ip4/0.0.0.0/tcp/8080" + +[[ "$USER" != "xbian" ]] && sudo systemctl restart ipfs + +######################################################################## +# SUDO permissions +######################################################################## +## USED FOR fail2ban-client (DEFCON) +echo "$USER ALL=(ALL) NOPASSWD:/usr/bin/fail2ban-client" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/fail2ban-client') +## USED FOR RAMDISK (video live streaming) +echo "$USER ALL=(ALL) NOPASSWD:/bin/mount" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/mount') +echo "$USER ALL=(ALL) NOPASSWD:/bin/umount" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/umount') +## USED FOR SYSTEM UPGRADE +echo "$USER ALL=(ALL) NOPASSWD:/usr/bin/apt-get" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/apt-get') +echo "$USER ALL=(ALL) NOPASSWD:/usr/bin/apt" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/apt') +## USED FOR "systemctl restart ipfs" +echo "$USER ALL=(ALL) NOPASSWD:/bin/systemctl" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/systemctl') + +## brother_ql_print +echo "$USER ALL=(ALL) NOPASSWD:/usr/local/bin/brother_ql_print" | (sudo su -c 'EDITOR="tee" visudo -f /etc/sudoers.d/brother_ql_print') + + # MAIN # -f ~/.zen/secret.june (ISOConfig déjà lancé) ## else diff --git a/templates/ipfs/ipfs-initV.sh b/templates/ipfs/ipfs-initV.sh new file mode 100644 index 00000000..9c0f31f8 --- /dev/null +++ b/templates/ipfs/ipfs-initV.sh @@ -0,0 +1,103 @@ +#!/bin/sh +### BEGIN INIT INFO +# Provides: ipfs +# Required-Start: $local_fs $remote_fs $network $syslog $named +# Required-Stop: $local_fs $remote_fs $network $syslog $named +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Should-Start: ipfs daemon +# Should-Stop: ipfs daemon +# Short-Description: Starts the ipfs daemon +# Description: ipfs daemon is managing swarm filesystem +### END INIT INFO + +# Author: Dylan Powers = 3.2-14) to ensure that this file is present +# and status_of_proc is working. +. /lib/lsb/init-functions + +# +# Function that starts the daemon/service +# +do_start() { + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test >/dev/null \ + || return 1 + start-stop-daemon --start --quiet --pidfile $PIDFILE --make-pidfile \ + --background --chuid $IPFS_USER --no-close \ + --exec /usr/bin/env IPFS_PATH="$IPFS_PATH" $DAEMON 2>>/var/log/ipfs.log 1>/dev/null \ + -- $DAEMON_ARGS \ + || return 2 +} + +# +# Function that stops the daemon/service +# +do_stop() { + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + + # Delete the pid + rm -f $PIDFILE + return "$RETVAL" +} + +case "$1" in + start) + [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME" + do_start + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + stop) + [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME" + do_stop + case "$?" in + 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;; + 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;; + esac + ;; + status) + status_of_proc "$DAEMON" "$NAME" && exit 0 || exit $? + ;; + restart) + do_stop + do_start + ;; + *) + echo "Usage: $SCRIPTNAME {start|stop|status|restart}" >&2 + exit 3 + ;; +esac diff --git a/templates/ipfs/ipfs.service b/templates/ipfs/ipfs.service new file mode 100644 index 00000000..1c171ae6 --- /dev/null +++ b/templates/ipfs/ipfs.service @@ -0,0 +1,14 @@ +[Unit] +Description=IPFS daemon +After=network.target + +[Service] +User=_USER +ExecStart=/usr/local/bin/ipfs daemon --enable-pubsub-experiment --enable-namesys-pubsub --routing=dhtclient --enable-gc +Restart=on-failure +RestartSec=10s +CPUAccounting=true +CPUQuota=60% + +[Install] +WantedBy=multi-user.target diff --git a/tools/TUBE.copy.sh b/tools/TUBE.copy.sh index d34a837f..b5128e0f 100755 --- a/tools/TUBE.copy.sh +++ b/tools/TUBE.copy.sh @@ -35,7 +35,8 @@ for yurl in $(cat ~/.zen/tmp/tiddlers.json | jq -r '.[].text' | grep 'http'); do rm -Rf ~/.zen/tmp/tube mkdir -p ~/.zen/tmp/tube - yt-dlp -f "[ext=mp4]+best[height<=480]+[filesize<300M]" --no-mtime --embed-thumbnail --add-metadata -o "$HOME/.zen/tmp/tube/%(title)s.%(ext)s" ${yurl} + # https://github.com/yt-dlp/yt-dlp#format-selection-examples + yt-dlp -f "bv*[height<=480]+ba/b[height<=480] / wv*+ba/w" --no-mtime --embed-thumbnail --add-metadata -o "$HOME/.zen/tmp/tube/%(title)s.%(ext)s" ${yurl} FILE=$(ls -t ~/.zen/tmp/tube/ | tail -n 1) [[ ! -f ~/.zen/tmp/tube/$FILE ]] && echo "No FILE -- EXIT --" && exit 1 diff --git a/tools/VOEUX.print.sh b/tools/VOEUX.print.sh index 1f2b5090..81dbf0d6 100755 --- a/tools/VOEUX.print.sh +++ b/tools/VOEUX.print.sh @@ -47,6 +47,8 @@ select voeu in "${vlist[@]}"; do case $typ in "TW") + echo "Changer de Gateway http://$myIP:8080 ?" + read GW && [[ ! $GW ]] && GW="http://$myIP:8080" qrencode -s 12 -o "$HOME/.zen/game/world/$voeu/QR.WISHLINK.png" "http://$myIP:8080/ipns/$VOEUXNS" convert $HOME/.zen/game/world/$voeu/QR.WISHLINK.png -resize 600 ~/.zen/tmp/START.png echo " QR code $TITLE : http://$myIP:8080/ipns/$VOEUXNS"