This commit is contained in:
2024-10-28 07:54:50 +01:00
commit b2ceb31809
5 changed files with 184 additions and 0 deletions

BIN
.assets/banner.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

103
install.sh Normal file
View 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
View File

View 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
View 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