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