{% extends "layout.twig" %} {% block body %}

Nextcloud AIO Beta v0.9.0

This is beta software and not production ready.

{% set isAnyRunning = false %} {% set isAnyRestarting = false %} {% set isWatchtowerRunning = false %} {% set isBackupContainerRunning = false %} {% set isRestoreRunning = false %} {% set isBackupOrRestoreRunning = false %} {% set isApacheStarting = false %} {% for container in containers %} {% if container.GetIdentifier() not in ['nextcloud-aio-domaincheck', 'nextcloud-aio-borgbackup', 'nextcloud-aio-watchtower'] and class(container.GetRunningState()) == 'AIO\\Container\\State\\RunningState' %} {% set isAnyRunning = true %} {% endif %} {% if container.GetIdentifier() not in ['nextcloud-aio-domaincheck', 'nextcloud-aio-borgbackup', 'nextcloud-aio-watchtower'] 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 %} {% if container.GetIdentifier() == 'nextcloud-aio-borgbackup' and class(container.GetRunningState()) == 'AIO\\Container\\State\\RunningState' %} {% set isBackupContainerRunning = 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 %} {% endfor %} {% if 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.

Reload ↻
{% else %} You are currently running the {{ current_channel }} channel. (Logs)

{% if isBackupContainerRunning == 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 %} Nextcloud AIO stands for Nextcloud All In One and provides easy deployment and maintenance with most features included in this one Nextcloud instance.

{% if borg_backup_host_location == '' and borg_restore_password == '' %}

New AIO instance

Please type in the domain that will be used for Nextcloud if you want to create a new instance:

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.

{% endif %}

Restore AIO instance from backup

You can alternatively restore an AIO instance from backup.

{% 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 password in order to make it work! Afterwards click on 'Test path and password' button to verify the settings!

{% 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 {% 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 may start with /mnt/, /media/ or /host_mnt/ or may be equal to /var/backups.

So e.g. /mnt/backup on Linux and macOS or /host_mnt/c/backup/directory on Windows. (This Windows example would be equivalent to 'C:\backup\directory' on the Windows host. So you need to translate the path that you want to use into the correct format.)

⚠ 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 %} {% if borg_backup_host_location != '' and borg_restore_password != '' %} {% if borg_backup_mode not in ['test', 'check'] or backup_exit_code != 0 %} Everything set! Click on the button below to test the path and password:


{% endif %} {% endif %} {% endif %} {% endif %} {% if isBackupContainerRunning == true and domain == "" %} Backup container is currently running.

Reload ↻

{% endif %} {% if domain != "" %} {% if isAnyRunning == true %} {% if isApacheStarting != true %}
Click here to reveal the initial Nextcloud credentials
Initial Nextcloud username: admin
Initial Nextcloud password: {{ nextcloud_password }}


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

{% if has_update_available == true %} {% if is_mastercontainer_update_available == false %} ⚠ Container updates are available. Click on 'Stop Containers' and 'Start Containers' to update them. You should consider creating a backup first.

{% 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 isBackupContainerRunning == 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 /mnt/, /media/ or /host_mnt/ or be equal to /var/backups.

So e.g. /mnt/backup on Linux and macOS or /host_mnt/c/backup/directory on Windows. (This Windows example would be equivalent to 'C:\backup\directory' on the Windows host. So you need to translate the path that you want to use into the correct format.) {% endif %} {% if borg_backup_host_location != "" %}

Backup and restore

{% if isBackupContainerRunning == false %} {% if backup_exit_code > 0 %} Last {{ borg_backup_mode }} failed! (Logs)

{% elseif backup_exit_code == 0 %} {% if borg_backup_mode == "backup" %} Last {{ borg_backup_mode }} successful on {{ last_backup_time }}! (Logs)

{% else %} Last {{ borg_backup_mode }} successful! (Logs)

{% endif %} {% endif %} {% endif %} {% if isBackupContainerRunning == false %} {% if has_backup_run_once == true %}
Click here to reveal all backup options
{% 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 loose 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.

{% endif %} {% endif %} {% if has_backup_run_once == false %}

{% else %}


{% endif %} {% else %} Backup container currently running. (
Logs)

Reload ↻
{% endif %} {% endif %} {% if isBackupContainerRunning == 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 isBackupContainerRunning == false %}

Optional addons

In this section, you can find optional addons.
You can enable or disaable them when your containers are stopped.

{% if is_clamav_enabled == true %}
{% else %}
{% endif %} {% if is_collabora_enabled == true %}
{% else %}
{% endif %} {% if is_talk_enabled == true %}

{% else %}

{% endif %} {% if is_onlyoffice_enabled == true %}
{% else %}
{% endif %}
{% if isAnyRunning == true or is_x64_platform == false %} {% endif %} {% if isAnyRunning == true %} {% endif %} {% endif %} {% endif %} {% endif %} {% if isApacheStarting == true or isBackupContainerRunning == true or isWatchtowerRunning == true %} {% else %} {% endif %}
{% endblock %}