103 lines
2.4 KiB
Bash
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 "----------------------------------------------" |