Files
stp2024/install.sh
2024-10-28 07:54:50 +01:00

103 lines
2.4 KiB
Bash

#!/bin/bash
install_path=$(pwd)
nextcloud_path=/opt/docker/nextcloud
npm_path=/opt/docker/npm
# Prepare OS for installation
echo
echo "----------------------------------------------"
echo " Ten skrypt przeznaczony jest dla systemów "
echo " Ubuntu 22.04 LTS"
echo "----------------------------------------------"
# Check requirements
echo
echo "----------------------------------------------"
echo " Sprawdzam wymagania systemowe... "
echo "----------------------------------------------"
check_system() {
if [ -f /etc/os-release ]; then
. /etc/os-release
if [ "$NAME" = "Ubuntu" ] && [ "$VERSION_ID" = "22.04" ]; then
: # Pusta instrukcja (no-op)
else
echo "BŁĄD: Skrypt wspiera jedynie Ubuntu 22.04 LTS"
exit 1
fi
else
echo "BŁĄD: Nie można znaleźć pliku /etc/os-release"
exit 1
fi
}
check_system
echo
echo "----------------------------------------------"
echo " Sprawdzam czy wymagane porty są dostępne... "
echo "----------------------------------------------"
check_port() {
nc -z localhost $1 >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "BŁĄD: Port $1 jest zajęty. Odblokuj port $1 i uruchom skrypt ponownie."
exit 1
fi
}
check_port 80
check_port 8080
check_port 8081
check_port 8082
check_port 443
check_port 81
echo
echo "----------------------------------------------"
echo " Wszystkie wymagane porty są dostępne! "
echo "----------------------------------------------"
# Prepare OS
sudo apt update
sudo apt upgrade -y
sudo apt install -y vim htop git
mkdir -p $nextcloud_path
mkdir -p $npm_path
# Prepare deployments
cd $nextcloud_path
generate_and_save_passwords() {
mysql_root_pass=$(openssl rand -base64 15)
echo "MYSQL_ROOT_PASSWORD=$mysql_root_pass" > .env
mysql_pass=$(openssl rand -base64 15)
echo "MYSQL_PASSWORD=$mysql_pass" > .env
}
generate_and_save_passwords
# Install docker & docker compose
curl "https://get.docker.com" | bash
sudo apt install docker-compose-plugin
sudo usermod -aG docker $(whoami)
# Deploy Nginx Proxy Manager
cd $npm_path
sudo docker compose up -d
# Deploy Nextcloud + MariaDB + Redis
cd $nextcloud_path
sudo docker compose up -d
echo
echo "----------------------------------------------"
echo " Sukces! Nextcloud został zainstalowany! "
echo "----------------------------------------------"