#!/bin/bash set -euo pipefail printf 'Enter username for Nextcloud admin account:\n' read -r USERNAME printf '\nEnter password for Nextcloud admin account:' read -sr PASSWORD printf '\n\nEnter domain name that will point to this server:\n' read -r DOMAIN sudo \ apt \ update \ && \ sudo \ apt \ install \ --yes \ snapd \ caddy \ || \ exit \ 1 sudo \ systemctl \ enable \ --now \ snapd sudo \ snap \ install \ nextcloud sudo \ /snap/bin/nextcloud.manual-install \ ${USERNAME} \ ${PASSWORD} sudo \ /snap/bin/nextcloud.occ \ config:system:set \ trusted_domains \ 0 \ --value=${DOMAIN} sudo \ snap \ set \ nextcloud \ ports.http=8080 sudo \ snap \ set \ nextcloud \ ports.https=4443 cat << EOF | sudo tee /etc/caddy/Caddyfile &> /dev/null ${DOMAIN} { reverse_proxy localhost:8080 rewrite /.well-known/carddav /remote.php/dav rewrite /.well-known/caldav /remote.php/dav rewrite /.well-known/webfinger /public.php?service=webfinger } EOF sudo \ systemctl \ restart \ caddy