install.sh 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #!/usr/bin/env bash
  2. set -o errexit
  3. set -o nounset
  4. set -o pipefail
  5. echo "Installing runtipi..."
  6. ARCHITECTURE="$(uname -m)"
  7. # Not supported on 32 bits systems
  8. if [[ "$ARCHITECTURE" == "armv7"* ]] || [[ "$ARCHITECTURE" == "i686" ]] || [[ "$ARCHITECTURE" == "i386" ]]; then
  9. echo "runtipi is not supported on 32 bits systems"
  10. exit 1
  11. fi
  12. LATEST_VERSION=$(curl -s https://api.github.com/repos/meienberger/runtipi/releases/latest | grep tag_name | cut -d '"' -f4)
  13. ### --------------------------------
  14. ### CLI arguments
  15. ### --------------------------------
  16. UPDATE="false"
  17. while [ -n "${1-}" ]; do
  18. case "$1" in
  19. --update) UPDATE="true" ;;
  20. --)
  21. shift # The double dash makes them parameters
  22. break
  23. ;;
  24. *) echo "Option $1 not recognized" && exit 1 ;;
  25. esac
  26. shift
  27. done
  28. if [[ "${UPDATE}" == "false" ]]; then
  29. mkdir -p runtipi
  30. cd runtipi || exit
  31. fi
  32. curl --location https://api.github.com/repos/meienberger/runtipi/tarball/"${LATEST_VERSION}" -o runtipi.tar.gz
  33. mkdir runtipi-"${LATEST_VERSION}"
  34. tar -xzf runtipi.tar.gz -C runtipi-"${LATEST_VERSION}" --strip-components=1
  35. rm runtipi.tar.gz
  36. # copy from downloaded /scripts/*
  37. if [ -d "scripts" ]; then
  38. rm -rf scripts
  39. fi
  40. mkdir scripts
  41. cp -r runtipi-"${LATEST_VERSION}"/scripts/* ./scripts
  42. # copy from downloaded /templates/*
  43. if [ -d "templates" ]; then
  44. rm -rf templates
  45. fi
  46. mkdir templates
  47. cp -r runtipi-"${LATEST_VERSION}"/templates/* ./templates
  48. # copy from downloaded /traefik/*
  49. if [ -d "traefik" ]; then
  50. rm -rf traefik
  51. fi
  52. mkdir traefik
  53. cp -r runtipi-"${LATEST_VERSION}"/traefik/* ./traefik
  54. # copy from downloaded /docker-compose.yml
  55. if [ -f "docker-compose.yml" ]; then
  56. rm -f docker-compose.yml
  57. fi
  58. cp -r runtipi-"${LATEST_VERSION}"/docker-compose.yml .
  59. # copy from downloaded /package.json
  60. if [ -f "package.json" ]; then
  61. rm -f package.json
  62. fi
  63. cp -r runtipi-"${LATEST_VERSION}"/package.json .
  64. mkdir -p apps
  65. mkdir -p app-data
  66. mkdir -p state
  67. mkdir -p repos
  68. mkdir -p media/torrents
  69. mkdir -p media/torrents/watch
  70. mkdir -p media/torrents/completed
  71. mkdir -p media/torrents/incomplete
  72. mkdir -p media/data
  73. mkdir -p media/data/books
  74. mkdir -p media/data/movies
  75. mkdir -p media/data/music
  76. mkdir -p media/data/tv
  77. mkdir -p media/data/podcasts
  78. mkdir -p media/data/images
  79. ## remove downloaded folder
  80. rm -rf runtipi-"${LATEST_VERSION}"
  81. sudo ./scripts/start.sh