commit 3a20caeac725f39ea3d4c5bf0064fd21c4a64d9d Author: Bram Prieshof Date: Fri Oct 2 14:21:35 2020 +0200 Intial Commit diff --git a/conf/account.conf b/conf/account.conf new file mode 100644 index 0000000..edb3b04 --- /dev/null +++ b/conf/account.conf @@ -0,0 +1,9 @@ +#LOG_FILE="/etc/acmesh/data/acme.sh.log" +#LOG_LEVEL=1 +AUTO_UPGRADE="1"' >> /etc/acmesh/data/account.conf +NOTIFY_LEVEL='1'' >> /etc/acmesh/data/account.conf +#NO_TIMESTAMP=1' >> /etc/acmesh/data/account.conf +LE_WORKING_DIR="/opt/acmesh"' >> /etc/acmesh/data/account.conf +LE_CONFIG_HOME="/etc/acmesh/data"' >> /etc/acmesh/data/account.conf +CERT_HOME='/etc/acmesh/certs' +USER_PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin' diff --git a/conf/acme.sh.env b/conf/acme.sh.env new file mode 100644 index 0000000..ff17239 --- /dev/null +++ b/conf/acme.sh.env @@ -0,0 +1,3 @@ +export LE_WORKING_DIR="/opt/acmesh" +export LE_CONFIG_HOME="/etc/acmesh/data" +alias acmesh="/opt/acmesh/acme.sh --config-home '/etc/acmesh/data'" diff --git a/install-AcmeSH.sh b/install-AcmeSH.sh new file mode 100644 index 0000000..0daa7d2 --- /dev/null +++ b/install-AcmeSH.sh @@ -0,0 +1,139 @@ +############################# +# SingleModuleInstaller # +############################# + + +##-----------------## +# Defining Vars # +##-----------------## + +#SMI specific Vars +SMI_config=no +SMI_ModuleName= + +#Enforcing Legacy Mode +APTMODE="apt" +OUTPUT='/dev/tty' +IMODE=l + +#PackageManager-config + +dist_ver=$(grep --color=never -Po "^VERSION_ID=\K.*" "/etc/os-release") +dist=$(grep --color=never -Po "^ID=\K.*" "/etc/os-release") + +if [[ "${dist}" == *"ubuntu"* ]] && [[ "${dist_ver}" == *"18.04"* ]]; then + echo "Ubuntu 18.04 Detected" + PKGM="$APTMODE" + PKGI="${PKGM} install -y --no-install-recommends" + PKGLIST="apt" + shortdist=ubu1804 +elif [[ "${dist}" == *"ubuntu"* ]] && [[ "${dist_ver}" == *"20.04"* ]]; then + echo "Ubuntu 20.04 Detected" + PKGM="$APTMODE" + PKGI="${PKGM} install -y --no-install-recommends" + PKGLIST="apt" + shortdist=ubu2004 +elif [[ "${dist}" == *"debian"* ]] && [[ "${dist_ver}" == *"10"* ]]; then + echo "Debian 10 Detected" + PKGM="$APTMODE" + PKGI="${PKGM} install -y --no-install-recommends" + PKGLIST="apt" + shortdist=deb10 +elif [[ "${dist}" == *"centos"* ]] && [[ "${dist_ver}" == *"8"* ]]; then + echo "Centos 8 Detected" + PKGM="dnf" + PKGI="${PKGM} install --setopt=install_weak_deps=False --best -y" + PKGLIST="dnf" + shortdist=cent8 +else + echo "This os in not supported" + exit +fi + +unset dist_ver dist APTMODE + + +#Repo Vars +repo=https://git.ictmaatwerk.com/VPS-scripts/AcmeSH +branch=main +branchtype=branch + +#SelfBuilding Vars +mtype=""$repo"/raw/"$branchtype"/"$branch"" + + +##---------------## +# Functions # +##---------------## + +msg () { +echo "$1" +} + +#Checking if Config var has been set +if [ $SMI_config = no ]; then +msg " Script is not configured" +exit +fi + + +##--------------------------## +# Installer-Requirements # +##--------------------------## + +msg " Starting installer" 8 78 +$PKGM update > $OUTPUT 2>&1 +$PKGI curl > $OUTPUT 2>&1 + + +##-------------------------## +# Generating APT list # +##-------------------------## +#General aptList +if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$mtype"/generic.pkg.list; then + curl "$mtype"/generic.pkg.list >>/tmp/pkg.list +fi +if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$mtype"/"$PKGLIST".pkg.list; then + curl "$mtype"/"$PKGLIST".pkg.list >>/tmp/pkg.list +fi + +##--------------------## +# Pre-Requirements # +##--------------------## + +msg " Preconfiguring" +curl --retry 7 --retry-delay 5 -s https://git.ictmaatwerk.com/VPS-scripts/General/raw/branch/Main/Setup-Repo.sh |repo=init osrel=$shortdist bash > $OUTPUT 2>&1 +$PKGM update +$PKGM upgrade -y + + +##-------------------## +# Pre-configuring # +##-------------------## + +if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$mtype"/preconf.sh; then + source <(curl --retry 7 --retry-delay 5 -s "$mtype"/preconf.sh) +fi + +##-------------## +# Installer # +##-------------## + +$PKGM update +sed -i 's/PHPver/'$phpver'/g' /tmp/pkg.list +cat /tmp/pkg.list | xargs $PKGI + + +##---------------## +# Configuring # +##---------------## + +if curl --retry 2 --retry-delay 1 --output /dev/null --silent --head --fail "$mtype"/conf.sh; then + source <(curl --retry 7 --retry-delay 5 -s "$mtype"/conf.sh) +fi + +##-------## +# end # +##-------## + +msg " Done!" diff --git a/preconf.sh b/preconf.sh new file mode 100644 index 0000000..ce78ee7 --- /dev/null +++ b/preconf.sh @@ -0,0 +1,22 @@ +###Fetch Config +mrepo=https://git.ictmaatwerk.com/VPS-scripts/AcmeSH +mbranch=main + +if [ -z ${email+x} ]; then echo 'Error $email is not set' ; fi + +mkdir -p /opt/acmesh /etc/acmesh/data /etc/acmesh/certs +curl -s https://codeload.github.com/acmesh-official/acme.sh/tar.gz/master -o /tmp/acmesh.tar.gz +tar -zxf /tmp/acmesh.tar.gz -C /opt/acmesh --strip-components=1 + +curl --retry 7 --retry-delay 5 -s "$mrepo"/raw/branch/"$mbranch"/conf/account.conf -o /etc/acmesh/data/account.conf +curl --retry 7 --retry-delay 5 -s "$mrepo"/raw/branch/"$mbranch"/conf/acme.sh.env -o /opt/acmesh/acme.sh.env +echo '. "/opt/acmesh/acme.sh.env"' >> ~/.bashrc +echo '42 0 * * * root "/opt/acmesh/acme.sh" --cron --home "/opt/acmesh/" --config-home "/etc/acmesh/data" > /dev/null' >> /etc/crontab + +openssl dhparam -out /etc/acmesh/certs/ssl-dhparams.pem 4096 +#openssl dhparam -out /etc/acmesh/certs/ssl-dhparams.pem 2048 #use for quick generation, only for testing + +/opt/acmesh/acme.sh --home "/opt/acmesh/" --config-home "/etc/acmesh/data" --upgrade +/opt/acmesh/acme.sh --config-home "/etc/acmesh/data" --register-account +/opt/acmesh/acme.sh --config-home "/etc/acmesh/data" --update-account --accountemail "$email" + diff --git a/readme.md b/readme.md new file mode 100644 index 0000000..93eb83c --- /dev/null +++ b/readme.md @@ -0,0 +1,2 @@ +# Acme.sh, alternative to certbot +