diff --git a/12345.sh b/12345.sh index 1ab057e0..e5da41d0 100755 --- a/12345.sh +++ b/12345.sh @@ -11,13 +11,11 @@ ################################################################################ MY_PATH="`dirname \"$0\"`" # relative MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized -ME="${0##*/}" - . "${MY_PATH}/tools/my.sh" PORT=12345 - YOU=$(ipfs swarm peers >/dev/null 2>&1 && echo "$USER" || ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1); ## $USER running ipfs + YOU=$(myIpfsApi); ## API of $USER running ipfs LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) ## SWARM#0 ENTRANCE URL TUBE=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 3) diff --git a/_12345.sh b/_12345.sh index f7a742dd..230bce08 100755 --- a/_12345.sh +++ b/_12345.sh @@ -8,16 +8,13 @@ # This script scan Swarm API layer from official bootstraps # Then publish map of json DApp data # -MOATS=$(date -u +"%Y%m%d%H%M%S%4N") -IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID) - -myIP=$(hostname -I | awk '{print $1}' | head -n 1) -isLAN=$(route -n |awk '$1 == "0.0.0.0" {print $2}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/") -[[ ! $myIP || $isLAN ]] && myIP="ipfs.localhost" +MY_PATH="`dirname \"$0\"`" # relative +MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized +. "${MY_PATH}/tools/my.sh" PORT=12345 - YOU=$(ipfs swarm peers >/dev/null 2>&1 && echo "$USER" || ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1); ## $USER running ipfs + YOU=$(myIpfsApi); ## API of $USER running ipfs LIBRA=$(head -n 2 ~/.zen/Astroport.ONE/A_boostrap_nodes.txt | tail -n 1 | cut -d ' ' -f 2) ## SWARM#0 ENTRANCE URL ncrunning=$(ps axf --sort=+utime | grep -w 'nc -l -p 12345' | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 2) @@ -126,11 +123,11 @@ Content-Type: application/json; charset=UTF-8 { \"created\" : \"${MOATS}\", - \"hostname\" : \"$(hostname)\", + \"hostname\" : \"$(myHostName)\", \"myIP\" : \"${myIP}\", \"ipfsnodeid\" : \"${IPFSNODEID}\", - \"url\" : \"http://${myIP}:8080/ipns/${IPFSNODEID}\", - \"myswarm\" : \"http://${myIP}:8080/ipns/${CHAN}\" + \"url\" : \"${myIPFS}/ipns/${IPFSNODEID}\", + \"myswarm\" : \"${myIPFS}/ipns/${CHAN}\" } " ###################################################################################### diff --git a/ajouter_media.sh b/ajouter_media.sh index cfd2d634..3ed5db97 100755 --- a/ajouter_media.sh +++ b/ajouter_media.sh @@ -20,7 +20,10 @@ ######################################################################## MY_PATH="`dirname \"$0\"`" # relative MY_PATH="`( cd \"$MY_PATH\" && pwd )`" # absolutized and normalized -ME="${0##*/}" +. "${MY_PATH}/tools/my.sh" + +[[ $IPFSNODEID == "" ]] && echo "IPFSNODEID manquant" && espeak "IPFS NODE ID Missing" && exit 1 + start=`date +%s` # REMOVE GtkDialog errors for zenity shopt -s expand_aliases @@ -39,7 +42,7 @@ PLAYER="$2" CHOICE="$3" # Check who is .current PLAYER -[[ ${PLAYER} == "" ]] && PLAYER=$(cat ~/.zen/game/players/.current/.player 2>/dev/null) +[[ ${PLAYER} == "" ]] && PLAYER=$(myPlayer) [[ ${PLAYER} == "" ]] \ && players=($(ls ~/.zen/game/players 2>/dev/null)) \ @@ -53,28 +56,18 @@ CHOICE="$3" && xdg-open "https://qo-op.com" \ && exit 1 -PSEUDO=$(cat ~/.zen/game/players/${PLAYER}/.pseudo 2>/dev/null) +PSEUDO=$(myPlayerPseudo) espeak "Hello $PSEUDO" -( cd $MY_PATH && git pull ) & - -G1PUB=$(cat ~/.zen/game/players/${PLAYER}/.g1pub 2>/dev/null) +G1PUB=$(myPlayerG1Pub) [[ $G1PUB == "" ]] && espeak "ERROR NO G 1 PUBLIC KEY FOUND - EXIT" && exit 1 -PLAYERNS=$(cat ~/.zen/game/players/${PLAYER}/.playerns 2>/dev/null) || ( echo "noplayerns" && exit 1 ) +PLAYERNS=$(myPlayerNs) || ( echo "noplayerns" && exit 1 ) -ASTRONAUTENS=$(ipfs key list -l | grep -w "${PLAYER}" | cut -d ' ' -f 1) +ASTRONAUTENS=$(myAstronauteKey) [[ $ASTRONAUTENS == "" ]] && echo "ASTRONAUTE manquant" && espeak "Astronaut Key Missing" && exit 1 -MOATS=$(date -u +"%Y%m%d%H%M%S%4N") -IPFSNODEID=$(cat ~/.ipfs/config | jq -r .Identity.PeerID) -[[ $IPFSNODEID == "" ]] && echo "IPFSNODEID manquant" && espeak "IPFS NODE ID Missing" && exit 1 - -BROWSER=$(xdg-settings get default-web-browser | cut -d '.' -f 1 | cut -d '-' -f 1) ## GET cookies-from-browser - -myIP=$(hostname -I | awk '{print $1}' | head -n 1) -isLAN=$(route -n |awk '$1 == "0.0.0.0" {print $2}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/") -[[ ! $myIP || $isLAN ]] && myIP="ipfs.localhost" +BROWSER=$(myPlayerBrowser) ## GET cookies-from-browser if [ $URL ]; then echo "URL: $URL" @@ -145,10 +138,9 @@ ISPUBLISHING=$(ps auxf --sort=+utime | grep -w 'ipfs name publish' | grep -v -E ######################################################################## espeak "restart I P F S daemon" -sudo systemctl restart ipfs -sleep 1 +[[ "$isLAN" ]] && sudo systemctl restart ipfs && sleep 1 ## CHECK IF ASTROPORT/CRON/IPFS IS RUNNING -YOU=$(ipfs swarm peers >/dev/null 2>&1 && echo "$USER" || ps auxf --sort=+utime | grep -w ipfs | grep -v -E 'color=auto|grep' | tail -n 1 | cut -d " " -f 1) +YOU=$(myIpfsApi) [[ ! $YOU ]] && espeak "I P F S not running - EXIT" && exit 1 ######################################################################## diff --git a/docker/astroport.mk b/docker/astroport.mk index 7f2b5c11..67063bfa 100644 --- a/docker/astroport.mk +++ b/docker/astroport.mk @@ -6,12 +6,13 @@ HOST_ASTROPORT_SERVICE_NAME ?= astroport HOST_ASTROPORT_SERVICE_1234_TAGS ?= $(call tagprefix,HOST_ASTROPORT,1234) HOST_ASTROPORT_UFW_UPDATE := 1234/tcp 12245:12445/tcp 45720/tcp MAKE_VARS += SSH_PORT User host -PLAYER_MAKE_VARS := COMPOSE_PROJECT_NAME MAIL IPFS_UFW_DOCKER IPFS_UFW_UPDATE USER_IPFS_SERVICE_PROXY_TCP USER_IPFS_SERVICE_5001_ENVS USER_RESU_HOST +PLAYER_MAKE_VARS := COMPOSE_PROJECT_NAME MAIL IPFS_UFW_DOCKER IPFS_UFW_UPDATE USER_IPFS_SERVICE_PROXY_TCP USER_IPFS_SERVICE_5001_ENVS RESU_HOME RESU_HOST +RESU_HOME := mail +RESU_HOST := true SERVICE := astroport SSH_PORT := 45720 SSH_PUBLIC_HOSTS := git.p2p.legal STACK := host -USER_RESU_HOST := true User := User/ipfs host := host/ipfs ifeq ($(PLAYER_API_ONLINE),true) diff --git a/docker/astroport/Dockerfile b/docker/astroport/Dockerfile index ef0f8817..604fb4a8 100644 --- a/docker/astroport/Dockerfile +++ b/docker/astroport/Dockerfile @@ -101,6 +101,14 @@ RUN set -x && buildDeps=' \ RUN npm install -g tiddlywiki sjcl-cli +ARG COMPOSE_REMOTE=https://github.com/docker/compose +ARG COMPOSE_VERSION=2.5.0 + +RUN OS="$(echo ${DOCKER_SYSTEM} |awk '{print tolower($0)}')"; \ + ARCH="$(echo ${DOCKER_MACHINE})"; \ + wget -qO /usr/bin/docker-compose ${COMPOSE_REMOTE}/releases/download/v${COMPOSE_VERSION}/docker-compose-${OS}-${ARCH} \ + && chmod +x /usr/bin/docker-compose + ARG IPFS_VERSION=0.16.0 RUN { OS="$(echo ${DOCKER_SYSTEM} |awk '{print tolower($0)}')"; \ diff --git a/tools/my.sh b/tools/my.sh index c171e0cc..6750dd12 100755 --- a/tools/my.sh +++ b/tools/my.sh @@ -1,29 +1,34 @@ #shellcheck shell=sh disable=SC2034 -ipfsNodeId() { - ipfsNodeId=$(jq -r .Identity.PeerID ~/.ipfs/config) - [ -n "$ipfsNodeId" ] && echo "$ipfsNodeId" -} - isLan() { isLan=$(ip route |awk '$1 == "default" {print $3}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/" \ || route -n |awk '$1 == "0.0.0.0" {print $2}' | grep -E "/(^127\.)|(^192\.168\.)|(^10\.)|(^172\.1[6-9]\.)|(^172\.2[0-9]\.)|(^172\.3[0-1]\.)|(^::1$)|(^[fF][cCdD])/" \ || true) - [ -n "$isLan" ] && echo "$isLan" ||: + [ -n "$isLan" ] && echo "$isLan" || true } 2>/dev/null +isPlayerLegal() { + isPlayerLegal=$(cat "$(myPlayerPath)"/.legal 2>/dev/null || true) + [ -n "$isPlayerLegal" ] && echo "$isPlayerLegal" || true +} + +myAstronauteKey() { + myAstronauteKey=$(ipfs --api "$(myIpfsApi)" key list -l | awk '$2 == "'"$(myPlayer)"'" {print $1}') + [ -n "$myAstronauteKey" ] && echo "$myAstronauteKey" +} + myDomainName() { myDomainName=$(hostname -d 2>/dev/null) && [ -z "$myDomainName" ] && myDomainName=$(domainname 2>/dev/null) && [ "$myDomainName" = "(none)" ] && myDomainName="localhost" [ -n "$myDomainName" ] && echo "$myDomainName" } -myHash() { - [ -f ~/.zen/game/players/localhost/latest ] \ - && myHash=$(cat ~/.zen/game/players/localhost/latest) \ - || myHash=$(myTmpl |ipfs add -q) - [ ! -f ~/.zen/game/players/localhost/latest ] \ - && echo "$myHash" > ~/.zen/game/players/localhost/latest - [ -n "$myHash" ] && echo "$myHash" +myIpfsHash() { + [ -f "$(myPath)"/localhost/latest ] \ + && myIpfsHash=$(cat "$(myPath)"/localhost/latest) \ + || myIpfsHash=$(myTmpl |ipfs add -q) + [ ! -f "$(myPath)"/localhost/latest ] \ + && echo "$myIpfsHash" > "$(myPath)"/localhost/latest + [ -n "$myIpfsHash" ] && echo "$myIpfsHash" } myHttp() { @@ -38,25 +43,30 @@ myHttp() { } myHttpContent() { - [ -n "$(myHash)" ] \ + [ -n "$(myIpfsHash)" ] \ && myHttpContent="302 Found

