mirror of
https://github.com/nextcloud/all-in-one.git
synced 2026-05-28 06:20:14 +00:00
reuse: add SPDX headers to app, community-containers, helm chart, and docs
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: szaimen <42591237+szaimen@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
a2f5895265
commit
efb037f48b
5
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
5
.github/ISSUE_TEMPLATE/Bug_report.md
vendored
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
---
|
||||
name: 🐛 Bug report - no questions and no support!
|
||||
about: Help us improving by reporting a bug - this category is not for questions and also not for support! Please use one of the options below for questions and support
|
||||
|
||||
5
.github/ISSUE_TEMPLATE/Feature_request.md
vendored
5
.github/ISSUE_TEMPLATE/Feature_request.md
vendored
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
---
|
||||
name: 📖 Existing feature/documentation enhancement
|
||||
about: Suggest an enhancement of an existing feature/documentation - for other types, please use the feature request option below
|
||||
|
||||
3
.github/ISSUE_TEMPLATE/config.yml
vendored
3
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: 📘 Documentation on Nextcloud AIO
|
||||
|
||||
3
.github/dependabot.yml
vendored
3
.github/dependabot.yml
vendored
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "github-actions"
|
||||
|
||||
5
.github/pull_request_template.md
vendored
5
.github/pull_request_template.md
vendored
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2026 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
<!--
|
||||
- 🚨 SECURITY INFO
|
||||
-
|
||||
|
||||
3
.github/release.yml
vendored
3
.github/release.yml
vendored
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
changelog:
|
||||
categories:
|
||||
- title: 🏕 New features and other improvements
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
# https://editorconfig.org
|
||||
|
||||
root = true
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
<?xml version="1.0"?>
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
<info xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="https://apps.nextcloud.com/schema/apps/info.xsd">
|
||||
<id>nextcloud-aio</id>
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
<?php
|
||||
// SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## How to develop the app?
|
||||
|
||||
Please note that in order to check if an app is already downloaded
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
<?php
|
||||
// SPDX-FileCopyrightText: 2021 Nextcloud GmbH <https://nextcloud.com>
|
||||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
declare(strict_types=1);
|
||||
/**
|
||||
* @copyright (c) 2021 Azul <azul@riseup.net>
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Borgbackup Viewer
|
||||
This container allows to view the local borg repository in a web session. It also allows you to restore files and folders from the backup by using desktop programs in a web browser.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Caddy with geoblocking
|
||||
This container bundles caddy and auto-configures it for you. It also covers [vaultwarden](https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden) by listening on `bw.$NC_DOMAIN`, if installed. It also covers [stalwart](https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart) by listening on `mail.$NC_DOMAIN`, if installed. It also covers [jellyfin](https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin) by listening on `media.$NC_DOMAIN`, if installed. It also covers [lldap](https://github.com/nextcloud/all-in-one/tree/main/community-containers/lldap) by listening on `ldap.$NC_DOMAIN`, if installed. It also covers [nocodb](https://github.com/nextcloud/all-in-one/tree/main/community-containers/nocodb) by listening on `tables.$NC_DOMAIN`, if installed. It also covers [seerr](https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyseerr) by listening on `requests.$NC_DOMAIN`, if installed. It also covers [nextcloud-exporter](https://github.com/nextcloud/all-in-one/tree/main/community-containers/nextcloud-exporter) by listening on `metrics.$NC_DOMAIN`, if installed. It also covers [LocalAI](https://github.com/nextcloud/all-in-one/tree/main/community-containers/local-ai) by listening on `ai.$NC_DOMAIN`, if installed.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## calcardbackup
|
||||
This container packages calcardbackup which is a tool that exports calendars and addressbooks from Nextcloud to .ics and .vcf files and saves them to a compressed file.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Container-Management
|
||||
This container allows to manage insides of other containers via a GUI inside a Web session by allowing to run docker commands from inside this container.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## DLNA server
|
||||
This container bundles DLNA server for your Nextcloud files to be accessible by the clients in your local network. Simply run the container and look for a new media server `nextcloud-aio` in your local network.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Facerecognition
|
||||
This container bundles the external model of facerecognition and auto-configures it for you.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Fail2ban
|
||||
This container bundles fail2ban and auto-configures it for you in order to block ip-addresses automatically. It also covers https://github.com/nextcloud/all-in-one/tree/main/community-containers/vaultwarden, https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyfin, and https://github.com/nextcloud/all-in-one/tree/main/community-containers/jellyseerr, if installed.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2026 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Glances
|
||||
This container starts Glances, a web-based info-board, and auto-configures it for you.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Hello World
|
||||
This container is a template for creating a community container.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2026 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Home Assistant
|
||||
This container bundles Home Assistant and auto-configures it for you.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Jellyfin
|
||||
This container bundles Jellyfin and auto-configures it for you.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Seerr
|
||||
This container bundles Seerr and auto-configures it for you.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## LanguageTool for Nextcloud Office
|
||||
This container bundles a LanguageTool for Nextcloud Office which adds spell checking functionality to Nextcloud Office.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## LibreTranslate
|
||||
This container bundles LibreTranslate and auto-configures it for you.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Light LDAP server
|
||||
This container bundles LLDAP server and auto-configures your Nextcloud instance for you.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Local AI
|
||||
This container bundles Local AI and auto-configures it for you. It support hardware acceleration with Vulkan.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## MakeMKV
|
||||
This container bundles MakeMKV and auto-configures it for you.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Memories
|
||||
This container bundles the hardware-transcoding container of memories and auto-configures it for you.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Minio
|
||||
This container bundles minio s3 storage and auto-configures it for you.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Prometheus Nextcloud Exporter
|
||||
|
||||
A Prometheus exporter that collects metrics from your Nextcloud instance for monitoring and alerting.
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2024 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
> [!CAUTION]
|
||||
> NocoDB is licensed under a non-free license.
|
||||
>
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Notifications
|
||||
This container allows other AIO community containers to send admin notifications to Nextcloud users.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## NPMplus
|
||||
This container contains a fork of the Nginx Proxy Manager, which is a WebUI for nginx. It will also automatically create a config and cert for AIO.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Pi-hole
|
||||
This container bundles pi-hole and auto-configures it for you.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Plex
|
||||
This container bundles Plex and auto-configures it for you.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
# Community containers
|
||||
This directory features containers that are built for AIO which allows to add additional functionality very easily.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Scrutiny
|
||||
This container bundles Scrutiny which is a frontend for SMART stats and auto-configures it for you.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## SMB-server
|
||||
This container bundles an SMB-server and allows to configure it via a graphical shell script.
|
||||
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
> [!CAUTION]
|
||||
> Be aware that the mail server is the most difficult service to deploy.
|
||||
>
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
## Vaultwarden
|
||||
This container bundles vaultwarden and auto-configures it for you.
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
services:
|
||||
nextcloud-aio-apache:
|
||||
depends_on:
|
||||
|
||||
@@ -1,54 +1,59 @@
|
||||
# Manual installation
|
||||
|
||||
You can run the containers that are build for AIO with docker-compose. This comes with a few downsides, that are discussed below.
|
||||
|
||||
### Advantages
|
||||
- You can run it without a container having access to the docker socket
|
||||
- You can modify all values on your own
|
||||
- You can run the containers with docker swarm
|
||||
- You can run this in environments where access to ghcr.io is not possible. See [this issue](https://github.com/nextcloud/all-in-one/discussions/5268).
|
||||
|
||||
### Disadvantages
|
||||
- You lose the AIO interface
|
||||
- You lose update notifications and automatic updates
|
||||
- You lose all AIO backup and restore features
|
||||
- You lose the built-in [Docker Socket Proxy container](https://github.com/nextcloud/docker-socket-proxy#readme) and [HaRP container](https://github.com/nextcloud/HaRP) (needed for [Nextcloud App API](https://github.com/nextcloud/app_api#nextcloud-appapi))
|
||||
- You lose all community containers: https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers
|
||||
- **You need to know what you are doing, especially when modifying the compose.yaml file**
|
||||
- For updating, you need to strictly follow the at the bottom described update routine
|
||||
- Probably more
|
||||
|
||||
## How to use this?
|
||||
First, install docker and docker-compose (v2) if not already done. Then simply run the following:
|
||||
```bash
|
||||
git clone https://github.com/nextcloud/all-in-one.git
|
||||
cd all-in-one/manual-install
|
||||
```
|
||||
Then copy the sample.conf to default environment file, e.g. `cp sample.conf .env`, open the new conf file, e.g. with `nano .env`, edit all values that are marked with `# TODO!`, close and save the file.<br>
|
||||
⚠️ **Warning**: Do not use the symbols `@` and `:` in your passwords. These symbols are used to build database connection strings. You will experience issues when using these symbols! Also please note that values inside the latest.yaml that are not exposed as variables are not officially supported to be changed. See for example [this report](https://github.com/nextcloud/all-in-one/issues/5612).
|
||||
|
||||
Now copy the provided yaml file to a compose.yaml file by running `cp latest.yml compose.yaml`.
|
||||
|
||||
Now you should be ready to go with `sudo docker compose up`.
|
||||
|
||||
## Docker profiles
|
||||
The default profile of `latest.yml` only provide the minimum necessary services: nextcloud, database, redis and apache. To get optional services collabora, talk, whiteboard, talk-recording, clamav, imaginary or fulltextsearch use additional arguments for each of them, for example `--profile collabora`.
|
||||
|
||||
For a complete all-in-one with collabora use `sudo docker compose --profile collabora --profile talk --profile talk-recording --profile clamav --profile imaginary --profile fulltextsearch --profile whiteboard up`.
|
||||
|
||||
## How to update?
|
||||
Since the AIO containers may change in the future, it is highly recommended to strictly follow the following procedure whenever you want to upgrade your containers.
|
||||
1. If your previous copy of `sample.conf` is named `my.conf`, run `mv -vn my.conf .env` in order to rename the file to `.env`.
|
||||
1. Run `sudo docker compose down` to stop all running containers
|
||||
1. Back up all important files and folders
|
||||
1. If your compose file is still named `docker-compose.yml` rename it to `compose.yaml` by running `mv -vn docker-compose.yml compose.yaml`
|
||||
1. Run `git pull` in order to get the updated yaml files from the repository. Now bring your `compose.yaml` file up-to-date with the updated one from the repository. You can use `diff compose.yaml latest.yml` for comparing. ⚠️ **Please note**: Starting with AIO v5.1.0, ipv6 networking will be enabled by default, so make sure to either enable it first by following steps 1 and 2 of https://github.com/nextcloud/all-in-one/blob/main/docker-ipv6-support.md and then proceed with the steps below or disable ipv6 networking by editing the compose.yaml file and removing ipv6 from the network.
|
||||
1. Also have a look at the `sample.conf` if any variable was added or renamed and add that to your conf file as well. Here may help the diff command as well.
|
||||
1. After the file update was successful, simply run `sudo docker compose pull` to pull the new images.
|
||||
1. At the end run `sudo docker compose up` in order to start and update the containers with the new configuration.
|
||||
|
||||
## FAQ
|
||||
### Backup and restore?
|
||||
If you leave `NEXTCLOUD_DATADIR` in your conf file at the default value of `nextcloud_aio_nextcloud_data` and don't modify the yaml file, all data will be stored inside docker volumes which are on Linux by default located here: `/var/lib/docker/volumes`. Simply backing up this location should be a valid backup solution. Then you can also easily restore in case something bad happens. However if you change `NEXTCLOUD_DATADIR` to a path like `/mnt/ncdata`, you obviously need to back up this location, too because the Nextcloud data will be stored there. The same applies to any change to the yaml file.
|
||||
|
||||
Obviously you also need to back up the conf file and the yaml file if you modified it.
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
# Manual installation
|
||||
|
||||
You can run the containers that are build for AIO with docker-compose. This comes with a few downsides, that are discussed below.
|
||||
|
||||
### Advantages
|
||||
- You can run it without a container having access to the docker socket
|
||||
- You can modify all values on your own
|
||||
- You can run the containers with docker swarm
|
||||
- You can run this in environments where access to ghcr.io is not possible. See [this issue](https://github.com/nextcloud/all-in-one/discussions/5268).
|
||||
|
||||
### Disadvantages
|
||||
- You lose the AIO interface
|
||||
- You lose update notifications and automatic updates
|
||||
- You lose all AIO backup and restore features
|
||||
- You lose the built-in [Docker Socket Proxy container](https://github.com/nextcloud/docker-socket-proxy#readme) and [HaRP container](https://github.com/nextcloud/HaRP) (needed for [Nextcloud App API](https://github.com/nextcloud/app_api#nextcloud-appapi))
|
||||
- You lose all community containers: https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers
|
||||
- **You need to know what you are doing, especially when modifying the compose.yaml file**
|
||||
- For updating, you need to strictly follow the at the bottom described update routine
|
||||
- Probably more
|
||||
|
||||
## How to use this?
|
||||
First, install docker and docker-compose (v2) if not already done. Then simply run the following:
|
||||
```bash
|
||||
git clone https://github.com/nextcloud/all-in-one.git
|
||||
cd all-in-one/manual-install
|
||||
```
|
||||
Then copy the sample.conf to default environment file, e.g. `cp sample.conf .env`, open the new conf file, e.g. with `nano .env`, edit all values that are marked with `# TODO!`, close and save the file.<br>
|
||||
⚠️ **Warning**: Do not use the symbols `@` and `:` in your passwords. These symbols are used to build database connection strings. You will experience issues when using these symbols! Also please note that values inside the latest.yaml that are not exposed as variables are not officially supported to be changed. See for example [this report](https://github.com/nextcloud/all-in-one/issues/5612).
|
||||
|
||||
Now copy the provided yaml file to a compose.yaml file by running `cp latest.yml compose.yaml`.
|
||||
|
||||
Now you should be ready to go with `sudo docker compose up`.
|
||||
|
||||
## Docker profiles
|
||||
The default profile of `latest.yml` only provide the minimum necessary services: nextcloud, database, redis and apache. To get optional services collabora, talk, whiteboard, talk-recording, clamav, imaginary or fulltextsearch use additional arguments for each of them, for example `--profile collabora`.
|
||||
|
||||
For a complete all-in-one with collabora use `sudo docker compose --profile collabora --profile talk --profile talk-recording --profile clamav --profile imaginary --profile fulltextsearch --profile whiteboard up`.
|
||||
|
||||
## How to update?
|
||||
Since the AIO containers may change in the future, it is highly recommended to strictly follow the following procedure whenever you want to upgrade your containers.
|
||||
1. If your previous copy of `sample.conf` is named `my.conf`, run `mv -vn my.conf .env` in order to rename the file to `.env`.
|
||||
1. Run `sudo docker compose down` to stop all running containers
|
||||
1. Back up all important files and folders
|
||||
1. If your compose file is still named `docker-compose.yml` rename it to `compose.yaml` by running `mv -vn docker-compose.yml compose.yaml`
|
||||
1. Run `git pull` in order to get the updated yaml files from the repository. Now bring your `compose.yaml` file up-to-date with the updated one from the repository. You can use `diff compose.yaml latest.yml` for comparing. ⚠️ **Please note**: Starting with AIO v5.1.0, ipv6 networking will be enabled by default, so make sure to either enable it first by following steps 1 and 2 of https://github.com/nextcloud/all-in-one/blob/main/docker-ipv6-support.md and then proceed with the steps below or disable ipv6 networking by editing the compose.yaml file and removing ipv6 from the network.
|
||||
1. Also have a look at the `sample.conf` if any variable was added or renamed and add that to your conf file as well. Here may help the diff command as well.
|
||||
1. After the file update was successful, simply run `sudo docker compose pull` to pull the new images.
|
||||
1. At the end run `sudo docker compose up` in order to start and update the containers with the new configuration.
|
||||
|
||||
## FAQ
|
||||
### Backup and restore?
|
||||
If you leave `NEXTCLOUD_DATADIR` in your conf file at the default value of `nextcloud_aio_nextcloud_data` and don't modify the yaml file, all data will be stored inside docker volumes which are on Linux by default located here: `/var/lib/docker/volumes`. Simply backing up this location should be a valid backup solution. Then you can also easily restore in case something bad happens. However if you change `NEXTCLOUD_DATADIR` to a path like `/mnt/ncdata`, you obviously need to back up this location, too because the Nextcloud data will be stored there. The same applies to any change to the yaml file.
|
||||
|
||||
Obviously you also need to back up the conf file and the yaml file if you modified it.
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
DATABASE_PASSWORD= # TODO! This needs to be a unique and good password!
|
||||
FULLTEXTSEARCH_PASSWORD= # TODO! This needs to be a unique and good password!
|
||||
IMAGINARY_SECRET= # TODO! This needs to be a unique and good password!
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
#!/bin/bash -ex
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
|
||||
type {jq,sudo} || { echo "Commands not found. Please install them"; exit 127; }
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
name: nextcloud-aio-helm-chart
|
||||
description: A generated Helm Chart for Nextcloud AIO from Skippbox Kompose
|
||||
version: 12.9.2
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
# Nextcloud AIO Helm-chart
|
||||
|
||||
> [!NOTE]
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.CLAMAV_ENABLED "yes" }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.CLAMAV_ENABLED "yes" }}
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.CLAMAV_ENABLED "yes" }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.COLLABORA_ENABLED "yes" }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.COLLABORA_ENABLED "yes" }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.FULLTEXTSEARCH_ENABLED "yes" }}
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.FULLTEXTSEARCH_ENABLED "yes" }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.FULLTEXTSEARCH_ENABLED "yes" }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.IMAGINARY_ENABLED "yes" }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.IMAGINARY_ENABLED "yes" }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if and (ne .Values.NAMESPACE "default") (ne .Values.NAMESPACE_DISABLED "yes") }}
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.NETWORK_POLICY_ENABLED "yes" }}
|
||||
# https://github.com/ahmetb/kubernetes-network-policy-recipes/blob/master/04-deny-traffic-from-other-namespaces.md
|
||||
kind: NetworkPolicy
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.ONLYOFFICE_ENABLED "yes" }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.ONLYOFFICE_ENABLED "yes" }}
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.ONLYOFFICE_ENABLED "yes" }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.TALK_ENABLED "yes" }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.TALK_RECORDING_ENABLED "yes" }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.TALK_RECORDING_ENABLED "yes" }}
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.TALK_RECORDING_ENABLED "yes" }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.TALK_ENABLED "yes" }}
|
||||
---
|
||||
apiVersion: v1
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.WHITEBOARD_ENABLED "yes" }}
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2023 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
{{- if eq .Values.WHITEBOARD_ENABLED "yes" }}
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
#!/bin/bash
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
|
||||
[ -z "$1" ] && { echo "Error: Docker tag is not specified. Usage: ./nextcloud-aio-helm-chart/update-helm.sh <Docker tag>"; exit 2; }
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
# SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
DATABASE_PASSWORD: # TODO! This needs to be a unique and good password!
|
||||
FULLTEXTSEARCH_PASSWORD: # TODO! This needs to be a unique and good password!
|
||||
IMAGINARY_SECRET: # TODO! This needs to be a unique and good password!
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
# Initial setup
|
||||
|
||||
- [ ] Verify that after starting the test container, you can access the AIO interface using https://internal.ip.address:8080
|
||||
- [ ] After clicking the self-signed-certificate warning away, it should show the setup page with an explanation what AIO is and the initial passphrase and a button that contains a link to the AIO login page
|
||||
- [ ] After copying the passphrase and clicking on this button, it should open a new tab with the login page
|
||||
- [ ] The login page should show an input field that allows to enter the AIO passphrase and a `Log in` button
|
||||
- [ ] After pasting the passphrase into the input field and clicking on this button, you should be logged in
|
||||
- [ ] You should now see the containers page and you should see three sections: one general section which explains what AIO is, one `New AIO instance` section and one section that allows to restore the whole AIO instance from backup.
|
||||
|
||||
You can now continue with [002-new-instance.md](./002-new-instance.md) or [010-restore-instance.md](./010-restore-instance.md).
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
# Initial setup
|
||||
|
||||
- [ ] Verify that after starting the test container, you can access the AIO interface using https://internal.ip.address:8080
|
||||
- [ ] After clicking the self-signed-certificate warning away, it should show the setup page with an explanation what AIO is and the initial passphrase and a button that contains a link to the AIO login page
|
||||
- [ ] After copying the passphrase and clicking on this button, it should open a new tab with the login page
|
||||
- [ ] The login page should show an input field that allows to enter the AIO passphrase and a `Log in` button
|
||||
- [ ] After pasting the passphrase into the input field and clicking on this button, you should be logged in
|
||||
- [ ] You should now see the containers page and you should see three sections: one general section which explains what AIO is, one `New AIO instance` section and one section that allows to restore the whole AIO instance from backup.
|
||||
|
||||
You can now continue with [002-new-instance.md](./002-new-instance.md) or [010-restore-instance.md](./010-restore-instance.md).
|
||||
|
||||
@@ -1,31 +1,36 @@
|
||||
# New instance
|
||||
|
||||
For the below to work, it is important that you have a domain that you point onto your testserver and open port 443 in your router/firewall.
|
||||
|
||||
- [ ] The `New AIO instance` section should show an input field that allows to enter a domain that will be used for Nextcloud later on as well as a short explanation regarding dynamic DNS
|
||||
- [ ] Now test a few examples in the input box:
|
||||
- [ ] Entering `djfslkklk` should report that DNS config is not set or the domain is not in a valid format
|
||||
- [ ] Entering `https://sdjflkjk.cpm` should report that this is not a valid domain
|
||||
- [ ] Entering `10.0.0.1` should report that ip-addresses are not supported
|
||||
- [ ] Entering `nextcloud.com` should report that the domain does not point to this server
|
||||
- [ ] Entering the domain that does point to your server e.g. `yourdomain.com` should finally redirect you to the next screen (if you did not configure your domain yet or did not open port 443, it should report that to you)
|
||||
- [ ] Now you should see a button `Start containers` and an explanation which points out that clicking on the button will start the containers and that this can take a long time.
|
||||
- [ ] Below that you should see a section `Optional addons` which shows a checkbox list with addons that can be enabled or disabled.
|
||||
- [ ] Collabora, Imaginary, Talk and Whiteboard should be enabled, the rest disabled
|
||||
- [ ] Unchecking/Checking any of these should insert a button that allows to save the set config
|
||||
- [ ] Checking OnlyOffice and Collabora at the same time should show a warning that this is not supported and should not saving the new config
|
||||
- [ ] Recommended is to uncheck all options now
|
||||
- [ ] Clicking on the save button should reload the page and activate the new config
|
||||
- [ ] Clickig on the `Start containers` button should finally reveal a big spinning wheel that should block all elements on the side of being clicked.
|
||||
- [ ] After waiting a few minutes, it should reload and show a new page
|
||||
- [ ] On top of the page should be shown which channel you are running
|
||||
- [ ] Below that, it should show that containers are currently starting
|
||||
- [ ] Below that it should show a section with Containers: Apache, Database, Nextcloud and Redis and that your containers are up-to-date
|
||||
- [ ] On the bottom should be the Optional addons section shown but with disabled checkboxes (not clickable)
|
||||
- [ ] A automatic reload every 5s should happen until all Containers are started (as long as this window is focused)
|
||||
- [ ] After waiting a bit longer it should instead of the advice that your containers are currently running show the initial Nextcloud credentials (username, password) and below that a button that allows to open the Nextcloud interface in a new tab
|
||||
- [ ] Clicking on that button should open the Nextcloud interface in a new tab and you should be able to log in using the provided credentials
|
||||
- [ ] Below the Containers section it should show a `Stop containers` button
|
||||
- [ ] Below the Containers section and above the Optional Addons section, you should see a Backup and restore section and an AIO password change section
|
||||
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
# New instance
|
||||
|
||||
For the below to work, it is important that you have a domain that you point onto your testserver and open port 443 in your router/firewall.
|
||||
|
||||
- [ ] The `New AIO instance` section should show an input field that allows to enter a domain that will be used for Nextcloud later on as well as a short explanation regarding dynamic DNS
|
||||
- [ ] Now test a few examples in the input box:
|
||||
- [ ] Entering `djfslkklk` should report that DNS config is not set or the domain is not in a valid format
|
||||
- [ ] Entering `https://sdjflkjk.cpm` should report that this is not a valid domain
|
||||
- [ ] Entering `10.0.0.1` should report that ip-addresses are not supported
|
||||
- [ ] Entering `nextcloud.com` should report that the domain does not point to this server
|
||||
- [ ] Entering the domain that does point to your server e.g. `yourdomain.com` should finally redirect you to the next screen (if you did not configure your domain yet or did not open port 443, it should report that to you)
|
||||
- [ ] Now you should see a button `Start containers` and an explanation which points out that clicking on the button will start the containers and that this can take a long time.
|
||||
- [ ] Below that you should see a section `Optional addons` which shows a checkbox list with addons that can be enabled or disabled.
|
||||
- [ ] Collabora, Imaginary, Talk and Whiteboard should be enabled, the rest disabled
|
||||
- [ ] Unchecking/Checking any of these should insert a button that allows to save the set config
|
||||
- [ ] Checking OnlyOffice and Collabora at the same time should show a warning that this is not supported and should not saving the new config
|
||||
- [ ] Recommended is to uncheck all options now
|
||||
- [ ] Clicking on the save button should reload the page and activate the new config
|
||||
- [ ] Clickig on the `Start containers` button should finally reveal a big spinning wheel that should block all elements on the side of being clicked.
|
||||
- [ ] After waiting a few minutes, it should reload and show a new page
|
||||
- [ ] On top of the page should be shown which channel you are running
|
||||
- [ ] Below that, it should show that containers are currently starting
|
||||
- [ ] Below that it should show a section with Containers: Apache, Database, Nextcloud and Redis and that your containers are up-to-date
|
||||
- [ ] On the bottom should be the Optional addons section shown but with disabled checkboxes (not clickable)
|
||||
- [ ] A automatic reload every 5s should happen until all Containers are started (as long as this window is focused)
|
||||
- [ ] After waiting a bit longer it should instead of the advice that your containers are currently running show the initial Nextcloud credentials (username, password) and below that a button that allows to open the Nextcloud interface in a new tab
|
||||
- [ ] Clicking on that button should open the Nextcloud interface in a new tab and you should be able to log in using the provided credentials
|
||||
- [ ] Below the Containers section it should show a `Stop containers` button
|
||||
- [ ] Below the Containers section and above the Optional Addons section, you should see a Backup and restore section and an AIO password change section
|
||||
|
||||
You can now continue with [003-automatic-login.md](./003-automatic-login.md).
|
||||
@@ -1,8 +1,13 @@
|
||||
# Automatic login
|
||||
|
||||
- [ ] After you log in to Nextcloud using the provided initial credentials, open https://yourdomain.com/settings/admin/overview
|
||||
- [ ] There you should see a Nextcloud AIO section and a button that allows to log into the AIO interface.
|
||||
- [ ] Clicking on this button should open the AIO interface in a new tab and should automatically log you in
|
||||
- [ ] All sessions in other tabs that are currently open should be closed (you can verify by reloading all other AIO tabs)
|
||||
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
# Automatic login
|
||||
|
||||
- [ ] After you log in to Nextcloud using the provided initial credentials, open https://yourdomain.com/settings/admin/overview
|
||||
- [ ] There you should see a Nextcloud AIO section and a button that allows to log into the AIO interface.
|
||||
- [ ] Clicking on this button should open the AIO interface in a new tab and should automatically log you in
|
||||
- [ ] All sessions in other tabs that are currently open should be closed (you can verify by reloading all other AIO tabs)
|
||||
|
||||
You can now continue with [004-initial-backup.md](./004-initial-backup.md).
|
||||
@@ -1,32 +1,37 @@
|
||||
# Initial backup
|
||||
|
||||
- [ ] In the Backup and restore section, you should now see two input boxes where for one you should type in the path where the backup should get created and some explanation below or the other type in a remote ssh location
|
||||
- [ ] First, check a local backup:
|
||||
- [ ] Enter `/` which should send an error
|
||||
- [ ] Enter `/mnt/` or `/media/` or `/host_mnt/` or `/var/backups/` should send an error as well
|
||||
- [ ] Accepted should be `/mnt/backup`, `/media/backup`, `/host_mnt/c/backup` and `/var/backups`.
|
||||
- [ ] The side should now reload
|
||||
- [ ] In the Backup restore section you should now see a Backup information section with important info like the encryption password, the backup location and more.
|
||||
- [ ] Also you should see a Backup creation section that contains a `Create backup` button.
|
||||
- [ ] Clicking on the `Create backup` button should open a window prompt that allows to cancel the operation.
|
||||
- [ ] Canceling should return to the website, confirming should reveal the big spinner again which should block the website again.
|
||||
- [ ] After a while you should see the information that Backup container is currently running
|
||||
- [ ] another option are remote backups via SSH using borgbackup. The remote borg repo URL must contain both `@` and `:`. The process works as follows:
|
||||
1. You enter a remote borg repo URL (e.g. `ssh://user@host:port/path/to/repo` or `user@host:/path/to/repo`).
|
||||
2. On the first connection attempt, a SSH key pair is generated automatically and the public key is displayed.
|
||||
3. You add the public key to the `~/.ssh/authorized_keys` file on the remote server so that AIO can connect to it.
|
||||
4. Once authorized, AIO can create and restore backups on the remote server.
|
||||
- [ ] Enter `user` (no `@` and no `:`) which should send an error
|
||||
- [ ] Enter `user@host` (no `:`) which should send an error
|
||||
- [ ] Enter `userhost:/path` (no `@`) which should send an error
|
||||
- [ ] Accepted should be `ssh://user@host:22/path/to/repo` or `user@host:/path/to/repo`
|
||||
- [ ] Both a local backup location and a remote repo URL should not be accepted at the same time
|
||||
- [ ] The page should now reload
|
||||
- [ ] Now click on `Create backup`
|
||||
- [ ] After the first failed backup attempt with a remote repo, the SSH public key for borg should be shown so it can be authorized on the remote server
|
||||
- [ ] After authorizing the server on the remote, scroll down and click on `Create backup` again to create another backup. This time it should succeed.
|
||||
- [ ] The initial Nextcloud credentials on top of the page that are visible when the containers are running should now be hidden in a details tag
|
||||
- [ ] After a while and a few automatic reloads (as long as the side is focused), you should be redirected to the usual page and seen in the Backup and restore section that the last backup was successful.
|
||||
- [ ] Below that you should see a details tag that allows to reveal all backup options
|
||||
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
# Initial backup
|
||||
|
||||
- [ ] In the Backup and restore section, you should now see two input boxes where for one you should type in the path where the backup should get created and some explanation below or the other type in a remote ssh location
|
||||
- [ ] First, check a local backup:
|
||||
- [ ] Enter `/` which should send an error
|
||||
- [ ] Enter `/mnt/` or `/media/` or `/host_mnt/` or `/var/backups/` should send an error as well
|
||||
- [ ] Accepted should be `/mnt/backup`, `/media/backup`, `/host_mnt/c/backup` and `/var/backups`.
|
||||
- [ ] The side should now reload
|
||||
- [ ] In the Backup restore section you should now see a Backup information section with important info like the encryption password, the backup location and more.
|
||||
- [ ] Also you should see a Backup creation section that contains a `Create backup` button.
|
||||
- [ ] Clicking on the `Create backup` button should open a window prompt that allows to cancel the operation.
|
||||
- [ ] Canceling should return to the website, confirming should reveal the big spinner again which should block the website again.
|
||||
- [ ] After a while you should see the information that Backup container is currently running
|
||||
- [ ] another option are remote backups via SSH using borgbackup. The remote borg repo URL must contain both `@` and `:`. The process works as follows:
|
||||
1. You enter a remote borg repo URL (e.g. `ssh://user@host:port/path/to/repo` or `user@host:/path/to/repo`).
|
||||
2. On the first connection attempt, a SSH key pair is generated automatically and the public key is displayed.
|
||||
3. You add the public key to the `~/.ssh/authorized_keys` file on the remote server so that AIO can connect to it.
|
||||
4. Once authorized, AIO can create and restore backups on the remote server.
|
||||
- [ ] Enter `user` (no `@` and no `:`) which should send an error
|
||||
- [ ] Enter `user@host` (no `:`) which should send an error
|
||||
- [ ] Enter `userhost:/path` (no `@`) which should send an error
|
||||
- [ ] Accepted should be `ssh://user@host:22/path/to/repo` or `user@host:/path/to/repo`
|
||||
- [ ] Both a local backup location and a remote repo URL should not be accepted at the same time
|
||||
- [ ] The page should now reload
|
||||
- [ ] Now click on `Create backup`
|
||||
- [ ] After the first failed backup attempt with a remote repo, the SSH public key for borg should be shown so it can be authorized on the remote server
|
||||
- [ ] After authorizing the server on the remote, scroll down and click on `Create backup` again to create another backup. This time it should succeed.
|
||||
- [ ] The initial Nextcloud credentials on top of the page that are visible when the containers are running should now be hidden in a details tag
|
||||
- [ ] After a while and a few automatic reloads (as long as the side is focused), you should be redirected to the usual page and seen in the Backup and restore section that the last backup was successful.
|
||||
- [ ] Below that you should see a details tag that allows to reveal all backup options
|
||||
|
||||
You can now continue with [020-backup-and-restore.md](.//020-backup-and-restore.md)
|
||||
@@ -1,36 +1,41 @@
|
||||
# Restore instance
|
||||
|
||||
For the below to work, you need a backup archive of an AIO instance and the location on the test machine and the password for the backup archive. You can get one here: [backup-archive](./assets/backup-archive/)
|
||||
|
||||
- [ ] The section that allows to restore the whole AIO instance from backup should show three input fields: one that allows to enter a location where the backup archive is located and one that allows to enter a remote ssh path and one that allows to enter password of the archive. It should also show a short explanation regarding the path requirements
|
||||
- [ ] First, check restoring from a local backup location:
|
||||
- [ ] Entering an incorrect path and/or password should let you continue and test your settings in the next step
|
||||
- [ ] Clicking on the test button should after a reload bring you back to the initial screen where it should say that the test was unsuccessful. Also you should be able to have a look at the backup container logs for investigation what exactly failed.
|
||||
- [ ] You should also now see the input boxes again where you can change the path and password, confirm it and bring you again to the screen where you can test your settings.
|
||||
- [ ] Entering the correct path to the backup archive and the correct password here should:
|
||||
- [ ] Should reload and should hide all options except the option to test the path and password
|
||||
- [ ] After the test you should see the options to check the integrity of the backup and a list of backup archives that you can choose from to restore your instance
|
||||
- [ ] Clicking on either option should show a window prompt that lets you cancel the operation
|
||||
- [ ] Clicking on the integrity check option should check the integrity and report that the backup integrity is good after a while which should then only show the option to choose the backup archive that should be restored
|
||||
- [ ] Choosing the restore option should finally restore your files.
|
||||
- [ ] After waiting a while it should reload the page and should show the usual container interface again with the state of your containers (stopped) and the option to start and update the containers again.
|
||||
- [ ] Next, check restoring from a remote backup location via SSH. The remote borg repo URL must contain both `@` and `:`. The restore process works as follows:
|
||||
1. You enter a remote borg repo URL (e.g. `ssh://user@host:port/path/to/repo` or `user@host:/path/to/repo`) and the backup password.
|
||||
2. On the first connection attempt, a SSH key pair is generated automatically and the public key is displayed.
|
||||
3. You add the public key to the `~/.ssh/authorized_keys` file on the remote server so that AIO can connect to it.
|
||||
4. Once authorized, AIO can list and restore backups from the remote server.
|
||||
- [ ] Enter an invalid remote repo URL (e.g. `user` without `@` and `:`) which should send an error
|
||||
- [ ] Enter a valid remote borg repo URL and the correct backup password:
|
||||
- [ ] Should reload and should hide all options except the option to test the path and password
|
||||
- [ ] After the first failed connection attempt, the SSH public key for borg should be shown so it can be authorized on the remote server
|
||||
- [ ] After authorizing the key on the remote server, scroll down and click on the test button again. This time it should succeed and show the options to check the integrity and list backup archives
|
||||
- [ ] After the test you should see the options to check the integrity of the backup and a list of backup archives that you can choose from to restore your instance
|
||||
- [ ] Clicking on either option should show a window prompt that lets you cancel the operation
|
||||
- [ ] Clicking on the integrity check option should check the integrity and report that the backup integrity is good after a while which should then only show the option to choose the backup archive that should be restored
|
||||
- [ ] Choosing the restore option should finally restore your files.
|
||||
- [ ] After waiting a while it should reload the page and should show the usual container interface again with the state of your containers (stopped) and the option to start and update the containers again.
|
||||
|
||||
- [ ] Clicking on `Start and update containers` should show a window prompt that you should create a backup. Canceling should cancel the operation, confirming should reveal the big spinner again.
|
||||
- [ ] After waiting a bit, all containers should be green and your instance should be fully functional again
|
||||
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
# Restore instance
|
||||
|
||||
For the below to work, you need a backup archive of an AIO instance and the location on the test machine and the password for the backup archive. You can get one here: [backup-archive](./assets/backup-archive/)
|
||||
|
||||
- [ ] The section that allows to restore the whole AIO instance from backup should show three input fields: one that allows to enter a location where the backup archive is located and one that allows to enter a remote ssh path and one that allows to enter password of the archive. It should also show a short explanation regarding the path requirements
|
||||
- [ ] First, check restoring from a local backup location:
|
||||
- [ ] Entering an incorrect path and/or password should let you continue and test your settings in the next step
|
||||
- [ ] Clicking on the test button should after a reload bring you back to the initial screen where it should say that the test was unsuccessful. Also you should be able to have a look at the backup container logs for investigation what exactly failed.
|
||||
- [ ] You should also now see the input boxes again where you can change the path and password, confirm it and bring you again to the screen where you can test your settings.
|
||||
- [ ] Entering the correct path to the backup archive and the correct password here should:
|
||||
- [ ] Should reload and should hide all options except the option to test the path and password
|
||||
- [ ] After the test you should see the options to check the integrity of the backup and a list of backup archives that you can choose from to restore your instance
|
||||
- [ ] Clicking on either option should show a window prompt that lets you cancel the operation
|
||||
- [ ] Clicking on the integrity check option should check the integrity and report that the backup integrity is good after a while which should then only show the option to choose the backup archive that should be restored
|
||||
- [ ] Choosing the restore option should finally restore your files.
|
||||
- [ ] After waiting a while it should reload the page and should show the usual container interface again with the state of your containers (stopped) and the option to start and update the containers again.
|
||||
- [ ] Next, check restoring from a remote backup location via SSH. The remote borg repo URL must contain both `@` and `:`. The restore process works as follows:
|
||||
1. You enter a remote borg repo URL (e.g. `ssh://user@host:port/path/to/repo` or `user@host:/path/to/repo`) and the backup password.
|
||||
2. On the first connection attempt, a SSH key pair is generated automatically and the public key is displayed.
|
||||
3. You add the public key to the `~/.ssh/authorized_keys` file on the remote server so that AIO can connect to it.
|
||||
4. Once authorized, AIO can list and restore backups from the remote server.
|
||||
- [ ] Enter an invalid remote repo URL (e.g. `user` without `@` and `:`) which should send an error
|
||||
- [ ] Enter a valid remote borg repo URL and the correct backup password:
|
||||
- [ ] Should reload and should hide all options except the option to test the path and password
|
||||
- [ ] After the first failed connection attempt, the SSH public key for borg should be shown so it can be authorized on the remote server
|
||||
- [ ] After authorizing the key on the remote server, scroll down and click on the test button again. This time it should succeed and show the options to check the integrity and list backup archives
|
||||
- [ ] After the test you should see the options to check the integrity of the backup and a list of backup archives that you can choose from to restore your instance
|
||||
- [ ] Clicking on either option should show a window prompt that lets you cancel the operation
|
||||
- [ ] Clicking on the integrity check option should check the integrity and report that the backup integrity is good after a while which should then only show the option to choose the backup archive that should be restored
|
||||
- [ ] Choosing the restore option should finally restore your files.
|
||||
- [ ] After waiting a while it should reload the page and should show the usual container interface again with the state of your containers (stopped) and the option to start and update the containers again.
|
||||
|
||||
- [ ] Clicking on `Start and update containers` should show a window prompt that you should create a backup. Canceling should cancel the operation, confirming should reveal the big spinner again.
|
||||
- [ ] After waiting a bit, all containers should be green and your instance should be fully functional again
|
||||
|
||||
You can now continue with [020-backup-and-restore.md](./020-backup-and-restore.md)
|
||||
@@ -1,12 +1,17 @@
|
||||
# Backup and restore
|
||||
|
||||
- [ ] Expanding all backup options in the Backup and restore sectioin should reveal a Backup information section, Backup creation section, Backup check section, Backup restore section and a Daily backup section as well as a additional backup location section
|
||||
- [ ] The backup restore section should list all available backup archives and list them from most recent to least recent.
|
||||
- [ ] Clicking on either option of Create backup, Check backup integrity or Restore selected backup should run the corresponding action and report after a while in the last check, backup or restore was successful.
|
||||
- [ ] Daily backup creatio should allow to enter a time in 24h format e.g. `04:00` should be accepted, `24:00` or `dfjlk` not.
|
||||
- [ ] Submitting a time here should reload the page and reveal at the same place the option to delete the setting again.
|
||||
- [ ] When the time of the automatic backup has come (you can test it by choosing a time that is e.g. only a minute away), it should automatically log you out (you can verify by reloading) and after you log in again you should see that the automatic backup is currently running.
|
||||
- [ ] After a while you should see that your container are starting and in the Backup and restore section you should see that the backup was successful
|
||||
- [ ] When entering additional backup directories, it should allow e.g. `/etc` and `nextcloud_aio_mastercontainer` but not `nextcloud/test`. Running a backup with this should back up these directories/volumes successfully.
|
||||
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
# Backup and restore
|
||||
|
||||
- [ ] Expanding all backup options in the Backup and restore sectioin should reveal a Backup information section, Backup creation section, Backup check section, Backup restore section and a Daily backup section as well as a additional backup location section
|
||||
- [ ] The backup restore section should list all available backup archives and list them from most recent to least recent.
|
||||
- [ ] Clicking on either option of Create backup, Check backup integrity or Restore selected backup should run the corresponding action and report after a while in the last check, backup or restore was successful.
|
||||
- [ ] Daily backup creatio should allow to enter a time in 24h format e.g. `04:00` should be accepted, `24:00` or `dfjlk` not.
|
||||
- [ ] Submitting a time here should reload the page and reveal at the same place the option to delete the setting again.
|
||||
- [ ] When the time of the automatic backup has come (you can test it by choosing a time that is e.g. only a minute away), it should automatically log you out (you can verify by reloading) and after you log in again you should see that the automatic backup is currently running.
|
||||
- [ ] After a while you should see that your container are starting and in the Backup and restore section you should see that the backup was successful
|
||||
- [ ] When entering additional backup directories, it should allow e.g. `/etc` and `nextcloud_aio_mastercontainer` but not `nextcloud/test`. Running a backup with this should back up these directories/volumes successfully.
|
||||
|
||||
You can now continue with [030-aio-password-change.md](./030-aio-password-change.md)
|
||||
@@ -1,12 +1,17 @@
|
||||
# AIO passphrase change
|
||||
|
||||
- [ ] In the AIO passphrase change section you should see two input fields. And below the requirements for a new passphrase
|
||||
- [ ] When entering nothing it should report that you need to enter your current AIO passphrase
|
||||
- [ ] When entering a false passphrase, it should report that to you
|
||||
- [ ] After entering your current passphrase and leaving the new passphrase empty it should report that you need to enter a new passphrase
|
||||
- [ ] After entering a new passphrase shorter than 24 characters or not allowed characters, it should report that the passphrase requirements are not met.
|
||||
- [ ] `sdfjlksj` should not be accepted
|
||||
- [ ] `jdsfklöjiroewoäsadjkfölk` should not be accepted
|
||||
- [ ] `sdjlfj SDJFLK 32489 sdjklf` should be accepted, which should reload the page
|
||||
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
# AIO passphrase change
|
||||
|
||||
- [ ] In the AIO passphrase change section you should see two input fields. And below the requirements for a new passphrase
|
||||
- [ ] When entering nothing it should report that you need to enter your current AIO passphrase
|
||||
- [ ] When entering a false passphrase, it should report that to you
|
||||
- [ ] After entering your current passphrase and leaving the new passphrase empty it should report that you need to enter a new passphrase
|
||||
- [ ] After entering a new passphrase shorter than 24 characters or not allowed characters, it should report that the passphrase requirements are not met.
|
||||
- [ ] `sdfjlksj` should not be accepted
|
||||
- [ ] `jdsfklöjiroewoäsadjkfölk` should not be accepted
|
||||
- [ ] `sdjlfj SDJFLK 32489 sdjklf` should be accepted, which should reload the page
|
||||
|
||||
You can now continue with [040-login-behavior.md](./040-login-behavior.md)
|
||||
@@ -1,7 +1,12 @@
|
||||
# Login behavior
|
||||
|
||||
- [ ] When opening the AIO interface in a new tab while the apache container is running, it should report on the login page that Nextcloud is running and you should use the automatic login
|
||||
- [ ] When the apache container is stopped, you should see here an input field that allows you to enter the AIO passphrase which should log you in
|
||||
- [ ] Starting and stopping the containers multiple times should every time produce a new token that is used in the admin overview in Nextcloud as link in the button to log you into the AIO interface. (see [003-automatic-login.md](./003-automatic-login.md))
|
||||
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
# Login behavior
|
||||
|
||||
- [ ] When opening the AIO interface in a new tab while the apache container is running, it should report on the login page that Nextcloud is running and you should use the automatic login
|
||||
- [ ] When the apache container is stopped, you should see here an input field that allows you to enter the AIO passphrase which should log you in
|
||||
- [ ] Starting and stopping the containers multiple times should every time produce a new token that is used in the admin overview in Nextcloud as link in the button to log you into the AIO interface. (see [003-automatic-login.md](./003-automatic-login.md))
|
||||
|
||||
You can now continue with [050-optional-addons.md](./050-optional-addons.md)
|
||||
@@ -1,17 +1,22 @@
|
||||
# Optional addons
|
||||
|
||||
- [ ] Close to the bottom of the page in the AIO interface, you should see the optional addons section
|
||||
- [ ] You should be able to change optional addons when containers are stopped and not change them when containers are running
|
||||
- [ ] Enabling either of the options should start a new container with the same or comparable name and should also list them in the containers section
|
||||
- [ ] After all containers are started with the new config active, you should verify that the options were automatically activated/deactivated.
|
||||
- [ ] ClamAV by trying to upload a testvirus to Nextcloud https://www.eicar.org/?page_id=3950
|
||||
- [ ] Collabora by trying to open a .docx or .odt file in Nextcloud
|
||||
- [ ] Nextcloud Talk by opening the Talk app in Nextcloud, creating a new chat and trying to join a call in this chat. Also verifying in the settings that the HPB and turn server work.
|
||||
- [ ] Imaginary by having a look if when uploading a new picture in Nextcloud, it adds some log entries to the container
|
||||
- [ ] Fulltextsearch by trying to search for a heading inside a file in Nextcloud
|
||||
- [ ] Talk-recording by starting a call and trying to record something
|
||||
- [ ] When Collabora is enabled
|
||||
- [ ] It should show below the Optional Addons section a section where you can change the dictionaries for collabora. `de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru` should be a valid setting. E.g. `de.De` not. If already set, it should show a button that allows to remove the setting again.
|
||||
- [ ] Also, you should see an input field that allows to enter additional collabora options. E.g. `net.content_security_policy=false` should not be accepted, but `--o:net.content_security_policy="frame-ancestors *.example.com:*;"` should.
|
||||
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
# Optional addons
|
||||
|
||||
- [ ] Close to the bottom of the page in the AIO interface, you should see the optional addons section
|
||||
- [ ] You should be able to change optional addons when containers are stopped and not change them when containers are running
|
||||
- [ ] Enabling either of the options should start a new container with the same or comparable name and should also list them in the containers section
|
||||
- [ ] After all containers are started with the new config active, you should verify that the options were automatically activated/deactivated.
|
||||
- [ ] ClamAV by trying to upload a testvirus to Nextcloud https://www.eicar.org/?page_id=3950
|
||||
- [ ] Collabora by trying to open a .docx or .odt file in Nextcloud
|
||||
- [ ] Nextcloud Talk by opening the Talk app in Nextcloud, creating a new chat and trying to join a call in this chat. Also verifying in the settings that the HPB and turn server work.
|
||||
- [ ] Imaginary by having a look if when uploading a new picture in Nextcloud, it adds some log entries to the container
|
||||
- [ ] Fulltextsearch by trying to search for a heading inside a file in Nextcloud
|
||||
- [ ] Talk-recording by starting a call and trying to record something
|
||||
- [ ] When Collabora is enabled
|
||||
- [ ] It should show below the Optional Addons section a section where you can change the dictionaries for collabora. `de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru` should be a valid setting. E.g. `de.De` not. If already set, it should show a button that allows to remove the setting again.
|
||||
- [ ] Also, you should see an input field that allows to enter additional collabora options. E.g. `net.content_security_policy=false` should not be accepted, but `--o:net.content_security_policy="frame-ancestors *.example.com:*;"` should.
|
||||
|
||||
You can now continue with [055-community-containers.md](./055-community-containers.md)
|
||||
@@ -1,3 +1,8 @@
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2025 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
# Community Containers
|
||||
|
||||
- [ ] At the very bottom of the page, there should be a Community Containers section
|
||||
|
||||
@@ -1,31 +1,36 @@
|
||||
# Environmental variables
|
||||
|
||||
- [ ] When starting the mastercontainer with `--env APACHE_PORT=11000` on a clean instance, the domaincheck container should be started with that same port published. That makes sure that also the Apache container will use that port later on. Using a value here that is not a port will not allow the mastercontainer to start correctly. However `@INTERNAL` is also an allowed value which skips publishing the port on the host for internal usage inside a bridged network for example.
|
||||
- [ ] When starting the mastercontainer with `--env APACHE_IP_BINDING=127.0.0.1` on a clean instance, the domaincheck container's apache port should only listen on localhost on the host. Using a value here that is not a number or dot will not allow the mastercontainer to start correctly.
|
||||
- [ ] When starting the mastercontainer with `--env APACHE_ADDITIONAL_NETWORK=frontend_net` on a clean instance, the domaincheck and subsequently the apache containers should be connected to the specified `frontend_net` docker network, in addition to the default `nextcloud-aio` network. Specifying the network that doesn't already exist will not allow the mastercontainer to start correctly.
|
||||
- [ ] When starting the mastercontainer with `--env TALK_PORT=3479` on a clean instance, the talk container should use this port later on. Using a value here that is not a port will not allow the mastercontainer to start correctly. Also it should stop if apache_port and talk_port are set to the same value.
|
||||
- [ ] Make also sure that reverse proxies work by following https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#reverse-proxy-documentation and following [001-initial-setup.md](./001-initial-setup.md) and [002-new-instance.md](./002-new-instance.md)
|
||||
- [ ] When starting the mastercontainer with `--env SKIP_DOMAIN_VALIDATION=true` on a clean instance, it should skip the domain verification. So it should accept any domain that you type in then.
|
||||
- [ ] When starting the mastercontainer with `--env DOCKER_API_VERSION=1.44` it should use the mentioned docker API version internally for all requests
|
||||
- [ ] When starting the mastercontainer with `--env AIO_LOG_LEVEL=info` on a clean instance, the resulting sibling containers should receive the propagated global log-level variable and the configured components should no longer use their default warning or error levels. This should at least be verified for the mastercontainer, Apache, Nextcloud, Redis and Talk containers. In addition, previously suppressed supervisord stdout or stderr logs should become visible for the affected components.
|
||||
- [ ] When starting the mastercontainer with an invalid `AIO_LOG_LEVEL` value like `warning` or `verbose`, the container startup should fail with a message that only `debug`, `info`, `warn` and `error` are allowed.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_DATADIR="/mnt/testdata"` it should map that location from `/mnt/testdata` to `/mnt/ncdata` inside the Nextcloud container. Not having adjusted the permissions correctly before starting the Nextcloud container the first time will not allow the Nextcloud container to start correctly. See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir for allowed values.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_MOUNT="/mnt/"` it should map `/mnt/` to `/mnt/` inside the Nextcloud container. See https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host for allowed values.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_UPLOAD_LIMIT=11G` it should change Nextclouds upload limit to 11G. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud for allowed values.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_MEMORY_LIMIT=1024M` it should change Nextclouds PHP memory limit to 1024M. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud for allowed values.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_MAX_TIME=4000` it should change Nextclouds upload max time 4000s. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud for allowed values.
|
||||
- [ ] When starting the mastercontainer with `--env BORG_RETENTION_POLICY="--keep-within=1d --keep-weekly=1 --keep-monthly=1"` it should change borgs retention policy to the defined one. This can be checked when creating a backup and looking at the logs.
|
||||
- [ ] When starting the mastercontainer with `--env FULLTEXTSEARCH_JAVA_OPTIONS="-Xms1024M -Xmx1024M"` it should change Elasticsearchs `ES_JAVA_OPTS` options to the defined one. This can be checked by checking the `ES_JAVA_OPTS` variable for the nextcloud-aio-fulltextsearch container.
|
||||
- [ ] When starting the mastercontainer with `--env WATCHTOWER_DOCKER_SOCKET_PATH="$XDG_RUNTIME_DIR/docker.sock"` it should map `$XDG_RUNTIME_DIR/docker.sock` to `/var/run/docker.sock` inside the watchtower container which allow to update the mastercontainer on docker rootless.
|
||||
- [ ] When starting the mastercontainer with `--env AIO_DISABLE_BACKUP_SECTION=true` it should hide the backup section that gets shown after AIO is set up (everything of [020-backup-and-restore](./020-backup-and-restore.md)) and simply show that the backup section is disabled.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_TRUSTED_CACERTS_DIR=/path/to/my/cacerts`, the resulting nextcloud container should trust all the Certification Authorities, whose certificates are included in the directory `/path/to/my/cacerts` on the host.
|
||||
See https://github.com/nextcloud/all-in-one#how-to-trust-user-defined-certification-authorities-ca
|
||||
- [ ] When starting the mastercontainer with `--env COLLABORA_SECCOMP_DISABLED=true`, the resulting collabora container should have `--o:security.seccomp=false` applied to it.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_STARTUP_APPS=deck`, the resulting Nextcloud should have only installed the deck app and not the other apps that get installed by default. Default are `deck twofactor_totp tasks calendar contacts notes`.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_ADDITIONAL_APKS=zip`, the resulting Nextcloud container should have the zip package installed and not imagemagick.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=inotify`, the resulting Nextcloud container should have the inotify extension installed and not the imagick extension.
|
||||
- [ ] When mounting `/dev/dri` into the mastercontainer with `--device=/dev/dri`, the /dev/dri device mounted into all sibling containers that require it like talk-recording. (Only works if a `/dev/dri` device is present on the host)
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_ENABLE_NVIDIA_GPU=true`, the resulting Nextcloud container should have the nvidia gpu device mounted into the container. (Only works if a Nvidia GPU and runtime is installed on the host)
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_KEEP_DISABLED_APPS=true` it should keep apps in Nextcloud that are disabled in the AIO interface. For example if Collabora is disabled in the AIO interface and you install the richdocuments app in Nextcloud, a restart should not uninstall the richdocuments app in Nextcloud anymore.
|
||||
|
||||
You can now continue with [070-timezone-change.md](./070-timezone-change.md)
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
# Environmental variables
|
||||
|
||||
- [ ] When starting the mastercontainer with `--env APACHE_PORT=11000` on a clean instance, the domaincheck container should be started with that same port published. That makes sure that also the Apache container will use that port later on. Using a value here that is not a port will not allow the mastercontainer to start correctly. However `@INTERNAL` is also an allowed value which skips publishing the port on the host for internal usage inside a bridged network for example.
|
||||
- [ ] When starting the mastercontainer with `--env APACHE_IP_BINDING=127.0.0.1` on a clean instance, the domaincheck container's apache port should only listen on localhost on the host. Using a value here that is not a number or dot will not allow the mastercontainer to start correctly.
|
||||
- [ ] When starting the mastercontainer with `--env APACHE_ADDITIONAL_NETWORK=frontend_net` on a clean instance, the domaincheck and subsequently the apache containers should be connected to the specified `frontend_net` docker network, in addition to the default `nextcloud-aio` network. Specifying the network that doesn't already exist will not allow the mastercontainer to start correctly.
|
||||
- [ ] When starting the mastercontainer with `--env TALK_PORT=3479` on a clean instance, the talk container should use this port later on. Using a value here that is not a port will not allow the mastercontainer to start correctly. Also it should stop if apache_port and talk_port are set to the same value.
|
||||
- [ ] Make also sure that reverse proxies work by following https://github.com/nextcloud/all-in-one/blob/main/reverse-proxy.md#reverse-proxy-documentation and following [001-initial-setup.md](./001-initial-setup.md) and [002-new-instance.md](./002-new-instance.md)
|
||||
- [ ] When starting the mastercontainer with `--env SKIP_DOMAIN_VALIDATION=true` on a clean instance, it should skip the domain verification. So it should accept any domain that you type in then.
|
||||
- [ ] When starting the mastercontainer with `--env DOCKER_API_VERSION=1.44` it should use the mentioned docker API version internally for all requests
|
||||
- [ ] When starting the mastercontainer with `--env AIO_LOG_LEVEL=info` on a clean instance, the resulting sibling containers should receive the propagated global log-level variable and the configured components should no longer use their default warning or error levels. This should at least be verified for the mastercontainer, Apache, Nextcloud, Redis and Talk containers. In addition, previously suppressed supervisord stdout or stderr logs should become visible for the affected components.
|
||||
- [ ] When starting the mastercontainer with an invalid `AIO_LOG_LEVEL` value like `warning` or `verbose`, the container startup should fail with a message that only `debug`, `info`, `warn` and `error` are allowed.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_DATADIR="/mnt/testdata"` it should map that location from `/mnt/testdata` to `/mnt/ncdata` inside the Nextcloud container. Not having adjusted the permissions correctly before starting the Nextcloud container the first time will not allow the Nextcloud container to start correctly. See https://github.com/nextcloud/all-in-one#how-to-change-the-default-location-of-nextclouds-datadir for allowed values.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_MOUNT="/mnt/"` it should map `/mnt/` to `/mnt/` inside the Nextcloud container. See https://github.com/nextcloud/all-in-one#how-to-allow-the-nextcloud-container-to-access-directories-on-the-host for allowed values.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_UPLOAD_LIMIT=11G` it should change Nextclouds upload limit to 11G. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-upload-limit-for-nextcloud for allowed values.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_MEMORY_LIMIT=1024M` it should change Nextclouds PHP memory limit to 1024M. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-php-memory-limit-for-nextcloud for allowed values.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_MAX_TIME=4000` it should change Nextclouds upload max time 4000s. See https://github.com/nextcloud/all-in-one#how-to-adjust-the-max-execution-time-for-nextcloud for allowed values.
|
||||
- [ ] When starting the mastercontainer with `--env BORG_RETENTION_POLICY="--keep-within=1d --keep-weekly=1 --keep-monthly=1"` it should change borgs retention policy to the defined one. This can be checked when creating a backup and looking at the logs.
|
||||
- [ ] When starting the mastercontainer with `--env FULLTEXTSEARCH_JAVA_OPTIONS="-Xms1024M -Xmx1024M"` it should change Elasticsearchs `ES_JAVA_OPTS` options to the defined one. This can be checked by checking the `ES_JAVA_OPTS` variable for the nextcloud-aio-fulltextsearch container.
|
||||
- [ ] When starting the mastercontainer with `--env WATCHTOWER_DOCKER_SOCKET_PATH="$XDG_RUNTIME_DIR/docker.sock"` it should map `$XDG_RUNTIME_DIR/docker.sock` to `/var/run/docker.sock` inside the watchtower container which allow to update the mastercontainer on docker rootless.
|
||||
- [ ] When starting the mastercontainer with `--env AIO_DISABLE_BACKUP_SECTION=true` it should hide the backup section that gets shown after AIO is set up (everything of [020-backup-and-restore](./020-backup-and-restore.md)) and simply show that the backup section is disabled.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_TRUSTED_CACERTS_DIR=/path/to/my/cacerts`, the resulting nextcloud container should trust all the Certification Authorities, whose certificates are included in the directory `/path/to/my/cacerts` on the host.
|
||||
See https://github.com/nextcloud/all-in-one#how-to-trust-user-defined-certification-authorities-ca
|
||||
- [ ] When starting the mastercontainer with `--env COLLABORA_SECCOMP_DISABLED=true`, the resulting collabora container should have `--o:security.seccomp=false` applied to it.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_STARTUP_APPS=deck`, the resulting Nextcloud should have only installed the deck app and not the other apps that get installed by default. Default are `deck twofactor_totp tasks calendar contacts notes`.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_ADDITIONAL_APKS=zip`, the resulting Nextcloud container should have the zip package installed and not imagemagick.
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_ADDITIONAL_PHP_EXTENSIONS=inotify`, the resulting Nextcloud container should have the inotify extension installed and not the imagick extension.
|
||||
- [ ] When mounting `/dev/dri` into the mastercontainer with `--device=/dev/dri`, the /dev/dri device mounted into all sibling containers that require it like talk-recording. (Only works if a `/dev/dri` device is present on the host)
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_ENABLE_NVIDIA_GPU=true`, the resulting Nextcloud container should have the nvidia gpu device mounted into the container. (Only works if a Nvidia GPU and runtime is installed on the host)
|
||||
- [ ] When starting the mastercontainer with `--env NEXTCLOUD_KEEP_DISABLED_APPS=true` it should keep apps in Nextcloud that are disabled in the AIO interface. For example if Collabora is disabled in the AIO interface and you install the richdocuments app in Nextcloud, a restart should not uninstall the richdocuments app in Nextcloud anymore.
|
||||
|
||||
You can now continue with [070-timezone-change.md](./070-timezone-change.md)
|
||||
|
||||
@@ -1,10 +1,15 @@
|
||||
# Timezone change
|
||||
|
||||
- [ ] At the very bottom of the page you should see the timezone change section
|
||||
- [ ] When the containers are stopped, you should be able to change it and set/reset it
|
||||
- [ ] If not already set, it should show an input field where you can enter a timezone
|
||||
- [ ] `Europe/Berlin` should be accepted, e.g. `Europe Berlin` not
|
||||
- [ ] When it is set, it should show that it is set to which timezone and display a button that allows to reset it again which does this on a press
|
||||
- [ ] When it is set, running `date` inside Nextcloud related containers should return the correct timezone
|
||||
|
||||
<!--
|
||||
SPDX-FileCopyrightText: 2022 Nextcloud GmbH <https://nextcloud.com>
|
||||
SPDX-License-Identifier: AGPL-3.0-only
|
||||
-->
|
||||
|
||||
# Timezone change
|
||||
|
||||
- [ ] At the very bottom of the page you should see the timezone change section
|
||||
- [ ] When the containers are stopped, you should be able to change it and set/reset it
|
||||
- [ ] If not already set, it should show an input field where you can enter a timezone
|
||||
- [ ] `Europe/Berlin` should be accepted, e.g. `Europe Berlin` not
|
||||
- [ ] When it is set, it should show that it is set to which timezone and display a button that allows to reset it again which does this on a press
|
||||
- [ ] When it is set, running `date` inside Nextcloud related containers should return the correct timezone
|
||||
|
||||
You can now continue with [080-daily-backup-script.md](./080-daily-backup-script.md)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user