Skip to content

Commit

Permalink
split building steps
Browse files Browse the repository at this point in the history
  • Loading branch information
nachoparker committed May 22, 2017
1 parent addd0a8 commit 1df92f9
Show file tree
Hide file tree
Showing 4 changed files with 156 additions and 71 deletions.
7 changes: 4 additions & 3 deletions batch.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,12 @@ IP=$1 # First argument is the QEMU Raspbian IP address

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 nextcloud.sh $IP $( ls -1t *.img | head -1 )
NO_CONFIG=1 NO_HALT_STEP=1 ./install-nextcloud.sh $IP $IMGBASE
NO_CONFIG=1 ./installer.sh nextcloudpi.sh $IP $( ls -1t *.img | head -1 )
NO_CONFIG=1 ./installer.sh nextcloud.sh $IP $( ls -1t *.img | head -1 )

IMGFILE=$( ls -1t *.img | head -1 )
IMGOUT=$( basename "$IMGFILE" _base_nextcloud.img ).img
IMGOUT=$( basename "$IMGFILE" _base ).img

pack_image "$IMGFILE" "$IMGOUT"
md5sum $( ls -1t *.img | head -1 )
Expand Down
2 changes: 1 addition & 1 deletion install-nextcloud.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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_base.sh
INSTALL_SCRIPT=nextcloud_lamp.sh

source etc/library.sh # initializes $IMGNAME

Expand Down
68 changes: 1 addition & 67 deletions nextcloud_base.sh → nextcloud_lamp.sh
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
#
# Usage:
#
# ./installer.sh nextcloud_base.sh <IP> (<img>)
# ./installer.sh nextcloud_lamp.sh <IP> (<img>)
#
# See installer.sh instructions for details
#
Expand Down Expand Up @@ -164,72 +164,6 @@ CREATE USER '$DBADMIN_'@'localhost' IDENTIFIED BY '$DBPASSWD_';
GRANT ALL PRIVILEGES ON nextcloud.* TO $DBADMIN_@localhost;
EXIT
EOF

# NEXTCLOUDPI-CONFIG
##########################################

$APTINSTALL dialog
mkdir -p $CONFDIR
sed -i '/Change User Password/i"0 NextCloudPi Configuration" "Configuration of NextCloudPi" \\\\' /usr/bin/raspi-config
sed -i '/1\\\\ \*) do_change_pass ;;/i0\\\\ *) nextcloudpi-config ;;' /usr/bin/raspi-config

# NEXTCLOUDPI MOTD
##########################################
mkdir /etc/update-motd.d
rm /etc/motd
ln -s /var/run/motd /etc/motd

cat > /etc/update-motd.d/10logo <<EOF
#!/bin/sh
echo
cat /usr/local/etc/ncp-ascii.txt
EOF

