start_ztncui.sh 2.3 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 "NODE_ENV=production" > /opt/key-networks/ztncui/.env
  29. echo "MYADDR=$MYADDR" >> /opt/key-networks/ztncui/.env
  30. echo "HTTP_PORT=$HTTP_PORT" >> /opt/key-networks/ztncui/.env
  31. if [ ! -z $HTTP_ALL_INTERFACES ]; then
  32. echo "HTTP_ALL_INTERFACES=$HTTP_ALL_INTERFACES" >> /opt/key-networks/ztncui/.env
  33. else
  34. [ ! -z $HTTPS_PORT ] && echo "HTTPS_PORT=$HTTPS_PORT" >> /opt/key-networks/ztncui/.env
  35. fi
  36. echo "ZTNCUI ENV CONFIGURATION: "
  37. cat /opt/key-networks/ztncui/.env
  38. mkdir -p /opt/key-networks/ztncui/etc/storage
  39. mkdir -p /opt/key-networks/ztncui/etc/tls
  40. mkdir -p /opt/key-networks/ztncui/etc/myfs # for planet files
  41. if [ ! -f /opt/key-networks/ztncui/etc/passwd ]; then
  42. echo "Default Password File Not Exists... Generating..."
  43. cd /opt/key-networks/ztncui/etc
  44. /usr/local/bin/argon2g
  45. cd ../
  46. fi
  47. if [ ! -f /opt/key-networks/ztncui/etc/tls/fullchain.pem ] || [ ! -f /opt/key-networks/ztncui/etc/tls/privkey.pem ]; then
  48. echo "Cannot detect TLS Certs, Generating..."
  49. cd /opt/key-networks/ztncui/etc/tls
  50. /usr/local/bin/minica -domains "$MYDOMAIN"
  51. cp -f "$MYDOMAIN/cert.pem" fullchain.pem
  52. cp -f "$MYDOMAIN/key.pem" privkey.pem
  53. cd ../../
  54. fi
  55. chown -R zerotier-one:zerotier-one /opt/key-networks/ztncui
  56. chmod 0755 /opt/key-networks/ztncui/ztncui
  57. unset ZTNCUI_PASSWD
  58. gosu zerotier-one:zerotier-one /opt/key-networks/ztncui/ztncui