# Nextcloud AIO - [Nextcloud AIO](#nextcloud-aio) - [Prereq](#prereq) - [Iscsi](#iscsi) - [Setup](#setup) - [IPV6 (Optional)](#ipv6-optional) - [Install](#install) - [Trusted Proxy](#trusted-proxy) - [Uninstall](#uninstall) - [Edit QCOW](#edit-qcow) ## Prereq 1. Have a reverse proxy pointing at your server 2. Have a valid certificate ### Iscsi We can use iscsi to give nextcloud a large block store. On Nextcloud: 1. Create an iscsi initiator in Truenas named `iqn.2024-02.com.reeselink:nextcloud-aio`. 2. Create a new authorized access with username `iqn.2024-02.com.reeselink:nextcloud-aio` and password. 3. Create a new target called `iqn.2024-02.com.reeselink:nextcloud-aio-data` 1. Create an alias called `Nextcloud AIO Data` 2. Select the exposed portal 3. Select the `iqn.2024-02.com.reeselink:nextcloud-aio` initiator group 4. Select CHAP Auth method 5. Select auth group containing `iqn.2024-02.com.reeselink:nextcloud-aio` 4. Create a new extent called `nextcloud-aio-data`, leave all settings alone 5. Create a new associated target with `iqn.2024-02.com.reeselink:nextcloud-aio-data` target and `nextcloud-aio-data` extent On Nextcloud AIO: Edit `/etc/iscsi/initiatorname.iscsi` and set your initiatorname. Edit `/etc/iscsi/iscsid.conf` ```conf node.session.auth.username = iqn.2024-02.com.reeselink:nextcloud-aio node.session.auth.password = ``` ```bash iscsiadm -m discovery -t st -p driveripper.reeselink.com iscsiadm -m node --login ``` ## Setup ### IPV6 (Optional) Add to /etc/docker/daemon.json ```json { "ipv6": true, "fixed-cidr-v6": "fd12:3456:789a:1::/64", "experimental": true, "ip6tables": true } ``` ```bash # Enable IPV6 docker network create --subnet="fd12:3456:789a:2::/64" --driver bridge --ipv6 nextcloud-aio ``` ### Install ```bash docker run \ --init \ --sig-proxy=false \ --name nextcloud-aio-mastercontainer \ --restart always \ --publish 8080:8080 \ --env APACHE_PORT=11000 \ --env APACHE_IP_BINDING=0.0.0.0 \ --env NEXTCLOUD_DATADIR="/mnt/ncdata" \ --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \ --volume /var/run/docker.sock:/var/run/docker.sock:ro \ nextcloud/all-in-one:latest ``` ## Trusted Proxy ```bash docker exec --user www-data -it nextcloud-aio-nextcloud php occ config:system:set trusted_proxies 2 --value="10.1.0.0/16" ``` ## Uninstall ```bash docker stop $(docker ps -a -q) docker system prune docker volume prune -a -f ``` defaults,_netdev,x-systemd.requires=iscsid.service 0 1 ## Edit QCOW ```bash sudo modprobe nbd sudo qemu-nbd -c /dev/nbd0 --read-only /path/to/image.qcow2 udisksctl mount -b /dev/nbd0p1 ```