install.sh 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  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/usenet
  73. mkdir -p media/usenet/watch
  74. mkdir -p media/usenet/completed
  75. mkdir -p media/usenet/incomplete
  76. mkdir -p media/downloads
  77. mkdir -p media/downloads/watch
  78. mkdir -p media/downloads/completed
  79. mkdir -p media/downloads/incomplete
  80. mkdir -p media/data
  81. mkdir -p media/data/books
  82. mkdir -p media/data/comics
  83. mkdir -p media/data/movies
  84. mkdir -p media/data/music
  85. mkdir -p media/data/tv
  86. mkdir -p media/data/podcasts
  87. mkdir -p media/data/images
  88. mkdir -p media/data/roms
  89. ## remove downloaded folder
  90. rm -rf runtipi-"${LATEST_VERSION}"
  91. sudo ./scripts/start.sh