⚠ Open Issue : 🐛 [NextCloud] Mounted localdisk does not have write permissions (opened 2025-09-23) by @Patabugen
Home assistant add-on: Nextcloud
I maintain this and other Home Assistant add-ons in my free time: keeping up with upstream changes, HA changes, and testing on real hardware takes a lot of time (and some money). I use around 5-10 of my >110 addons so regularly I install test machines (and purchase some test services such as vpn) that I don't use myself to troubleshoot and improve the addons
If this add-on saves you time or makes your setup easier, I would be very grateful for your support!
Addon informations
Thanks to everyone having starred my repo! To star it click on the image below, then it will be on top right. Thanks!
About
Various tweaks and configuration options addition. Inital fork from version : https://github.com/haberda/hassio_addons This addon is based on the docker image from linuxserver.io.
Configuration
Webui can be found at <your-ip>:port.
Options
| Option | Type | Default | Description |
|---|---|---|---|
PGID |
int | 1000 |
Group ID for file permissions |
PUID |
int | 1000 |
User ID for file permissions |
TZ |
str | Timezone (e.g., Europe/London) |
|
additional_apps |
str | Additional APK packages to install (comma-separated) | |
trusted_domains |
str | Trusted domains for Nextcloud access | |
use_own_certs |
bool | false |
Use custom SSL certificates |
certfile |
str | fullchain.pem |
SSL certificate file (in /ssl/) |
keyfile |
str | privkey.pem |
SSL private key file (in /ssl/) |
OCR |
bool | false |
Enable Tesseract OCR capability |
OCRLANG |
str | OCR languages (e.g., fra,eng) |
|
Full_Text_Search |
bool | false |
Enable full-text search with Elasticsearch |
elasticsearch_server |
str | Elasticsearch server address (ip:port) | |
enable_thumbnails |
bool | true |
Enable thumbnail generation |
default_phone_region |
str | Default phone region (ISO 3166-1 alpha-2) | |
disable_updates |
bool | false |
Prevent automatic app updates |
env_memory_limit |
str | 512M |
PHP memory limit |
env_post_max_size |
str | 512M |
Maximum POST size |
env_upload_max_filesize |
str | 512M |
Maximum upload file size |
localdisks |
str | Local drives to mount (e.g., sda1,sdb1,MYNAS) |
|
networkdisks |
str | SMB shares to mount (e.g., //SERVER/SHARE) |
|
cifsusername |
str | SMB username for network shares | |
cifspassword |
str | SMB password for network shares | |
cifsdomain |
str | SMB domain for network shares | |
skip_permissions_check |
bool | false |
Skip file permissions checking |
Example Configuration
PGID: 1000
PUID: 1000
TZ: "Europe/London"
additional_apps: "vim,curl"
trusted_domains: "nextcloud.example.com,192.168.1.100"
use_own_certs: true
certfile: "fullchain.pem"
keyfile: "privkey.pem"
OCR: true
OCRLANG: "eng,fra,deu"
enable_thumbnails: true
env_memory_limit: "1024M"
localdisks: "sda1,sdb1"
networkdisks: "//192.168.1.100/nextcloud"
cifsusername: "nextcloud_user"
cifspassword: "password123"
Mounting Drives
This addon supports mounting both local drives and remote SMB shares:
- Local drives: See Mounting Local Drives in Addons
- Remote shares: See Mounting Remote Shares in Addons
Custom Scripts and Environment Variables
This addon supports custom scripts and environment variables through the addon_config mapping:
- Custom scripts: See Running Custom Scripts in Addons
- env_vars option: Use the add-on
env_varsoption to pass extra environment variables (uppercase or lowercase names). See https://github.com/alexbelgium/hassio-addons/wiki/Add-Environment-variables-to-your-Addon-2 for details.
Custom Script Example
Create /config/addons_autoscripts/nextcloud-ocr.sh for custom initialization:
#!/usr/bin/with-contenv bashio
# shellcheck shell=bash
# Custom script executed at addon start
# Runs only after initialization is done
mkdir -p /scripts
if [ ! -f /app/www/public/occ ]; then
cp /config/addons_autoscripts/"$(basename "${BASH_SOURCE}")" /scripts/ && exit 0
fi
echo "Scanning files"
sudo -u abc php /app/www/public/occ files:scan --all
echo "File scan completed!"
Change the temp folder to avoid bloating emmc on HA systems (thanks @senna1992)
See ; https://github.com/alexbelgium/hassio-addons/discussions/1370
Use mariadb as the main database (Thanks @amaciuc)
If you notice the following warning at your first webui running:
Performance warning
You chose SQLite as database.
SQLite should only be used for minimal and development instances. For production we recommend a different database backend.
If you use clients for file syncing, the use of SQLite is highly discouraged.
and you want to overcome this, follow the below steps:
-
- Install
mariadbadd-on, configure it with some random infos and start it. It is important to start it successfully in order to be seen bynextcloudin the network.
- Install
-
- Install
nextcloudadd-on (or restart it if you have already installed), watch the logs until you will notice the followingwarning:
WARNING: MariaDB addon was found! It can't be configured automatically due to the way Nextcloud works, but you can configure it manually when running the web UI for the first time using those values : Database user : service Database password : Eangohyuchae6aif7saich2nies8xaivaejaNgaev6gi3yohy8ha2aexaetei6oh Database name : nextcloud Host-name : core-mariadb:3306 - Install
-
- Go back at
mariadbadd-on, configure it with above credentials and restart it. Make sure the add-on is creating thenextclouddatabase.
- Go back at
-
- Go in the webui and fill all required info. Here you can view an example:
Installation
The installation of this add-on is pretty straightforward and not different in comparison to installing any other Hass.io add-on.
- Add my Hass.io add-ons repository to your Hass.io instance.
- Install this add-on.
- Click the
Savebutton to store your configuration. - Start the add-on.
- Check the logs of the add-on to see if everything went well.
- Go to the webui, where you will create your username, password, and database (if using mariadb, infos are in the log)
- Restart the addon, to apply any option that should be applied
HA integration
See this component : https://www.home-assistant.io/integrations/nextcloud/
continu

