Nextcloud AIO v4.3.1
{# Add 2nd tab warning #} {% set isAnyRunning = false %} {% set isAnyRestarting = false %} {% set isWatchtowerRunning = false %} {% set isRestoreRunning = false %} {% set isBackupOrRestoreRunning = false %} {% set isApacheStarting = false %} {% if is_backup_container_running == true %} {% if borg_backup_mode == 'restore' %} {% set isRestoreRunning = true %} {% endif %} {% if borg_backup_mode == 'backup' or borg_backup_mode == 'restore' %} {% set isBackupOrRestoreRunning = true %} {% endif %} {% endif %} {% for container in containers %} {% if container.GetDisplayName() != '' and class(container.GetRunningState()) == 'AIO\\Container\\State\\RunningState' %} {% set isAnyRunning = true %} {% endif %} {% if container.GetDisplayName() != '' and class(container.GetRestartingState()) == 'AIO\\Container\\State\\RestartingState' %} {% set isAnyRestarting = true %} {% endif %} {% if container.GetIdentifier() == 'nextcloud-aio-watchtower' and class(container.GetRunningState()) == 'AIO\\Container\\State\\RunningState' %} {% set isWatchtowerRunning = true %} {% endif %} {% if container.GetIdentifier() == 'nextcloud-aio-apache' and class(container.GetStartingState()) == 'AIO\\Container\\State\\StartingState' %} {% set isApacheStarting = true %} {% endif %} {% endfor %} {% if is_daily_backup_running == true %} Daily backup currently running. (Logs){% if automatic_updates == true %} It will update your containers, the mastercontainer and on saturdays your Nextcloud apps if the backup is successful.
{% if is_mastercontainer_update_available == true %} Since the mastercontainer gets updated, it will restart the container which will make it unavailable for a moment. (Logs)
{% endif %} {% endif %} {% if has_update_available == false %} The whole process should not take more than a few minutes.
{% elseif automatic_updates == true %} The whole process can take a while because your containers get updated.
{% endif %} Reload ↻
{% elseif isWatchtowerRunning == true %} Mastercontainer update currently running. It will restart the mastercontainer soon which will make it unavailable for a moment. Please wait until that's done. (Logs)
Reload ↻
{% else %} {% if is_backup_container_running == false and domain == "" %} {% if is_mastercontainer_update_available == true %}
Mastercontainer update
⚠️ A mastercontainer update is available. Please click on the button below to update it. Afterwards, you will be able to proceed with the setup.{% else %} {% if borg_backup_host_location == '' and borg_restore_password == '' %} Nextcloud AIO stands for Nextcloud All In One and provides easy deployment and maintenance with most features included in this one Nextcloud instance.
New AIO instance
Please type in the domain that will be used for Nextcloud if you want to create a new instance:{% if skip_domain_validation == true %} Please note: The domain validation is disabled so any domain will be accepted here! So make sure that you do not make a typo here as you will not be able to change it afterwards!
{% endif %} {% if skip_domain_validation == false %} Make sure that this server is reachable on Port 443 and you've correctly set up the DNS config for the domain that you enter.
If you have a dynamic IP-address, you can use e.g. DDclient with a compatible domain provider for DNS updates.
Hint: If the domain validation fails but you are completely sure that you've configured everything correctly, you may skip the domain validation by following this documentation.
{% endif %}
Restore former AIO instance from backup
You can alternatively restore a former AIO instance from backup.{% endif %} {% if is_instance_restore_attempt == false %} {% if borg_backup_host_location != '' and borg_restore_password != '' %} {% if borg_backup_mode in ['test', 'check'] %} {% if backup_exit_code > 0 %} Last {{ borg_backup_mode }} failed! (Logs)
{% if borg_backup_mode == 'test' %} Please adjust the path and/or the password in order to make it work!
{% elseif borg_backup_mode == 'check' %} The backup archive seems to be corrupt. Please try to use a different intact backup archive or try to fix it by following this documentation
Reveal repair option
Below is the option to repair the integrity of your backup. Please note: Please only use this after you have read the documentation above! (It will run the command 'borg check --repair' for you.)
{% endif %} {% elseif backup_exit_code == 0 %} Last {{ borg_backup_mode }} successful! (Logs)
{% if borg_backup_mode == 'test' %} Feel free to check the integrity of the backup archive below before starting the restore process in order to make double-sure that the restore will work. This can take a long time though depending on the size of the backup archive and is thus not required.
{% endif %} Choose the backup that you want to restore and click on the button below to restore the selected backup. This will restore the whole AIO instance from backup. Please not that the current AIO password will be kept and the AIO password not restored from backup!
{% endif %} {% elseif borg_backup_mode == 'restore' %} {% if backup_exit_code > 0 %} Last restore failed! (Logs)
Somehow the restore failed which is unexpected! Please adjust the path and password, test it and try to restore again! {% endif %} {% endif %} {% endif %} {% if borg_backup_host_location == '' or borg_restore_password == '' or borg_backup_mode not in ['test', 'check', ''] or backup_exit_code > 0 %} Please enter the location of the backup archive on your host and the password of the backup archive below:
The folder path that you enter must start with / and must not end with /.
An example for Linux is /mnt/backup.
On Synology it could be /volume1/docker/nextcloud/backup.
For macOS it may be /var/backup.
On Windows it must be nextcloud_aio_backupdir. You need to create the 'nextcloud_aio_backupdir' volume beforehand by following this documentation: click here
⚠️ Please note that the backup archive must be located in a subfolder of the folder that you enter here and the subfolder which contains the archive must be named 'borg'. Otherwise will the backup container not find the backup archive!
{% endif %} {% else %} Everything set! Click on the button below to test the path and password:
{% endif %} {% endif %} {% endif %} {% if domain != "" and was_start_button_clicked == true %} {% if current_channel starts with 'latest' or current_channel starts with 'beta' or current_channel starts with 'develop' %} You are running the {{ current_channel }} channel. (Logs)
{% else %} No channel was found. This means that AIO is not able to update itself and its component and will also not be able to report about updates. Updates need to be done externally. {% endif %} {% endif %} {% if is_backup_container_running == true %} Backup container is currently running. (Logs)
Reload ↻
{% endif %} {% if domain != "" %} {% if isAnyRunning == true %} {% if isApacheStarting != true %} {% if borg_backup_host_location != '' %}
Click here to reveal the initial Nextcloud credentials
{% endif %} Initial Nextcloud username: admin
Initial Nextcloud password: {% if borg_backup_host_location != '' %} {# nextcloud_password needs to be duplicated due to a bug in Firefox. See https://github.com/nextcloud/all-in-one/issues/638. #} {{ nextcloud_password }}
{% else %} {{ nextcloud_password }}
{% endif %} Open your Nextcloud ↗
{% else %} {% if isAnyRestarting == false %} Containers are currently starting.
Reload ↻
{% else %} It seems like at least one container is currently restarting which means it is not able to start correctly.
To break out this endless loop, you can stop the containers below and investigate the issue by having a look at the container logs before starting them again.
{% endif %} {% endif %} {% endif %} {% if was_start_button_clicked == true %}
Containers
-
{# @var containers \AIO\Container\Container[] #}
{% for container in containers %}
{% if container.GetDisplayName() != '' %}
- {% if class(container.GetStartingState()) == 'AIO\\Container\\State\\StartingState' %} {{container.GetDisplayName()}} (Starting) {% elseif class(container.GetRunningState()) == 'AIO\\Container\\State\\RunningState' %} {{container.GetDisplayName()}} (Running) {% else %} {{container.GetDisplayName()}} (Stopped) {% endif %} {% endif %} {% endfor %}
{% endif %} {% else %} {% if is_mastercontainer_update_available == false %} Your containers are up-to-date.
{% endif %} {% endif %} {% endif %} {% if isAnyRunning == true %} {% if isApacheStarting != true %} {% if is_mastercontainer_update_available == true %} ⚠️ A mastercontainer update is available. Please click on the button below to stop your containers in order to be able to update the mastercontainer.
{% if current_channel starts with 'latest' %} You can find the changelog here
{% elseif current_channel starts with 'beta' %} You can find the changelog here
{% elseif current_channel starts with 'develop' %} You can find all changes here
{% endif %} {% endif %} {% endif %} {% else %} {% if isRestoreRunning == true %} Restore currently running. Cannot start the containers until that's done.
{% elseif has_update_available == true and isBackupOrRestoreRunning == true %} Restore or Backup currently running and container update available. Cannot start the containers until that's done.
{% else %} {% if was_start_button_clicked == false %} Clicking on the button below will download all docker containers and start them. This can take a lot of time depending on your internect connection. Since the overall size is a few GB, this will take around 5-10 min or more. So be aware and patient!
{% endif %} {% if is_mastercontainer_update_available == true %} ⚠️ A mastercontainer update is available. Please click on the button below to update it.
{% else %} {% if was_start_button_clicked == false or has_update_available == false %} {% else %} {% endif %} {% endif %} {% endif %} {% endif %} {% if was_start_button_clicked == true %} {% if is_backup_section_enabled == false %}
Backup and restore
The backup section is disabled via environmental variable.{% else %} {% if is_backup_container_running == false and borg_backup_host_location == "" and isApacheStarting != true %}
Backup and restore
Please type in the directory where backups will get created on the host system:The folder path that you enter must start with / and must not end with /.
An example for Linux is /mnt/backup.
On Synology it could be /volume1/docker/nextcloud/backup.
For macOS it may be /var/backup.
On Windows it must be nextcloud_aio_backupdir. You need to create the 'nextcloud_aio_backupdir' volume beforehand by following this documentation: click here
{% endif %} {% endif %} {% if is_backup_section_enabled == true %} {% if borg_backup_host_location != "" %} {% if is_backup_container_running == false %}
Backup and restore
{% if backup_exit_code > 0 %} Last {{ borg_backup_mode }} failed! (Logs){% if borg_backup_mode == "check" %} The backup check was not successful which might points towards a corrupt archive (look at the logs). If that should be the case, you can try to fix it by following this documentation
Reveal repair option
Below is the option to repair the integrity of your backup. Please note: Please only use this after you have read the documentation above! (It will run the command 'borg check --repair' for you.)
{% endif %} {% if has_backup_run_once == false %} You may change the backup path again since the initial backup was not successful. After submitting the new value, you need to click on 'Create Backup' for testing the new value.
{% endif %} {% elseif backup_exit_code == 0 %} {% if borg_backup_mode == "backup" %} Last {{ borg_backup_mode }} successful on {{ last_backup_time }} UTC! (Logs)
{% else %} Last {{ borg_backup_mode }} successful! (Logs)
{% endif %} {% endif %} {% endif %} {% if is_backup_container_running == false and isApacheStarting == false %} {% if has_backup_run_once == true %}
Click here to reveal all backup options (it also includes an option for automatic updates)
{% endif %}
Backup information
This is your encryption password for backups: {{ borgbackup_password }}Please save it at a safe place since you won't be able to restore from backup if you lose this password!
Backed up will get all important data of your Nextcloud AIO instance like the database, your files and configuration files of the mastercontainer and else.
The backup itself will use a tool that is called BorgBackup which is a well-known server backup tool that efficiently backs up your files and encrypts them on the fly.
Backups get created in the following directory on the host: {{ borg_backup_host_location }}/borg
Be aware that this solution does not back up files and folders that are mounted into Nextcloud using the external storage app. {% if isApacheStarting != true %}
Backup creation
Clicking on the button below will create a backup.{% if has_backup_run_once == true %}
Backup check
Click on the button below to perform a backup integrity check. This is an option that verifies that your backup is intact but it should't be needed in most situtations.Backup restore
Choose the backup that you want to restore and click on the button below to restore the selected backup. This will overwrite all your files with the state of the backup so you should consider creating a backup first. It also makes sense to run an integrity check before restoring your files but is not mandatory since it shouldn't be needed in most situations. Please note that this will not restore additionally chosen backup directories!Daily backup and automatic updates
{% if daily_backup_time == "" %} By entering a time below, you can enable daily backups. It will create them at the entered time in 24h format. E.g. 04:00 will create backups at 4 am UTC and 16:00 at 4 pm UTC.{% else %} Daily backups will be created at {{ daily_backup_time }} UTC which includes a notification about the result of the backup. {% if automatic_updates == true %} Also your containers, the mastercontainer and on saturdays your Nextcloud apps will be automatically updated. {% endif %} You can disable this option again by clicking on the button below.
{% endif %}
Back up additional directories and docker volumes of your host
Below, you can enter directories and docker volumes of your host that will backed up additionally into the same borg backup archive.Each line and entry needs to start with a slash or letter/digit. Allowed are only a-z, A-Z, 0-9, _, -, and /. If the entry begins with a letter/digit are slashes not supported. Two valid entries are /directory/on/the/host and my_custom_docker_volume. You need to make sure yourself that all given directories exist. Otherwise the backup container will fail starting!
Make sure to specify all storages that you want to back up separately since storages will not be mounted recursively. E.g. providing / as additional backup directory will only back up files and folders that are stored on the root partition and not on the EFI partition or any other. Excluded by the backup will be caches and a few other directories. You should make sure to stop all services before the backup can run correctly if you want to back up the root partition. For automating this see this documentation
Please note that the chosen directories/volumes will not be restored when you restore your instance, so this would need to be done manually.
{% if additional_backup_directories != "" %} This option is currently set. You can disable it again by clearing the field and submitting your changes.
{% endif %} {% endif %} {% endif %} {% if has_backup_run_once == false %}
{% else %}
{% endif %} {% endif %} {% endif %} {% endif %} {% if is_backup_container_running == false %} {% if isApacheStarting == false %}
AIO password change
You can change your AIO password below:The new password needs to be at least 24 characters long. Allowed characters are the latin characters a-z, A-Z, 0-9 and spaces.
{% endif %} {% endif %} {% endif %} {% if is_backup_container_running == false %}
Optional addons
In this section you can enable or disable optional addons.{% if isAnyRunning == true %} Please note: You can enable or disable them when your containers are stopped.
{% endif %} Minimal system requirements: When any optional addon is enabled, at least 2GB RAM, a dual-core CPU and 40GB system storage are required. When enabling ClamAV or Fulltextsearch, at least 3GB RAM are required. When enabling everything, at least 4GB RAM are required. Recommended are at least 1GB more RAM than the minimal requirement.
{% if isAnyRunning == true or is_x64_platform == false %} {% endif %} {% if isAnyRunning == true %} {% endif %} {% if is_collabora_enabled == true and isAnyRunning == false and was_start_button_clicked == true %}
Collabora dictionaries
{% if collabora_dictionaries == "" %} In order to get the correct dictionaries in Collabora, you may configure the dictionaries below:You need to make sure that the dictionaries that you enter are valid. An example is de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru.
{% else %} The dictionaries for Collabora are currently set to {{ collabora_dictionaries }}. You can reset them again by clicking on the button below.
{% endif %} {% endif %}
Timezone change
{% if isAnyRunning == true %} {% if timezone != "" %} The timezone for Nextcloud is currently set to {{ timezone }}.{% endif %} Please note: You can change the timezone when your containers are stopped.
{% else %} {% if timezone == "" %} In order to get the correct time values for certain Nextcloud features, it makes sense to set the timezone for Nextcloud to the one that your users mainly use. Please note that this setting does not apply to the mastercontainer and any backup option.
You can configure the timezone for Nextcloud below:
You need to make sure that the timezone that you enter is valid. An example is Europe/Berlin. You can get valid values by looking at the 'TZ database name' column of this list: click here.
{% else %} The timezone for Nextcloud is currently set to {{ timezone }}. You can reset the timezone again by clicking on the button below.
{% endif %} {% endif %} {% endif %} {% endif %} {% endif %} {% if isApacheStarting == true or is_backup_container_running == true or isWatchtowerRunning == true or is_daily_backup_running == true %} {% else %} {% endif %}