start_ztncui.sh 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/bin/bash
  2. cd /opt/key-networks/ztncui
  3. if [ -z $MYADDR ]; then
  4. echo "Set Your IP Address to continue."
  5. echo "If you don't do that, I will automatically detect."
  6. MYEXTADDR=$(curl --connect-timeout 5 ip.sb)
  7. if [ -z $MYEXTADDR ]; then
  8. MYINTADDR=$(ifconfig eth0 | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -Eo '([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1')
  9. MYADDR=${MYINTADDR}
  10. else
  11. MYADDR=${MYEXTADDR}
  12. fi
  13. echo "YOUR IP: ${MYADDR}"
  14. fi
  15. MYDOMAIN=${MYDOMAIN:-ztncui.docker.test} # Used for minica
  16. ZTNCUI_PASSWD=${ZTNCUI_PASSWD:-password} # Used for argon2g
  17. MYADDR=${MYADDR}
  18. HTTP_ALL_INTERFACES=${HTTP_ALL_INTERFACES}
  19. HTTP_PORT=${HTTP_PORT:-3000}
  20. HTTPS_PORT=${HTTPS_PORT:-3443}
  21. while [ ! -f /var/lib/zerotier-one/authtoken.secret ]; do
  22. echo "ZT1 AuthToken is not found... Wait for ZT1 to start..."
  23. sleep 2
  24. done
  25. chown zerotier-one.zerotier-one /var/lib/zerotier-one/authtoken.secret
  26. chmod 640 /var/lib/zerotier-one/authtoken.secret
  27. cd /opt/key-networks/ztncui
  28. echo "MYADDR=$MYADDR" > /opt/key-networks/ztncui/.env
  29. echo "HTTP_PORT=$HTTP_PORT" >> /opt/key-networks/ztncui/.env
  30. if [ ! -z $HTTP_ALL_INTERFACES ]; then
  31. echo "HTTP_ALL_INTERFACES=$HTTP_ALL_INTERFACES" >> /opt/key-networks/ztncui/.env
  32. else
  33. [ ! -z $HTTPS_PORT ] && echo "HTTPS_PORT=$HTTPS_PORT" >> /opt/key-networks/ztncui/.env
  34. fi
  35. echo "ZTNCUI ENV CONFIGURATION: "
  36. cat ./.env
  37. mkdir -p etc/storage
  38. mkdir -p etc/tls
  39. mkdir -p etc/myfs # for planet files
  40. if [ ! -f etc/passwd ]; then
  41. echo "Default Password File Not Exists... Generating..."
  42. cd etc/passwd
  43. echo $ZTNCUI_PASSWD | /usr/bin/argon2g
  44. cd ../../
  45. fi
  46. if [ ! -f etc/tls/fullchain.pem ] || [ ! -f etc/tls/privkey.pem ]; then
  47. echo "Cannot detect TLS Certs, Generating..."
  48. cd etc/tls
  49. /usr/bin/minica -domains "$MYDOMAIN"
  50. cp -f "$MYDOMAIN/cert.pem" fullchain.pem
  51. cp -f "$MYDOMAIN/key.pem" privkey.pem
  52. cd ../../
  53. fi
  54. chown -R zerotier-one:zerotier-one /opt/key-networks/ztncui
  55. chmod 0755 /opt/key-networks/ztncui/ztncui
  56. chown root:root /opt/key-networks/ztncui/ztncui
  57. unset ZTNCUI_PASSWD
  58. gosu zerotier-one:zerotier-one /opt/key-networks/ztncui/ztncui