NextCloudPi gets nextcloudpi-config

The latest release of NextCloudPi is out!


  • Based on the latest NextCloud 11.0.2
  • Based on the latest Raspbian 8 release ( 2017-03-02 )
  • nextcloudpi-config for easy setup
  • Kernel updated to 4.9.13
  • Fixed compatibility with the updater app

This release comes with a general polish and updating of components. The most noticeable change for users is an easier setup with nextcloudpi-config.

Relocate your data directory

You can now easily move your data directory to an external USB drive. Follow any guide on the internet to automount your drive on boot. You will have to modify /etc/fstab for this, just look it up online.

Then, use nextcloudpi-config  to update the data directory to somewhere inside your external mount. Easy!

Tune your limits

You can also configure the maximum upload size for NextCloudPi from nextcloudpi-config.

I recommend to leave the default value as is unless you really need to. A Raspberry Pi 3 only has 1GB RAM memory, and attempting to stretch memory limits will result in pagination, performance degradation and SD bitrotting. Use with care!

Disable HTTPS redirection

HTTPS is enforced by default, but in case you have a good reason to allow HTTP, you can enable it or disable it from here

Activate and configure your extras

If you are using the FULL version, all extras can be activated and configured from here.

Extras in the FULL version:

Thank you all for your feedback, more is to come

Update 03-31-2017: more features detailed in this post.



# NextCloudPi software configuration
# Tested with 2017-01-11-raspbian-jessie.img (and lite)
# 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:
#   sudo nextcloudpi-config


source $CONFDIR/library

function nextcloud-config()
  local DIALOG_OK=0
  local LIST=()
  for item in $CONFDIR/*.sh; do
    local DESC="$( grep "DESCRIPTION=" $item | sed 's|^DESCRIPTION=||' )"
    LIST+=( $( basename $item .sh ) "$DESC" )
  local script
  script=$( dialog --backtitle "NextCloudPi configuration" \
                   --menu "Select program to configure and activate:" 20 80 10 \
                   "${LIST[@]}" \
            3>&1 1>&2 2>&3 )

  [[ $? -ne $DIALOG_OK ]] || [[ "$script" == "" ]] && return 1

    cd $CONFDIR
    config $ || return 1                 # writes "$INSTALLATION_CODE"
    echo -e "$INSTALLATION_CODE" > $     # save configuration
    source ./$                           # load configuration
    set +x

if [ $(id -u) -ne 0 ]; then
  printf "Must be run as root. Try 'sudo $0'\n"
  exit 1


# 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
# 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


Author: nachoparker

Humbly sharing things that I find useful [ github dockerhub ]


    1. thank you!

      I am actually looking into it, but it will be on a second phase after Let’s encrypt and some more raspbian configuration taylored to NC is in place 🙂

      Almost done with the full automation of the build process so I can be faster with updates

      Thanks for the feedback, it is always good to see what people would find interesting

  1. I just wanted to say thank you for such great work. I took on the challenge of setting up NextCloud as my second Raspberry Pi project and it was frustrating to say the least. After messing around for about a week I landed on you site and BAM had it up and running in only an hour or two. THANK YOU!!

    I’m still trying to get SAMBA to work using the same external HDD as NC but I’m struggling with the permissions. When I mount the USB HDD without calling out the www-data uid/gid SMABA works fine but NC complains about the folder being accessible by others and requests permissions be set to 0770. Vice-versa when the HDD is mounted with the www-data uid/gid NC works great but SAMBA wont accept the login.

    I messed around a little bit trying to figure out a user /group combo that works for both since this is only my second project and I don’t really understand how its setup in linux. Any suggestion you might have would be fantastic and maybe there’s a simple configuration you could add into future releases. Having both accessible would be and ideal setup for me.

    Thanks again!!

    1. Thank you! I remember setting up my NFS with

      chown -R www-data:myuser datadir

      And I could access, read and write from both NC and my Linux box. I have not tried this with samba.

      I remember also at some point in the past changing php file that checks permissions because I was using a weird setup. I do not recommend this though for obvious reasons, but it did work for me.

  2. Hey,
    I’m using the last image; what about fail2ban? this seems already installed and just needs to activate the daemon, is it so? I’m asking because fail2ban 0.8.3 coming from debian repo is oudated and someway also deprecated as you cannot implement some jails protecting apache server side. Using the latest release from github instead would be more secure and bug less

    1. Hello,

      Yes, you are right about fail2ban. It is ready to be activated with a jail for SSH and another one for NC.

      Any highlights on the new ways a newer version can better protect Apache? Any suggestions for the config of fail2ban? I went for a pretty basic approach as you can see. I relay more on apache modsecurity for securing against attacks such as noscript, overflow and such but I would be interested to know your oppinion 🙂

      Thank you for the feedback

Leave a Reply

Your email address will not be published. Required fields are marked *