conf_server/install_nextcloud.sh

93 lines
3.9 KiB
Bash
Executable File

#!/bin/sh
. ./utils.sh
. ./myserver.conf
install_package_nextcloud()
{
pkg_add php-bz2-8.0.26 php-curl-8.0.26 php-gd-8.0.26 php-gmp-8.0.26 \
php-intl-8.0.26 php-pdo_pgsql-8.0.26 php-zip-8.0.26 \
pecl80-imagick-3.7.0p1 pecl80-redis-5.3.7p0 \
nextcloud-24.0.5
}
enable_nextlcoud_php_modules(){
#enable modules
ln -s /etc/php-8.0.sample/gd.ini /etc/php-8.0/gd.ini
ln -s /etc/php-8.0.sample/imagick.ini /etc/php-8.0/imagick.ini
ln -s /etc/php-8.0.sample/opcache.ini /etc/php-8.0/opcache.ini
ln -s /etc/php-8.0.sample/curl.ini /etc/php-8.0/curl.ini
ln -s /etc/php-8.0.sample/gmp.ini /etc/php-8.0/gmp.ini
ln -s /etc/php-8.0.sample/intl.ini /etc/php-8.0/intl.ini
ln -s /etc/php-8.0.sample/redis.ini /etc/php-8.0/redis.ini
ln -s /etc/php-8.0.sample/bz2.ini /etc/php-8.0/bz2.ini
ln -s /etc/php-8.0.sample/zip.ini /etc/php-8.0/zip.ini
ln -s /etc/php-8.0.sample/pdo_pgsql.ini /etc/php-8.0/pdo_pgsql.ini
restart_php_service
}
configure_nginx_service(){
cp default_configuration/nextcloud/nginx.conf.sample my_configuration/nextcloud/nginx.conf
sed -i "s/__nextcloud_domain__/$nextcloud_domain/g" my_configuration/nextcloud/nginx.conf
}
create_nextcloud_db(){
psql template1 postgres -c "CREATE USER $nextcloud_db_user WITH PASSWORD '$nextcloud_db_pass' CREATEDB ;"
psql template1 postgres -c "CREATE DATABASE $nextcloud_db_name TEMPLATE template1 ENCODING 'UTF8' ;"
psql template1 postgres -c "GRANT ALL PRIVILEGES ON DATABASE $nextcloud_db_name TO $nextcloud_db_user ;"
psql template1 postgres -c "GRANT ALL PRIVILEGES ON SCHEMA public TO $nextcloud_db_user ;"
}
install_configuration_files_nextcloud(){
cp my_configuration/nextcloud/nginx.conf /etc/nginx/sites-available/$nextcloud_domain
ln -s /etc/nginx/sites-available/$nextcloud_domain /etc/nginx/sites-enabled/$nextcloud_domain
}
check_services_for_nextlcoud()
{
check_webserver_service
check_redis_service
check_php_service
check_postgresql_service
}
install_nextcloud(){
cp -v my_configuration/nextcloud/custom.config.php /var/www/nextcloud/config/
cd /var/www/nextcloud
touch config/CAN_INSTALL
rm config/config.php
su -m www -c "./occ maintenance:install --database pgsql \
--database-name $nextcloud_db_name --database-host localhost --database-user $nextcloud_db_user\
--database-pass $nextcloud_db_pass --admin-user $nextcloud_admin --admin-pass $nextcloud_admin_password"
su -m www -c "./occ config:system:set datadirectory --value=/nextcloud/data"
su -m www -c "./occ config:system:set overwrite.cli.url --value=https://$nextcloud_domain"
su -m www -c "./occ config:system:set trusted_domains 0 --value=$nextcloud_domain"
su -m www -c "./occ config:system:set default_phone_region --value=fr"
su -m www -c "./occ config:system:set mail_from_address --value=nextcloud"
su -m www -c "./occ config:system:set mail_smtpmode --value=smtp"
su -m www -c "./occ config:system:set mail_sendmailmode --value=smtp"
su -m www -c "./occ config:system:set mail_domain --value=$DOMAIN"
su -m www -c "./occ config:system:set mail_smtphost --value=$DOMAIN"
su -m www -c "./occ config:system:set mail_smtpport --value=25"
su -m www -c "./occ config:system:set memcache.local --value='\\OC\\Memcache\\Redis'"
su -m www -c "./occ config:system:set memcache.locking --value='\\OC\\Memcache\\Redis'"
su -m www -c "./occ config:system:set redis host --value=127.0.0.1"
su -m www -c "./occ config:system:set redis port --value=6379"
echo '*/5 * * * * su -m www -c "/usr/local/bin/php-8.0 -f /var/www/nextcloud/cron.php"' >> \
/var/cron/tabs/root
}
mkdir my_configuration/nextcloud
check_services_for_nextlcoud
install_package_nextcloud
enable_nextlcoud_php_modules
configure_nginx_service
create_nextcloud_db
install_configuration_files_nextcloud
install_nextcloud
restart_webserver_service