nextcloud_url="https://download.nextcloud.com/server/releases/nextcloud-28.0.2.zip"
password="ksjdvjds234SDf"
sudo apt update -y
sudo apt install -y apache2 mariadb-server mariadb-client
#make sure your port is open (required on some VPS)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo apt install -y libapache2-mod-php php php-gd
sudo apt install -y php-mysql php-curl php-zip php-dom php-xml php-simplexml php-mbstring
sudo mysql -uroot -e "CREATE DATABASE nextclouddb;"
sudo mysql -uroot -e "GRANT ALL ON nextclouddb.* TO 'nextcloud_user'@'localhost' IDENTIFIED BY '$password';"
sudo mysql -uroot -e "FLUSH PRIVILEGES;"
cd /tmp
#
wget "$nextcloud_url"
cd /var/www/html
sudo unzip /tmp/nextcloud-*.zip
sudo chown -R www-data:www-data nextcloud
sudo chmod -R 755 nextcloud
#setup SSL with CERTBOT
sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache
#get ip address
ip="$(ip a|grep inet |grep enp|awk '{print $2}'|cut -d\/ -f1)"
echo "$ip"
echo "http://$ip/nextcloud"
#if you get module errors just reboot
sudo reboot
echo "nextclouddb"
echo "nextcloud_user"
echo "$password"
#tweaks
config="$(find /etc/php/ -name php.ini|grep apache|head -n1)"
sudo sed -i 's/memory_limit = 128M/memory_limit = 512M/g' "$config"
sudo sed -i 's/output_buffering = 4096/output_buffering = off/g' "$config"
sudo systemctl restart apache2
sudo vim /etc/apache2/apache2.conf
#change
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
#to
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
#APPS
nextcloud office & collab
sudo -u www-data php -d memory_limit=512M /var/www/html/nextcloud/occ app:install richdocumentscode