cat > /etc/update-motd.d/20updates <<'EOF'
#!/bin/bash
/usr/local/bin/ncp-check-updates
EOF
chmod a+x /etc/update-motd.d/*

# NEXTCLOUDPI UPDATES
##########################################
$APTINSTALL git

cat > /etc/cron.daily/ncp-check-version <<EOF
#!/bin/sh
/usr/local/bin/ncp-check-version
EOF
chmod a+x /etc/cron.daily/ncp-check-version


cat > /usr/local/bin/ncp-update <<'EOF'
#!/bin/bash
{
[ $(id -u) -ne 0 ] && { printf "Must be run as root. Try 'sudo $0'\n"; exit 1; }
ping -W 2 -w 1 -q github.com &>/dev/null || { echo "No internet connectivity"; exit 1; }
echo -e "Downloading updates"
rm -rf /tmp/ncp-update-tmp
git clone -q --depth 1 https://github.com/nachoparker/nextcloud-raspbian-generator.git /tmp/ncp-update-tmp || exit 1
cd /tmp/ncp-update-tmp
echo -e "Performing updates"
./update.sh
VER=$( git describe --always --tags )
echo $VER > /usr/local/etc/ncp-version
echo $VER > /var/run/.ncp-latest-version
cd /
rm -rf /tmp/ncp-update-tmp
echo -e "NextCloudPi updated to version \e[1m$VER\e[0m"
exit
}
EOF
chmod a+x /usr/local/bin/ncp-update

# update to latest version from github as part of the build process
/usr/local/bin/ncp-update
fi
}

Expand Down
150 changes: 150 additions & 0 deletions nextcloudpi.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,150 @@
#!/bin/bash

# NextcloudPi additions to Raspbian
# 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 nextcloudpi.sh <IP> (<img>)
#
# See installer.sh instructions for details
#
# More at https://ownyourbits.com/2017/02/13/nextcloud-ready-raspberry-pi-image/
#

DBADMIN_=ncadmin
DBPASSWD_=ownyourbits
OPCACHEDIR=/var/www/nextcloud/data/.opcache
CONFDIR=/usr/local/etc/nextcloudpi-config.d/
APTINSTALL="apt-get install -y --no-install-recommends"


install()
{

# NEXTCLOUDPI-CONFIG
##########################################
apt-get update
$APTINSTALL dialog
mkdir -p $CONFDIR
sed -i '/Change User Password/i"0 NextCloudPi Configuration" "Configuration of NextCloudPi" \\\\' /usr/bin/raspi-config
sed -i '/1\\\\ \*) do_change_pass ;;/i0\\\\ *) nextcloudpi-config ;;' /usr/bin/raspi-config

# NEXTCLOUDPI MOTD
##########################################
mkdir /etc/update-motd.d
rm /etc/motd
ln -s /var/run/motd /etc/motd

cat > /etc/update-motd.d/10logo <<EOF
#!/bin/sh
echo
cat /usr/local/etc/ncp-ascii.txt
EOF

cat > /etc/update-motd.d/20updates <<'EOF'
#!/bin/bash
/usr/local/bin/ncp-check-updates
EOF
chmod a+x /etc/update-motd.d/*

# NEXTCLOUDPI AUTO TRUSTED DOMAIN
##########################################
mkdir -p /usr/lib/systemd/system
cat > /usr/lib/systemd/system/nextcloud-domain.service <<'EOF'
[Unit]
Description=Register Current IP as Nextcloud trusted domain
Requires=network.target
After=mysql.service
[Service]
ExecStart=/bin/bash /usr/local/bin/nextcloud-domain.sh
[Install]
WantedBy=multi-user.target
EOF

cat > /usr/local/bin/nextcloud-domain.sh <<'EOF'
#!/bin/bash
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 )
cd /var/www/nextcloud
sudo -u www-data php occ config:system:set trusted_domains 1 --value=$IP
EOF
systemctl enable nextcloud-domain

# NEXTCLOUDPI UPDATES
##########################################
$APTINSTALL git

cat > /etc/cron.daily/ncp-check-version <<EOF
#!/bin/sh
/usr/local/bin/ncp-check-version
EOF
chmod a+x /etc/cron.daily/ncp-check-version


cat > /usr/local/bin/ncp-update <<'EOF'
#!/bin/bash
{
[ $(id -u) -ne 0 ] && { printf "Must be run as root. Try 'sudo $0'\n"; exit 1; }
ping -W 2 -w 1 -q github.com &>/dev/null || { echo "No internet connectivity"; exit 1; }
echo -e "Downloading updates"
rm -rf /tmp/ncp-update-tmp
git clone -q --depth 1 https://github.com/nachoparker/nextcloud-raspbian-generator.git /tmp/ncp-update-tmp || exit 1
cd /tmp/ncp-update-tmp
echo -e "Performing updates"
./update.sh
VER=$( git describe --always --tags )
echo $VER > /usr/local/etc/ncp-version
echo $VER > /var/run/.ncp-latest-version
cd /
rm -rf /tmp/ncp-update-tmp
echo -e "NextCloudPi updated to version \e[1m$VER\e[0m"
exit
}
EOF
chmod a+x /usr/local/bin/ncp-update

# update to latest version from github as part of the build process
/usr/local/bin/ncp-update
}

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
nohup halt &>/dev/null &
}

# 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

0 comments on commit 1df92f9

Please sign in to comment.