configure.sh 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. #!/usr/bin/env bash
  2. set -e # Exit immediately if a command exits with a non-zero status.
  3. ROOT_FOLDER="$(readlink -f $(dirname "${BASH_SOURCE[0]}")/..)"
  4. USERNAME="$(id -nu 1000)"
  5. echo
  6. echo "======================================"
  7. if [[ -f "${ROOT_FOLDER}/state/configured" ]]; then
  8. echo "=========== RECONFIGURING ============"
  9. else
  10. echo "============ CONFIGURING ============="
  11. fi
  12. echo "=============== TIPI ================="
  13. echo "======================================"
  14. echo
  15. # Enable passwordless sudo for $USERNAME
  16. if ! grep -q "${USERNAME} ALL=(ALL) NOPASSWD: ALL" /etc/sudoers; then
  17. echo "${USERNAME} ALL=(ALL) NOPASSWD: ALL" | sudo tee -a /etc/sudoers
  18. fi
  19. sudo apt-get update
  20. sudo apt-get install -y jq coreutils ca-certificates curl gnupg lsb-release
  21. LSB="$(lsb_release -is)"
  22. # Add docker gpg key (Debian)
  23. if [[ "${LSB}" == "Debian" ]]; then
  24. curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  25. fi
  26. # Add docker gpg key (Ubuntu)
  27. if [[ "${LSB}" == "Ubuntu" ]]; then
  28. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
  29. fi
  30. # Add deb repo for docker (Debian)
  31. if [[ "${LSB}" == "Debian" ]]; then
  32. echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  33. fi
  34. # Add deb repo for docker (Ubuntu)
  35. if [[ "${LSB}" == "Ubuntu" ]]; then
  36. echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  37. fi
  38. sudo apt-get update
  39. sudo apt-get install -y docker-ce docker-ce-cli containerd.io
  40. # Install docker compose if not here
  41. if ! command -v docker-compose > /dev/null; then
  42. sudo curl -L "https://github.com/docker/compose/releases/download/v2.3.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  43. sudo chmod +x /usr/local/bin/docker-compose
  44. fi
  45. # create docker group
  46. if ! getent group docker > /dev/null; then
  47. sudo groupadd docker
  48. fi
  49. sudo usermod -aG docker "${USERNAME}"
  50. # echo "Configuring permissions..."
  51. # echo
  52. # find "$ROOT_FOLDER" -path "$ROOT_FOLDER/app-data" -prune -o -exec chown 1000:1000 {} + || true
  53. # Create configured status
  54. touch "${ROOT_FOLDER}/state/configured"