I would like to introduce a new set of NextCloudPi dockers.

Finally, it seems that the upstream docker containers both for x86 and ARM are caching up in terms of reduced size. That is great news because it relieves the burden of creating and maintaining the minidebian and miniraspbian base images.

This means that we can finally rebuild the NextCloudPi container easily on top of Debian Stretch. The result of this is a set of containers for different architectures that can be generated from the NextCloudPi codebase.

We now have

Nextcloud docker container for ARM: ownyourbits/nextcloud-armhf

Nextcloud docker container for x86: ownyourbits/nextcloud-x86

NextCloudPi docker container for ARM: ownyourbits/nextcloudpi-armhf

NextCloudPi docker container for x86: ownyourbits/nextcloudpi-x86

You can find them in dockerhub

We will also have arm64 containers, as soon as I set up my new odroid HC1 to create the images.

Nextcloud containers

These contain only Nextcloud, Postfix and so on but no other software or management interface. You still have to do your certificates and networking yourself.

This used to be known as the nextcloudpi container before.

NextCloudPi containers

The difference between nextcloud and nextcloudpi is that the latter contains also ncp-web, letsencrypt, DDNS, package autogrades and many other NextCloudPi features.

The first goal of creating this container was to facilitate an easy x86 development environment for NextCloudPi. We have this today.

The second goal, looking into the future, is to provide a docker image that benefits from the NextCloudPi web panel and package of related services, such as Let’s Encrypt, DDNS, unattended upgrades or backups. Nextcloud needs a bunch of networking, system configuration and management, and our goal is to simplify this.

At this moment, the extra NextCloudPi layer contains a subset of the options available in the SD image. Some options, such as wifi management don’t make sense at all inside a container, and others still need some work to be adapted.

As usual, help, issue reports and sugestions are welcome.

Installation

See this other post in order to setup docker on your Raspberry Pi if you haven’t done it yet.

Docker is the only requisite, but it is also nice to install docker compose for easier management.

For instance, in Arch

sudo pacman -S docker docker-compose

Or in Debian

sudo apt-get install docker.io docker-compose

Usage

The usage has not changed. If we are not in localhost, we need to provide the IP address or domain in order to be included in the trusted domain list.

IP=192.168.1.130 docker run -d -p 4443:4443 -p 443:443 -p 80:80 -v ncdata:/data --name nextcloudpi ownyourbits/nextcloudpi-armhf $IP

The first time it will take some seconds to do the initial configuration, wait until you see ‘Init done’ in

docker logs -f nextcloudpi

Then, you can log into Nextcloud

https://<ip_or_url>

, or the web panel

https://<ip_or_url>:4443

If you want to have your persistent volume in a particular folder, you can pass an empty folder as an argument

IP=192.168.1.130 docker run -d -p 4443:4443 -p 443:443 -p 80:80 -v /media/USBdrive/ncdatadocker:/data --name nextcloudpi ownyourbits/nextcloudpi-armhf $IP

With docker-compose (optional)

First, clone the repo to get the compose files

git clone https://github.com/nextcloud/nextcloudpi.git cd nextcloudpi

Then, run one of them with compose up. Examples:

docker-compose up -d # x86 NCP docker-compose -f docker-compose-nc.yml up -d # x86 NC only IP="192.168.2.130" docker-compose -f docker-compose-armhf.yml up -d # ARM with trusted domain

Notes

For nc-forward-ports to work, you need to run with –net=”host”, or setting up the docker0 bridge address to that of your local network, or use the macvlan driver. All of those are advanced or reduce isolation, so I would recommend to do the port forwarding manually at this point.