Nextcloud is a great way to store and share your files without requiring them to be pushed to a cloud-based service.
Installing Nextcloud
Installing Nextcloud is really straight forward with the Pantavisor command line utility, pvr. After you’ve downloaded pvr for your system, follow these steps to install your Nextcloud app.
Step 1 – Preparing the application
- Clone your device using
pvr clone https://pvr.pantahub.com/<your_userid>/<your_device>
Step 2 – Installation
Install the app using pvr as follows
pvr app install --from=nextcloud nextcloud
The above command will pull the docker image from and install it to your cloned directory. Once this is done you just need to post an update to your device as follows,
pvr add .
pvr commit
pvr post
Note: You should be one directory above the next cloud directory when executing the command above.
Step 3 – Configuring Network Traffic
By default the above nextcloud image runs an apache web server at port 80 inside the container. Since Pantavisor currently runs all containers in the same network namespace, if you’ve a webserver configured at port 80 already you’ll have to move it to another port.
You should now be able to configure nextcloud by pointing your browser to the device’s IP / Hostname.
Running the image on QEMU – X86_64
You can also use QEMU to run the x86_64 pantavisor image above. This is really nice when you want to test out the feature before deploying it to the live device.
Since nextcloud would probably consume much larger storage space than what is available on the x64 image. It’s better to have the image resized to a bit larger value to allow actual usage for testing out the image. We’ll do this in 2 steps
- Convert the raw x64 image generated to qcow2 format
qemu-img convert -O qcow2 x64-uefi-pv-4096MiB.img x64-uefi-pv-4096MiB.qcow2
- Resize the qcow2 format image to a larger value
qemu-img resize x64-uefi-pv-4096MiB.qcow2 +10G
The above example increase the size by 10G but you are free to use any appropriate value. Since the qcow2 format doesn’t actually occupy disk space unless written to it’s a faster way to increase the image size.
Configuring networking with QEMU – X86_64
To use the qcow2 image, allow some traffic to move across qemu and our host. This is achieved using the --hostfwd
option of QEMU as shown below
sudo qemu-system-x86\_64 -enable-kvm -bios /usr/share/qemu/ovmf-x86\_64-opensuse-code.bin -m 1G -hda out/x64-uefi/x64-uefi-pv-4096MiB.qcow2 -nographic -netdev user,id=n1,hostfwd=tcp::8022-:8022,hostfwd=tcp::80-:80,hostfwd=tcp::443-:443 -device e1000,netdev=n1
With the above command, we can forward traffic from host to QEMU at the following ports
Host Port | QEMU Port | Protocol | Description |
---|---|---|---|
8022 | 8022 | tcp | Inbound from host |
80 | 80 | tcp | Inbound from host |
443 | 443 | tcp | Inbound from host |
Note
Since we’re using the host ports {80, 443} which are privileged ports, we need to run the above command as a root user. If you’re using non-privileged ports for Host then you don’t need to run above command as root user.
The setup shown above doesn’t use HTTPS therefore you won’t be able to use it from the nextcloud app. To make it work with the nextcloud app we’ll have to setup a secure server which we’ll take a look in the next blog, Configuring NextCloud with Https Reverse Proxy in Pantavisor.
The following shows the setup screen when using QEMU

Final Thoughts
Check out the new Slack community and website for Pantavisor Linux at pantavisor.io. You’ll find new tutorials as well as an introduction to Pantabox our front-end for managing Pantavisor Linux.