(The translated README pages are not updated at this time)
This is the build code for the NextcloudPi open-source community project.
NextcloudPi is a ready to use image for Virtual Machines, Raspberry Pi, Odroid HC1, Rock64 and other boards. (⇒ Downloads)
This code also generates the NextcloudPi Docker image, LXD container & VM, there is an install script for the latest stable Debian based system as well.
Find the documentation at docs.nextcloudpi.com, the documentation is all written by volunteers.
- Raspberry Pi OS/Debian 11 (Bullseye)
- Apache, with HTTP2 enabled
- PHP 8.1
- Redis memory cache
- ncp-config TUI for easy setup ( RAM logs, USB drive and more )
- Automatic redirection to HTTPS
- APCu PHP cache
- PHP Zend OPcache enabled with file cache
- Cron jobs for Nextcloud
- Sane configuration defaults
- Full emoji support
- Postfix email
- Setup wizard
- NextcloudPi Web Panel
- Wi-Fi ready
- Ram logs
- Automatic security updates, activated by default.
- Let’s Encrypt for trusted HTTPS certificates.
- Fail2Ban protection against brute force attacks.
- UFW firewall
- Dynamic DNS support for no-ip.org
- Dynamic DNS support for freeDNS
- Dynamic DNS support for duckDNS
- Dynamic DNS support for spDYN
- Dynamic DNS support for Namecheap
- dnsmasq DNS server with DNS cache
- ModSecurity Web Application Firewall
- NFS ready to mount your files over LAN
- SAMBA ready to share your files with Windows/Mac/Linux
- USB automount
- Remote updates
- Automatic NCP updates
- Automatic Nextcloud updates
- Update notifications
- Nextcloud backup and restore
- Nextcloud online installation
- Format USB drive to BTRFS
- BTRFS snapshots
- Automatic BTRFS snapshots
- BTRFS snapshot auto sync
- scheduled rsync
- UPnP automatic port forwarding
- Security audits with Lynis and Debsecan
- SMART hard drive health monitoring
Extras can be activated and configured using the web interface at HTTPS port 4443
Or from the command line using
docker run --detach \ --publish 4443:4443 \ --publish 443:443 \ --publish 80:80 \ --volume ncdata:/data \ --name nextcloudpi \ ownyourbits/nextcloudpi $DOMAIN
$DOMAIN can also be the IP-address of the host device if you're accessing it via IP-address in your local home network.
Can also be run with the
--init flag for zombie process reaping
docker run --detach \ --init \ --publish 4443:4443 \ --publish 443:443 \ --publish 80:80 \ --volume ncdata:/data \ --name nextcloudpi \ ownyourbits/nextcloudpi $DOMAIN
It takes a moment to start completely, you can check this with
docker logs nextcloudpi until it says
# Imports the LXC image, replace the X's with version number lxc image import "NextcloudPi_LXD_vX.XX.X.tar.gz" --alias "nextcloudpi" # Launches a container from the image lxc launch "nextcloudpi" ncp # Starts the container you've launched from the imported image lxc start ncp
He has multiple helper scripts available for Proxmox on his website, do go have a look if you're using Proxmox. 👍
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/nextcloudpi-v5.sh)"
2GB RAM - 8GB Storage - 2vCPU
(Check his website if this has changed and we haven't had the time to update it here yet, it's located under: Media - Photo > NextcloudPi LXC)
Thenk you tteck ❤️ for making the helper script & letting us use this for Proxmox installations 🙏
You can find his GitHub repository with his helper scripts here.
docker(If you're building a Docker image)
lxd(If you're building an LXD/LXC container image)
git clone https://github.com/nextcloud/nextcloudpi.git cd nextcloudpi ./build/build-SD-rpi.sh
./build-SD-armbian.sh odroidxu4 # supported board code name
In order to build & push the Docker image to your repository, you'll also need to change the username, repo and tags in the script to match your credentials at Docker Hub.
git clone https://github.com/nextcloud/nextcloudpi.git cd nextcloudpi build/build-docker.sh x86 build/build-docker.sh armhf build/build-docker.sh arm64
NextcloudPi can be installed in any architecture running the latest Debian
Note: this assumes a clean Debian install, and there is no rollback method
This is executed as
root as indicated by the
# curl -sSL https://raw.githubusercontent.com/nextcloud/nextcloudpi/master/install.sh | bash
If you're not
root you can run it with
sudo like so
curl -sSL https://raw.githubusercontent.com/nextcloud/nextcloudpi/master/install.sh | sudo bash
(Use the Forum for Support questions please, there's a NCP tag available, it will bridge your post to the Matrix and Telegram chats)