init
This commit is contained in:
BIN
.assets/banner.jpg
Normal file
BIN
.assets/banner.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
103
install.sh
Normal file
103
install.sh
Normal file
@@ -0,0 +1,103 @@
|
||||
#!/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 "----------------------------------------------"
|
||||
0
nextcloud/.env
Normal file
0
nextcloud/.env
Normal file
69
nextcloud/docker-compose.yml
Normal file
69
nextcloud/docker-compose.yml
Normal file
@@ -0,0 +1,69 @@
|
||||
version: '3.7'
|
||||
|
||||
services:
|
||||
nc:
|
||||
image: nextcloud:stable
|
||||
container_name: nextcloud
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 8082:80
|
||||
volumes:
|
||||
- nc_data:/var/www/html
|
||||
- apache2:/etc/apache2
|
||||
- ./php.ini:/usr/local/etc/php/conf.d/php-custom.ini
|
||||
networks:
|
||||
- redisnet
|
||||
- dbnet
|
||||
environment:
|
||||
- REDIS_HOST=redis
|
||||
- MYSQL_HOST=db
|
||||
- MYSQL_DATABASE=nextcloud
|
||||
- MYSQL_USER=nextcloud
|
||||
- MYSQL_PASSWORD=
|
||||
depends_on:
|
||||
- db
|
||||
- redis
|
||||
|
||||
redis:
|
||||
image: redis:alpine
|
||||
container_name: redis
|
||||
restart: always
|
||||
networks:
|
||||
- redisnet
|
||||
|
||||
db:
|
||||
image: mariadb:10.5.9
|
||||
container_name: mariadb
|
||||
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
|
||||
restart: always
|
||||
volumes:
|
||||
- db_data:/var/lib/mysql
|
||||
networks:
|
||||
- dbnet
|
||||
environment:
|
||||
- MYSQL_DATABASE=nextcloud
|
||||
- MYSQL_USER=nextcloud
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
|
||||
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
|
||||
- TZ=Europe/Warsaw
|
||||
|
||||
phpmyadmin:
|
||||
depends_on:
|
||||
- db
|
||||
container_name: phpmyadmin
|
||||
image: phpmyadmin/phpmyadmin:latest
|
||||
restart: always
|
||||
ports:
|
||||
- 8081:80
|
||||
environment:
|
||||
PMA_HOST: db
|
||||
networks:
|
||||
- dbnet
|
||||
|
||||
volumes:
|
||||
db_data:
|
||||
nc_data:
|
||||
apache2:
|
||||
networks:
|
||||
dbnet:
|
||||
redisnet:
|
||||
12
npm/docker-compose.yml
Normal file
12
npm/docker-compose.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
version: '3.8'
|
||||
services:
|
||||
app:
|
||||
image: 'jc21/nginx-proxy-manager:latest'
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- '80:80'
|
||||
- '81:81'
|
||||
- '443:443'
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- ./letsencrypt:/etc/letsencrypt
|
||||
Reference in New Issue
Block a user