Commit b17d5987 authored by Ivan Tyagov's avatar Ivan Tyagov

Add script to open to external interfaces Wendelin standalone.

parent 9e251285
#!/bin/bash
# script to open to public interfaces to wendelin standalone service.
# the way to use it is to wget it and then simply run it.
# it requires socat command
ZOPE_PIDS="$(slapos node | grep 'zope\|notebook' | awk '{print substr($0, 59, 5);}')"
port=20000
for pid in $ZOPE_PIDS;
do
ip_port="$(netstat -lpn | grep $pid |awk '{print substr($0, 21, 17);}')";
  • @Tyagov, thanks for implementing this. Some notes:

    it is better to grep for $pid/ (NOTE final slash) as just pid can coincide with some other e.g. port or something.

    tcp        0      0 0.0.0.0:8010            0.0.0.0:*               LISTEN      32549/psi           

    Also it is better to limit netstat to ipv4 and ipv6 (e.g. not include UNIX sockets and other things - --inet and --inet6 options)

Please register or sign in to reply
#echo $pid, $ip_port, $port
# socat
if [[ $ip_port == 2001* ]];
then
ipv6_ip=${ip_port:0:10}
ipv6_port=${ip_port:11:15}
socat TCP-LISTEN:$port,fork TCP:[$ipv6_ip]:$ipv6_port &
echo "Jupiter node at http://<YOUR_VM_IP>:${port}/"
else
socat TCP-LISTEN:$port,fork TCP:$ip_port &
echo "Zope node at http://<YOUR_VM_IP>:${port}/"
fi
# increase port base
port=$((port+1))
done
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment