commit fdbcb08c4f7c8d8eff12c7db5430b761a37e5c76 Author: Modulos Date: Fri Apr 21 06:57:03 2017 +0200 [WIP] diff --git a/explorer/state b/explorer/state new file mode 100644 index 0000000..e69de29 diff --git a/files/nextcloud.nginx b/files/nextcloud.nginx new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/files/nextcloud.nginx @@ -0,0 +1 @@ + diff --git a/files/nextcloud.sh b/files/nextcloud.sh new file mode 100644 index 0000000..a9c4ae5 --- /dev/null +++ b/files/nextcloud.sh @@ -0,0 +1,38 @@ +#!/bin/bash +ocpath='/var/www/nextcloud' +htuser='www-data' +htgroup='www-data' +rootuser='root' + +printf "Creating possible missing Directories\n" +mkdir -p $ocpath/data +mkdir -p $ocpath/assets +mkdir -p $ocpath/updater + +printf "chmod Files and Directories\n" +find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640 +find ${ocpath}/ -type d -print0 | xargs -0 chmod 0750 +chmod 755 ${ocpath} + +printf "chown Directories\n" +chown -R ${rootuser}:${htgroup} ${ocpath}/ +chown -R ${htuser}:${htgroup} ${ocpath}/apps/ +chown -R ${htuser}:${htgroup} ${ocpath}/assets/ +chown -R ${htuser}:${htgroup} ${ocpath}/config/ +chown -R ${htuser}:${htgroup} ${ocpath}/data/ +chown -R ${htuser}:${htgroup} ${ocpath}/themes/ +chown -R ${htuser}:${htgroup} ${ocpath}/updater/ + +chmod +x ${ocpath}/occ + +printf "chmod/chown .htaccess\n" +if [ -f ${ocpath}/.htaccess ] + then + chmod 0644 ${ocpath}/.htaccess + chown ${rootuser}:${htgroup} ${ocpath}/.htaccess +fi +if [ -f ${ocpath}/data/.htaccess ] + then + chmod 0644 ${ocpath}/data/.htaccess + chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess +fi diff --git a/gencode-remote b/gencode-remote new file mode 100755 index 0000000..1dab9e9 --- /dev/null +++ b/gencode-remote @@ -0,0 +1,59 @@ +#!/bin/sh + +os=$(cat "$__global/explorer/os") +if [ ! "$os" = "debian" ] +then + echo "OS $os is currently not supported." >&2 + exit 1 +fi +os_version=$(cat "$__global/explorer/os_version") +case "$os_version" in + 8*) + : + ;; + *) + echo "Unsupported version $os_version of $os." >&2 + exit 1 + ;; +esac +nextcloud_dir="/$__object_id" +if [ ! "$nextcloud_dir" ] +then + echo "Missing nextcloud directory (object_id)." >&2 + exit 1 +fi +state=$(cat "$__object/parameter/state") +exists=$(cat "$__object/explorer/exists") + +case "$state" in + present) + [ "$exists" = "yes" ] && exit 0 + + nextcloud_url=$(cat "$__object/parameter/nextcloud-uri") + if [ ! "${nextcloud_url}" ] + then + echo "Missing nextcloud uri (parameter/nextcloud-uri)" >&2 + exit 1 + fi + nextcloud_version=$(cat "$__object/parameter/nextcloud-version") + if [ ! "${nextcloud_version}" ] + then + echo "Missing nextcloud version (parameter/nextcloud-version)" >&2 + exit 1 + fi + nextcloud_uri="${nextcloud_url}${nextcloud_version}.tar.bz2" + cat <&2 + exit 1 +esac diff --git a/manifest b/manifest new file mode 100644 index 0000000..f4f9671 --- /dev/null +++ b/manifest @@ -0,0 +1,87 @@ +#!/bin/sh + +os=$(cat "$__global/explorer/os") +if [ ! "$os" = "debian" ] +then + echo "OS $os is currently not supported." >&2 + exit 1 +fi +os_version=$(cat "$__global/explorer/os_version") +case "$os_version" in + 8*) + : + ;; + *) + echo "Unsupported version $os_version of $os." >&2 + exit 1 + ;; +esac + +nextcloud_dir="/$__object_id" +if [ ! "$nextcloud_dir" ] +then + echo "Missing nextcloud directory (object_id)." >&2 + exit 1 +fi +state=$(cat "$__object/parameter/state") +exists=$(cat "$__object/explorer/exists") +case "$state" in + present) + if [ "$exists" = "yes" ] + then + echo "${nextcloud_dir} already exists" >&2 + exit 0 + fi + + # Setup LAMP + __package apach2 --state=present + + # Get server name or ip from parameters + server_name=$(cat "$__object/parameter/server-name") + __file /etc/systemd/system/nextcloud.service --owner root \ + --group root \ + --mode 755 --source - << EOF + ServerName ${server_name} +EOF + + # Config Firewall + + # Setup mysql + __package mysql-server --state=present + mysql_password=$(cat "$__object/parameter/mysql-password") + __mysql_database "nextcloud" --name "nextcloud" --user "nextcloud" \ + --password "${mysql_password}" + + # Install PHP + + for package in php libapache2-mod-php php-mcrypt php-mysql + do __package $package --state=present + done + + # Install additional php packages + for package in php-bz2 php-curl php-gd php-imagick php-intl php-mbstring php-xml php-zip + do __package $package --state=present + done + + + require="__package/apache2" __file /etc/apache2/sites-available/nextcloud.conf + --owner root \ + --group root \ + --mode 755 --source "$__type/files/nextcloud.apache" \ + --state exists + + # Enable nextcloud site + __process a2ensite nextcloud + # Enable mod_rewrite (required by nextcloud) + __process a2enmod rewrite + + absent) + # TODO: + if [ "$exists" ] + then + fi + ;; + *) + echo "Unknown state: $state" >&2 + exit 1 +esac diff --git a/parameter/default/nextcloud-uri b/parameter/default/nextcloud-uri new file mode 100644 index 0000000..7f88dc8 --- /dev/null +++ b/parameter/default/nextcloud-uri @@ -0,0 +1 @@ +https://download.nextcloud.com/server/releases/ diff --git a/parameter/default/nextcloud-version b/parameter/default/nextcloud-version new file mode 100644 index 0000000..a1ea332 --- /dev/null +++ b/parameter/default/nextcloud-version @@ -0,0 +1 @@ +11.0.2 diff --git a/parameter/state b/parameter/state new file mode 100644 index 0000000..e69de29