#!/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