Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/nextcloudpi.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile32
-rwxr-xr-xbatch.sh12
-rw-r--r--docker/lamp.dockerfile27
-rw-r--r--docker/nextcloud.dockerfile20
-rw-r--r--docker/raspbian.dockerfile8
-rwxr-xr-xdocker/run-lamp.sh27
-rwxr-xr-xdocker/run-nc.sh77
-rwxr-xr-xdocker/run-ncdocker.sh7
-rwxr-xr-xetc/nextcloudpi-config.d/nc-nextcloud.sh49
-rwxr-xr-xinstall-nextcloud.sh2
-rw-r--r--lamp.sh (renamed from nextcloud_lamp.sh)55
-rw-r--r--nc-init.sh75
-rw-r--r--nextcloudpi.sh2
-rw-r--r--prepare_img.sh35
14 files changed, 335 insertions, 93 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 00000000..7d90bdba
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,32 @@
+# Batch-build docker container layers for nextcloudpi
+#
+# Copyleft 2017 by Ignacio Nunez Hernanz <nacho _a_t_ ownyourbits _d_o_t_ com>
+# GPL licensed (see end of file) * Use at your own risk!
+#
+
+
+nextcloud: lamp
+ docker build . -f docker/nextcloud.dockerfile -t ownyourbits/nextcloudpi:latest
+
+lamp: miniraspbian
+ docker build . -f docker/lamp.dockerfile -t ownyourbits/lamp-arm:latest
+
+miniraspbian:
+ docker build . -f docker/raspbian.dockerfile -t ownyourbits/miniraspbian:latest
+
+# License
+#
+# This script is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This script is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this script; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+# Boston, MA 02111-1307 USA
diff --git a/batch.sh b/batch.sh
index da17d404..63a7f7dd 100755
--- a/batch.sh
+++ b/batch.sh
@@ -12,13 +12,17 @@
source etc/library.sh # initializes $IMGNAME
IP=$1 # First argument is the QEMU Raspbian IP address
-NC_SCRIPT=etc/nextcloudpi-config.d/nc-nextcloud.sh
+NC_INSTALL=etc/nextcloudpi-config.d/nc-nextcloud.sh
+NC_CONFIG=etc/nc-init.sh
IMGBASE="NextCloudPi_$( date "+%m-%d-%y" )_base.img"
-NO_CONFIG=1 NO_HALT_STEP=1 ./install-nextcloud.sh $IP $IMGBASE
-NO_CONFIG=1 ./installer.sh $NC_SCRIPT $IP $( ls -1t *.img | head -1 )
-NO_CONFIG=1 ./installer.sh nextcloudpi.sh $IP $( ls -1t *.img | head -1 )
+export NO_CONFIG=1 # skip interactive configuration
+
+NO_HALT_STEP=1 ./install-nextcloud.sh $IP $IMGBASE
+ ./installer.sh $NC_INSTALL $IP $( ls -1t *.img | head -1 )
+ ./installer.sh $NC_CONFIG $IP $( ls -1t *.img | head -1 )
+ ./installer.sh nextcloudpi.sh $IP $( ls -1t *.img | head -1 )
IMGFILE=$( ls -1t *.img | head -1 )
IMGOUT=$( basename "$IMGFILE" _base_nc-nextcloud_nextcloudpi.img ).img
diff --git a/docker/lamp.dockerfile b/docker/lamp.dockerfile
new file mode 100644
index 00000000..051835cf
--- /dev/null
+++ b/docker/lamp.dockerfile
@@ -0,0 +1,27 @@
+# docker run -d -p 443:443 -p 80:80 -v ncdata:/data --name lamp ownyourbits/lamp
+# docker build . -f lamp.dockerfile -t ownyourbits/lamp-arm:latest
+
+FROM ownyourbits/miniraspbian
+
+MAINTAINER Ignacio Núñez Hernanz <nacho@ownyourbits.com>
+
+SHELL ["/bin/bash", "-c"]
+
+COPY etc/library.sh lamp.sh /usr/local/etc/
+
+# NOTE: move database to /data, which will be in a persistent volume
+RUN source /usr/local/etc/library.sh; set +x; install_script /usr/local/etc/lamp.sh; \
+ apt-get autoremove -y; apt-get clean; rm /var/lib/apt/lists/* -f; rm -rf /usr/share/man/*; rm -rf /usr/share/doc/*; \
+ mkdir -p /data/; \
+ mv /var/lib/mysql /data/database; \
+ sed -i "s|^datadir.*|datadir = /data/database|" /etc/mysql/mariadb.conf.d/50-server.cnf; \
+ rm /data/database/ib_logfile*; \
+ rm /var/cache/debconf/*-old; \
+ rm /var/log/alternatives.log /var/log/apt/* ; \
+ rm /usr/local/etc/{lamp.sh,library.sh}
+
+COPY docker/run-lamp.sh /usr/local/bin/
+
+ENTRYPOINT ["/usr/local/bin/run.sh"]
+
+EXPOSE 80 443
diff --git a/docker/nextcloud.dockerfile b/docker/nextcloud.dockerfile
new file mode 100644
index 00000000..49d7213e
--- /dev/null
+++ b/docker/nextcloud.dockerfile
@@ -0,0 +1,20 @@
+# docker run -d -p 443:443 -p 80:80 -v ncdata:/data --name nextcloudpi ownyourbits/nextcloudpi
+# docker build . -f nextcloud.dockerfile -t ownyourbits/nextcloudpi:latest
+
+FROM ownyourbits/lamp-arm
+
+MAINTAINER Ignacio Núñez Hernanz <nacho@ownyourbits.com>
+
+SHELL ["/bin/bash", "-c"]
+
+COPY etc/library.sh nc-init.sh etc/nextcloudpi-config.d/nc-nextcloud.sh /usr/local/etc/
+
+RUN apt-get update; apt-get install --no-install-recommends -y wget ca-certificates; \
+ source /usr/local/etc/library.sh; set +x; activate_script /usr/local/etc/nc-nextcloud.sh; \
+ apt-get purge -y wget ca-certificates libgnutls-deb0-28 libhogweed2 libicu52 libnettle4 libpsl0; \
+ apt-get autoremove -y; apt-get clean; rm /var/lib/apt/lists/* -f; rm -rf /usr/share/man/*; rm -rf /usr/share/doc/*; \
+ rm /var/log/apt/* ; \
+ rm /var/cache/debconf/*-old; \
+ rm /usr/local/etc/nc-nextcloud.sh
+
+COPY docker/run-nc.sh /usr/local/bin/run.sh
diff --git a/docker/raspbian.dockerfile b/docker/raspbian.dockerfile
new file mode 100644
index 00000000..b626bfdf
--- /dev/null
+++ b/docker/raspbian.dockerfile
@@ -0,0 +1,8 @@
+# docker build . -f Dockerfile.raspbian -t ownyourbits/raspbian:latest
+
+FROM ownyourbits/miniraspbian:raw
+
+MAINTAINER Ignacio Núñez Hernanz <nacho@ownyourbits.com>
+
+CMD /bin/bash
+
diff --git a/docker/run-lamp.sh b/docker/run-lamp.sh
new file mode 100755
index 00000000..885b616e
--- /dev/null
+++ b/docker/run-lamp.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+
+cleanup()
+{
+ apachectl graceful-stop
+ killall php-fpm7.0
+ mysqladmin -u root -pownyourbits shutdown
+ killall cron
+ echo "Cleanup complete"
+}
+
+trap cleanup SIGTERM
+
+echo "Starting PHP-fpm"
+php-fpm7.0 &
+
+echo "Starting Apache"
+/usr/sbin/apache2ctl start
+
+echo "Starting mariaDB"
+mysqld &
+
+echo "Starting cron"
+cron
+
+echo "Done"
+while true; do sleep 0.5; done # do nothing, just wait for trap from 'docker stop'
diff --git a/docker/run-nc.sh b/docker/run-nc.sh
new file mode 100755
index 00000000..013f5d86
--- /dev/null
+++ b/docker/run-nc.sh
@@ -0,0 +1,77 @@
+#!/bin/bash
+
+cleanup()
+{
+ apachectl graceful-stop
+ killall php-fpm7.0
+ mysqladmin -u root -pownyourbits shutdown
+ killall cron
+ echo "Cleanup complete"
+}
+
+trap cleanup SIGTERM
+
+echo "Starting PHP-fpm"
+php-fpm7.0 &
+
+echo "Starting mariaDB"
+mysqld &
+
+# WAIT FOR MARIADB
+while :; do
+ [[ -S /var/run/mysqld/mysqld.sock ]] && break
+ sleep 0.5
+done
+
+## FIRST RUN: initialize NextCloud
+
+test -d /data/app || {
+
+ echo "First run"
+
+ # INIT DATABASE AND NEXTCLOUD CONFIG
+ source /usr/local/etc/library.sh
+ install_script /usr/local/etc/nc-init.sh
+
+ # COPY DATADIR TO /data, WHICH WILL BE IN A PERSISTENT VOLUME
+ cd /var/www/nextcloud/
+ echo "Setting up persistent data dir..."
+ cp -ra /var/www/nextcloud/data /data/app
+ sudo -u www-data php occ config:system:set datadirectory --value=/data/app
+
+ # COPY CONFIG TO /data, WHICH WILL BE IN A PERSISTENT VOLUME
+ echo "Setting up persistent configuration..."
+ test -e /data/config || mv /var/www/nextcloud/config /data
+}
+
+# Use persistent configuration
+test -e /data/config && {
+ rm -rf /var/www/nextcloud/config
+ ln -s /data/config /var/www/nextcloud/config
+}
+
+cd /var/www/nextcloud/
+
+# Trusted Domain ( as an argument )
+[[ "$@" != "" ]] && {
+ IP=$( grep -oP '\d{1,3}(.\d{1,3}){3}' <<< "$1" ) # validate that the first argument is a valid IP
+ if [[ "$IP" != "" ]]; then
+ sudo -u www-data php occ config:system:set trusted_domains 1 --value=$IP
+ else
+ echo "First argument must be an IP address to include as a Trusted domain. Ignoring"
+ fi
+}
+
+# Trusted Domain ( local IP )
+IFACE=$( ip r | grep "default via" | awk '{ print $5 }' )
+IP=$( ip a | grep "global $IFACE" | grep -oP '\d{1,3}(.\d{1,3}){3}' | head -1 )
+sudo -u www-data php occ config:system:set trusted_domains 2 --value=$IP
+
+echo "Starting Apache"
+/usr/sbin/apache2ctl start
+
+echo "Starting cron"
+cron
+
+echo "Done"
+while true; do sleep 0.5; done # do nothing, just wait for trap from 'docker stop'
diff --git a/docker/run-ncdocker.sh b/docker/run-ncdocker.sh
new file mode 100755
index 00000000..d30f07c3
--- /dev/null
+++ b/docker/run-ncdocker.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+# Initial Trusted Domain
+IFACE=$( ip r | grep "default via" | awk '{ print $5 }' )
+IP=$( ip a | grep "global $IFACE" | grep -oP '\d{1,3}(.\d{1,3}){3}' | head -1 )
+
+docker run -d -p 443:443 -p 80:80 -v ncdata:/data --name nextcloudpi ownyourbits/nextcloudpi $IP
diff --git a/etc/nextcloudpi-config.d/nc-nextcloud.sh b/etc/nextcloudpi-config.d/nc-nextcloud.sh
index edb20815..5c747b83 100755
--- a/etc/nextcloudpi-config.d/nc-nextcloud.sh
+++ b/etc/nextcloudpi-config.d/nc-nextcloud.sh
@@ -16,15 +16,13 @@
#
VER_=12.0.0
-ADMINUSER_=admin
-DBADMIN_=ncadmin
-DBPASSWD_=ownyourbits
MAXFILESIZE_=2G
MEMORYLIMIT_=768M
MAXTRANSFERTIME_=3600
-OPCACHEDIR=/var/www/nextcloud/data/.opcache
DESCRIPTION="Install any NextCloud version"
+export DEBIAN_FRONTEND=noninteractive
+
show_info()
{
[ -d /var/www/nextcloud ] && \
@@ -44,29 +42,14 @@ install() { :; }
configure()
{
- service apache2 stop
-
- # RE-CREATE DATABASE TABLE (workaround to emulate DROP USER IF EXISTS ..;)
- sleep 40 # TODO wait for mysql to be up
- mysql -u root -p$DBPASSWD_ <<EOF
-DROP DATABASE IF EXISTS nextcloud;
-CREATE DATABASE nextcloud;
-GRANT USAGE ON *.* TO '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD_';
-DROP USER '$DBADMIN_'@'localhost';
-CREATE USER '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD_';
-GRANT ALL PRIVILEGES ON nextcloud.* TO $DBADMIN_@localhost;
-EXIT
-EOF
- [ $? -ne 0 ] && { echo -e "error configuring nextcloud database"; return 1; }
-
- # DOWNLOAD AND (OVER)WRITE NEXTCLOUD
+ ## DOWNLOAD AND (OVER)WRITE NEXTCLOUD
cd /var/www/
wget https://download.nextcloud.com/server/releases/nextcloud-$VER_.tar.bz2 -O nextcloud.tar.bz2
rm -rf nextcloud
tar -xvf nextcloud.tar.bz2
rm nextcloud.tar.bz2
- # CONFIGURE FILE PERMISSIONS
+ ## CONFIGURE FILE PERMISSIONS
local ocpath='/var/www/nextcloud'
local htuser='www-data'
local htgroup='www-data'
@@ -75,7 +58,6 @@ EOF
printf "Creating possible missing Directories\n"
mkdir -p $ocpath/data
mkdir -p $ocpath/updater
- mkdir -p $OPCACHEDIR
printf "chmod Files and Directories\n"
find ${ocpath}/ -type f -print0 | xargs -0 chmod 0640
@@ -89,7 +71,6 @@ EOF
chown -R ${htuser}:${htgroup} ${ocpath}/data/
chown -R ${htuser}:${htgroup} ${ocpath}/themes/
chown -R ${htuser}:${htgroup} ${ocpath}/updater/
- chown -R ${htuser}:${htgroup} $OPCACHEDIR
chmod +x ${ocpath}/occ
@@ -103,7 +84,7 @@ EOF
chown ${rootuser}:${htgroup} ${ocpath}/data/.htaccess
fi
- # CONFIGURE NEXTCLOUD
+ ## CONFIGURE NEXTCLOUD
cat > /etc/apache2/sites-available/000-default.conf <<'EOF'
<VirtualHost _default_:80>
DocumentRoot /var/www/nextcloud
@@ -115,16 +96,7 @@ cat > /etc/apache2/sites-available/000-default.conf <<'EOF'
</VirtualHost>
EOF
- cd /var/www/nextcloud/
-
- sudo -u www-data php occ maintenance:install --database \
- "mysql" --database-name "nextcloud" --database-user "$DBADMIN_" --database-pass \
- "$DBPASSWD_" --admin-user "$ADMINUSER_" --admin-pass "$DBPASSWD_"
-
- sudo -u www-data php occ background:cron
-
- sed -i '$s|^.*$| '\''memcache.local'\'' => '\''\\\\OC\\\\Memcache\\\\APCu'\'',\\n);|' /var/www/nextcloud/config/config.php
-
+ ## SET LIMITS
sed -i "s/post_max_size=.*/post_max_size=$MAXFILESIZE_/" /var/www/nextcloud/.user.ini
sed -i "s/upload_max_filesize=.*/upload_max_filesize=$MAXFILESIZE_/" /var/www/nextcloud/.user.ini
sed -i "s/memory_limit=.*/memory_limit=$MEMORYLIMIT_/" /var/www/nextcloud/.user.ini
@@ -133,17 +105,10 @@ EOF
cat >> /var/www/nextcloud/.user.ini <<< "max_execution_time=$MAXTRANSFERTIME_"
cat >> /var/www/nextcloud/.user.ini <<< "max_input_time=$MAXTRANSFERTIME_"
+ ## SET CRON
echo "*/15 * * * * php -f /var/www/nextcloud/cron.php" > /tmp/crontab_http
crontab -u www-data /tmp/crontab_http
rm /tmp/crontab_http
-
- # Initial Trusted Domain
- local IFACE=$( ip r | grep "default via" | awk '{ print $5 }' )
- local IP=$( ip a | grep "global $IFACE" | grep -oP '\d{1,3}(.\d{1,3}){3}' | head -1 )
- sudo -u www-data php occ config:system:set trusted_domains 1 --value=$IP
- cd -
-
- service apache2 start
}
cleanup()
diff --git a/install-nextcloud.sh b/install-nextcloud.sh
index 4a4436f2..00083529 100755
--- a/install-nextcloud.sh
+++ b/install-nextcloud.sh
@@ -20,7 +20,7 @@ IMGFILE=$2 # Second argument is the name for the output image
DOWNLOAD=1 # Download the latest image
EXTRACT=1 # Extract the image from zip, so start from 0
IMG=raspbian_lite_latest
-INSTALL_SCRIPT=nextcloud_lamp.sh
+INSTALL_SCRIPT=lamp.sh
source etc/library.sh # initializes $IMGNAME
diff --git a/nextcloud_lamp.sh b/lamp.sh
index 79b3aae7..d9797ef8 100644
--- a/nextcloud_lamp.sh
+++ b/lamp.sh
@@ -20,42 +20,14 @@
# More at https://ownyourbits.com/2017/02/13/nextcloud-ready-raspberry-pi-image/
#
-DBADMIN_=ncadmin
DBPASSWD_=ownyourbits
OPCACHEDIR=/var/www/nextcloud/data/.opcache
-STATE_FILE=/home/pi/.installation_state
-APTINSTALL="apt-get install -y --no-install-recommends"
+APTINSTALL="apt-get install -y --no-install-recommends"
+export DEBIAN_FRONTEND=noninteractive
install()
{
- test -f $STATE_FILE && STATE=$( cat $STATE_FILE 2>/dev/null )
- if [ "$STATE" == "" ]; then
-
- # RESIZE IMAGE
- ##########################################
-
- SECTOR=$( fdisk -l /dev/sda | grep Linux | awk '{ print $2 }' )
- echo -e "d\n2\nn\np\n2\n$SECTOR\n\nw\n" | fdisk /dev/sda || true
-
- echo 0 > $STATE_FILE
- nohup reboot &>/dev/null &
- elif [ "$STATE" == "0" ]; then
-
- # UPDATE EVERYTHING
- ##########################################
- resize2fs /dev/sda2
-
- apt-get update
- apt-get upgrade -y
- apt-get dist-upgrade -y
- $APTINSTALL rpi-update
- echo -e "y\n" | PRUNE_MODULES=1 rpi-update
-
- echo 1 > $STATE_FILE
- nohup reboot &>/dev/null &
- elif [ "$STATE" == "1" ]; then
-
# GET STRETCH SOURCES FOR HTTP2 AND PHP7
##########################################
@@ -70,14 +42,17 @@ EOF
# INSTALL FROM STRETCH
##########################################
+ $APTINSTALL apt-utils
+ $APTINSTALL cron
$APTINSTALL -t stretch apache2
- $APTINSTALL -t stretch php7.0 php7.0-curl php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache php7.0-mbstring php7.0-xml php7.0-zip
- $APTINSTALL php7.0-APC
- $APTINSTALL libxml2-dev php-zip php-dom php-xmlwriter php-xmlreader php-gd php-curl php-mbstring
+ $APTINSTALL -t stretch php7.0 php7.0-curl php7.0-gd php7.0-fpm php7.0-cli php7.0-opcache php7.0-mbstring php7.0-xml php7.0-zip php7.0-APC
+ mkdir -p /run/php
debconf-set-selections <<< "mariadb-server-5.5 mysql-server/root_password password $DBPASSWD_"
debconf-set-selections <<< "mariadb-server-5.5 mysql-server/root_password_again password $DBPASSWD_"
- $APTINSTALL mariadb-server php7.0-mysql
+ $APTINSTALL -t stretch mariadb-server php7.0-mysql
+ mkdir -p /run/mysqld
+ chown mysql /run/mysqld
# CONFIGURE APACHE AND PHP7
##########################################
@@ -126,6 +101,8 @@ opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
EOF
+ mkdir -p $OPCACHEDIR
+ chown -R www-data:www-data $OPCACHEDIR
a2enmod http2
a2enconf http2
@@ -165,28 +142,18 @@ EOF
</IfModule>
EOF
a2ensite nextcloud
-
- mysql -u root -p$DBPASSWD_ <<EOF
-CREATE DATABASE nextcloud;
-CREATE USER '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD_';
-GRANT ALL PRIVILEGES ON nextcloud.* TO $DBADMIN_@localhost;
-EXIT
-EOF
- fi
}
configure() { :; }
cleanup()
{
- [ "$STATE" != "1" ] && return
apt-get autoremove
apt-get clean
rm /var/lib/apt/lists/* -r
rm -f /home/pi/.bash_history
systemctl disable ssh
- rm $STATE_FILE
nohup halt &>/dev/null &
}
diff --git a/nc-init.sh b/nc-init.sh
new file mode 100644
index 00000000..67780b4d
--- /dev/null
+++ b/nc-init.sh
@@ -0,0 +1,75 @@
+#!/bin/bash
+
+# Init NextCloud database and perform initial configuration
+# Tested with 2017-03-02-raspbian-jessie-lite.img
+#
+# Copyleft 2017 by Ignacio Nunez Hernanz <nacho _a_t_ ownyourbits _d_o_t_ com>
+# GPL licensed (see end of file) * Use at your own risk!
+#
+# Usage:
+#
+# ./installer.sh nc-init.sh <IP> (<img>)
+#
+# See installer.sh instructions for details
+#
+# More at https://ownyourbits.com/2017/02/13/nextcloud-ready-raspberry-pi-image/
+#
+
+ADMINUSER_=admin
+DBADMIN_=ncadmin
+DBPASSWD_=ownyourbits
+
+install()
+{
+ # RE-CREATE DATABASE TABLE (workaround to emulate DROP USER IF EXISTS ..;)
+
+ echo "Setting up database..."
+
+ # wait for mariadb
+ while :; do
+ [[ -S /var/run/mysqld/mysqld.sock ]] && break
+ sleep 0.5
+ done
+
+ mysql -u root -p$DBPASSWD_ <<EOF
+DROP DATABASE IF EXISTS nextcloud;
+CREATE DATABASE nextcloud;
+GRANT USAGE ON *.* TO '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD_';
+DROP USER '$DBADMIN_'@'localhost';
+CREATE USER '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD_';
+GRANT ALL PRIVILEGES ON nextcloud.* TO $DBADMIN_@localhost;
+EXIT
+EOF
+
+ # INITIALIZE NEXTCLOUD
+
+ echo "Setting up Nextcloud..."
+
+ cd /var/www/nextcloud/
+ sudo -u www-data php occ maintenance:install --database \
+ "mysql" --database-name "nextcloud" --database-user "$DBADMIN_" --database-pass \
+ "$DBPASSWD_" --admin-user "$ADMINUSER_" --admin-pass "$DBPASSWD_"
+
+ sudo -u www-data php occ background:cron
+ sed -i '$s|^.*$| '\''memcache.local'\'' => '\''\\\\OC\\\\Memcache\\\\APCu'\'',\n);|' /var/www/nextcloud/config/config.php
+}
+
+configure(){ :; }
+cleanup() { :; }
+
+# License
+#
+# This script is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This script is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this script; if not, write to the
+# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
+# Boston, MA 02111-1307 USA
diff --git a/nextcloudpi.sh b/nextcloudpi.sh
index 999c2854..de0a3893 100644
--- a/nextcloudpi.sh
+++ b/nextcloudpi.sh
@@ -22,7 +22,6 @@ APTINSTALL="apt-get install -y --no-install-recommends"
install()
{
-
# NEXTCLOUDPI-CONFIG
##########################################
apt-get update
@@ -155,4 +154,3 @@ cleanup()
# along with this script; if not, write to the
# Free Software Foundation, Inc., 59 Temple Place, Suite 330,
# Boston, MA 02111-1307 USA
-
diff --git a/prepare_img.sh b/prepare_img.sh
new file mode 100644
index 00000000..468dfdd0
--- /dev/null
+++ b/prepare_img.sh
@@ -0,0 +1,35 @@
+#!/bin/bish
+
+# TODO
+
+STATE_FILE=/home/pi/.installation_state
+APTINSTALL="apt-get install -y --no-install-recommends"
+
+install()
+{
+ test -f $STATE_FILE && STATE=$( cat $STATE_FILE 2>/dev/null )
+ if [ "$STATE" == "" ]; then
+
+ # RESIZE IMAGE
+ ##########################################
+
+ SECTOR=$( fdisk -l /dev/sda | grep Linux | awk '{ print $2 }' )
+ echo -e "d\n2\nn\np\n2\n$SECTOR\n\nw\n" | fdisk /dev/sda || true
+
+ echo 0 > $STATE_FILE
+ nohup reboot &>/dev/null &
+ elif [ "$STATE" == "0" ]; then
+
+ # UPDATE EVERYTHING
+ ##########################################
+ resize2fs /dev/sda2
+
+ apt-get update
+ apt-get upgrade -y
+ apt-get dist-upgrade -y
+ $APTINSTALL rpi-update
+ echo -e "y\n" | PRUNE_MODULES=1 rpi-update
+
+ echo 1 > $STATE_FILE
+ nohup reboot &>/dev/null &
+ elif [ "$STATE" == "1" ]; then