Files
homelab/docker/graduated/nextcloud

Nextcloud AIO

https://github.com/nextcloud/all-in-one

Setup

Install Docker

https://docs.docker.com/engine/install/fedora/#set-up-the-repository

IPV6

cat <<EOF > /etc/docker/daemon.json
{
  "ipv6": true,
  "fixed-cidr-v6": "fd12:3456:789a:1::/64",
  "experimental": true,
  "ip6tables": true
}
EOF
systemctl restart docker
systemctl enable --now docker
# Enable IPV6
docker network create --subnet="fd12:3456:789a:2::/64" --driver bridge --ipv6 nextcloud-aio

Install

# Default
# Note: this puts all your nextcloud data in /nextcloud
docker run \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 80:80 \
--publish 8080:8080 \
--publish 8443:8443 \
--env NEXTCLOUD_DATADIR="/nextcloud" \
--env NEXTCLOUD_MEMORY_LIMIT=8192M \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest

# Reverse Proxy
docker run \
--init \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 8080:8080 \
--env APACHE_PORT=11000 \
--env APACHE_IP_BINDING="::" \
--env NEXTCLOUD_DATADIR="/mnt/ncdata" \
--env NEXTCLOUD_MEMORY_LIMIT=8192M \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest

Backups

IMPORTANT: you will need both KEY AND PASSPHRASE to access this repo! If you used a repokey mode, the key is stored in the repo, but you should back it up separately. Use "borg key export" to export the key, optionally in printable format. Write down the passphrase. Store both at safe place(s).

docker exec nextcloud-aio-borgbackup borg key export /mnt/borgbackup/borg/

Trusted Proxy

If running with a reverse proxy.

docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:system:set trusted_proxies 2 --value="10.1.0.0/16"
docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:system:set trusted_proxies 3 --value="fd00:fd41:d0f1:1010::/64"

Default phone region

docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:system:set default_phone_region --value="US"

Adding existing files

docker exec --user www-data -it nextcloud-aio-nextcloud php occ files:scan --path=ducoterra/files

Theming

Red: #B30000

Changing the domain

docker run -it --rm --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config:rw alpine sh -c "apk add --no-cache nano && nano /mnt/docker-aio-config/data/configuration.json"

Uninstall

docker stop $(docker ps -a -q)
docker container prune

# DANGER ZONE
# This deletes all your data
docker volume prune -a -f

defaults,_netdev,x-systemd.requires=iscsid.service 0 1

Edit QCOW

sudo modprobe nbd
sudo qemu-nbd -c /dev/nbd0 --read-only /path/to/image.qcow2
udisksctl mount -b /dev/nbd0p1