Vorschau
/tutorial-nextcloud.md
# Tutorial — Nextcloud Installation on Raspberry Pi
Environment used for this guide:
- Hardware: Raspberry Pi 5
- Operating System: Ubuntu Server 25.10 (64-bit)
- Network: Local home network setup
- Services installed: Apache, MariaDB, PHP 8.2+, Nextcloud (latest stable)
## 1. Update the system
```bash
sudo apt update \&\& sudo apt upgrade -y
sudo apt install unzip curl wget -y
```
\---
## 2. Install Apache, MariaDB and PHP
```bash
sudo apt install apache2 mariadb-server libapache2-mod-php \\
php php-cli php-fpm php-mysql php-gd php-curl php-xml \\
php-mbstring php-zip php-intl php-bz2 php-imagick php-gmp -y
```
Enable services:
```bash
sudo systemctl enable apache2 mariadb
sudo systemctl start apache2 mariadb
```
\---
## 3. Secure MariaDB
```bash
sudo mariadb-secure-installation
```
\---
## 4. Create Nextcloud database
```bash
sudo mariadb
```
```sql
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4\_general\_ci;
CREATE USER 'nextclouduser'@'localhost'
IDENTIFIED BY 'STRONG\_PASSWORD';
GRANT ALL PRIVILEGES ON nextcloud.\* TO 'nextclouduser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
```
\---
## 5. Download Nextcloud
```bash
cd /var/www/html
sudo wget https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip
sudo chown -R www-data:www-data nextcloud
sudo chmod -R 750 nextcloud
```
\---
## 6. Configure Apache
```bash
sudo nano /etc/apache2/sites-available/nextcloud.conf
```
Paste:
```apache
<VirtualHost \*:80>
DocumentRoot /var/www/html/nextcloud
<Directory /var/www/html/nextcloud>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
</Directory>
ErrorLog ${APACHE\_LOG\_DIR}/nextcloud\_error.log
CustomLog ${APACHE\_LOG\_DIR}/nextcloud\_access.log combined
</VirtualHost>
```
Enable configuration:
```bash
sudo systemctl reload apache2
sudo a2ensite nextcloud.conf
sudo a2enmod rewrite headers env dir mime
systemctl restart apache2
```
\---
## 7. Enable Nextcloud Cron Job
```bash
sudo crontab -u www-data -e
```
Insert:
```bash
\*/5 \* \* \* \* php -f /var/www/html/nextcloud/cron.php
```
\---
## 8. Connect to Nextcloud
```bash
hostname -I
```
http://{IP/Hostname}/nextcloud/index.php
\---
## 9. Optional: Mount external USB storage
```bash
lsblk
sudo mkdir /mnt/usbdrive
sudo blkid
```
Edit fstab:
```bash
sudo nano /etc/fstab
```
Add:
```
UUID=XXXX /mnt/usbdrive ext4 defaults,noatime 0 2
```
Set permissions:
```bash
sudo chown -R www-data:www-data /mnt/usbdrive
sudo chmod -R 750 /mnt/usbdrive
```