docker, docker-compose, bash
This commit is contained in:
102
install.sh
Normal file
102
install.sh
Normal file
@@ -0,0 +1,102 @@
|
||||
#!/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
|
||||
else
|
||||
echo "BŁĄD: Skrypt wspiera jedynie Ubuntu 22.04 LTS"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
echo "BŁĄD: Skrypt wspiera jedynie Ubuntu 22.04 LTS"
|
||||
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 "----------------------------------------------"
|
||||
Reference in New Issue
Block a user