Found

-

The document is here in IPFS.

" \ +

The document is here in IPFS.

" \ && echo "$myHttpContent" } myHttpHeader() { - [ -n "$(myHash)" ] \ + [ -n "$(myIpfsHash)" ] \ && myHttpHeader="HTTP/1.0 302 Found Content-Type: text/html; charset=UTF-8 Content-Length: $(myHttpContent |wc -c) Date: $(date -R) -Location: ipfs/$(myHash) +Location: ipfs/$(myIpfsHash) Server: and" - [ -n "$(myKey)" ] && myHttpHeader="${myHttpHeader} -set-cookie: AND=$(myKey); expires=$(date -R -d "+1 month"); path=/; domain=.$(myDomainName); Secure; SameSite=lax" + [ -n "$(myIpfsKey)" ] && myHttpHeader="${myHttpHeader} +set-cookie: AND=$(myIpfsKey); expires=$(date -R -d "+1 month"); path=/; domain=.$(myDomainName); Secure; SameSite=lax" [ -n "$myHttpHeader" ] && echo "$myHttpHeader" } +myHome() { + myHome=$(cd ~ && pwd -P) + [ -n "$myHome" ] && echo "$myHome" +} + myHostName() { myHostName=$(hostname |sed 's/\.'"$(myDomainName)"'$//') [ -n "$(myDomainName)" ] && myHostName="${myHostName}.$(myDomainName)" || myDomainName=${myHostName#*.} @@ -69,25 +79,93 @@ myIp() { } myIpfs() { - [ -n "$(myHash)" ] \ - && myIpfs="${myIPFS}/ipfs/$(myHash)" \ + [ -n "$(myIpfsHash)" ] \ + && myIpfs="${myIPFS}/ipfs/$(myIpfsHash)" \ && echo "$myIpfs" } +myIpfsApi() { + ipfs --api "$(cat "$(myHome)"/.ipfs/api)" swarm peers >/dev/null 2>&1 \ + && myIpfsApi=$(cat "$(myHome)"/.ipfs/api) \ + && echo "$myIpfsApi" +} + +myIpfsKey() { + myIpfsKey=$(ipfs --api "$(myIpfsApi)" key list -l | awk '$2 == "self" {print $1}') + [ -n "$myIpfsKey" ] && echo "$myIpfsKey" +} + +myIpfsKeystore() { + myIpfsKeystore=$(cd "$(myHome)"/.ipfs/keystore && pwd -P) + [ -n "$myIpfsKeystore" ] && echo "$myIpfsKeystore" +} + +myIpfsPeerId() { + myIpfsPeerId=$(jq -r .Identity.PeerID "$(myHome)"/.ipfs/config) + [ -n "$myIpfsPeerId" ] && echo "$myIpfsPeerId" +} + myIpns() { - [ -n "$(myKey)" ] \ - && myIpns="${myIPFS}/ipns/$(myKey)" \ + [ -n "$(myIpfsKey)" ] \ + && myIpns="${myIPFS}/ipns/$(myIpfsKey)" \ && echo "$myIpns" } -myKey() { - myKey=$(ipfs key list -l | awk '$2 == "self" {print $1}') - [ -n "$myKey" ] && echo "$myKey" +myPath() { + myPath=$(cd ~/.zen/game/players/ && pwd -P) + [ -n "$myPath" ] && echo "$myPath" } -myPath() { - myPath=$(cd "$(dirname "$0")" 2>/dev/null && pwd -P) - [ -n "$myPath" ] && echo "$myPath" +myPlayer() { + myPlayer=$(cat "$(myPath)"/.current/.player 2>/dev/null) + [ -n "$myPlayer" ] && echo "$myPlayer" +} + +myPlayerApi() { + ipfs --api "$(cat "$(myPlayerPath)"/.ipfs/api )" swarm peers >/dev/null 2>&1 \ + && myPlayerApi=$(cat "$(myPlayerPath)"/.ipfs/api) \ + && echo "$myPlayerApi" +} + +myPlayerBrowser() { + myPlayerBrowser=$(xdg-settings get default-web-browser | cut -d '.' -f 1 | cut -d '-' -f 1) + [ -n "$myPlayerBrowser" ] && echo "$myPlayerBrowser" +} + +myPlayerFeedKey() { + myPlayerFeedKey=$(ipfs --api "$(myPlayerApi)" key list -l | awk '$2 == "'"$(myPlayer)"'_feed" {print $1}') + [ -n "$myPlayerFeedKey" ] && echo "$myPlayerFeedKey" +} + +myPlayerG1Pub() { + myPlayerG1Pub=$(cat "$(myPlayerPath)"/.g1pub 2>/dev/null) + [ -n "$myPlayerG1Pub" ] && echo "$myPlayerG1Pub" +} + +myPlayerKey() { + myPlayerKey=$(ipfs --api "$(myPlayerApi)" key list -l | awk '$2 == "'"$(myPlayer)"'" {print $1}') + [ -n "$myPlayerKey" ] && echo "$myPlayerKey" +} + +myPlayerKeystore() { + myPlayerKeystore=$(cd "$(myPlayerPath)"/.ipfs/keystore && pwd -P) + [ -n "$myPlayerKeystore" ] && echo "$myPlayerKeystore" +} + +myPlayerNs() { + myPlayerNs=$(cat "$(myPlayerPath)"/.playerns 2>/dev/null) + [ -n "$myPlayerNs" ] && echo "$myPlayerNs" +} + +myPlayerPath() { + [ -n "$myPlayer" ] \ + && myPlayerPath=$(cd "$(myPath)"/"$(myPlayer)" && pwd -P) \ + && echo "$myPlayerPath" +} + +myPlayerPseudo() { + myPlayerPseudo=$(cat "$(myPlayerPath)"/.pseudo 2>/dev/null) + [ -n "$myPlayerPseudo" ] && echo "$myPseudo" } myTmpl() { @@ -113,7 +191,7 @@ myTs() { } MOATS="$(myTs)" -IPFSNODEID="$(ipfsNodeId)" +IPFSNODEID="$(myIpfsPeerId)" myIP="$(myIp)" isLAN="$(isLan)" myHOST="astroport.$(myDomainName)" \