Skip to content

Nextcloud

Files and collaboration. Runs as its own VM using the All-in-One (AIO) appliance image, which bundles the office/Talk/imaginary sidecars, rather than as Swarm containers — kept off the Swarm for the same reason as Pi-hole: an appliance this central shouldn't share fate with Swarm maintenance.

Runtime VM (Proxmox), cloud-init template
Node pve
IP 10.36.0.12
MAC (net0) bc:24:11:60:83:3b (see Network)
Image nextcloud/all-in-one:latest
URL https://nextcloud.lab.riversfamily.uk
Auth Own login
Source ansible/roles/nextcloud/

Configuration

Variable Default Set in
nextcloud_aio_interface_port 8080 ansible/roles/nextcloud/defaults/main.yml
nextcloud_apache_port 11000 same — this is the port Traefik actually routes to
nextcloud_datadir /mnt/ncdata same

The role ensures the config directory, renders a Docker Compose file for the AIO mastercontainer, and deploys it with community.docker.docker_compose_v2 — not docker stack, since this VM is standalone, not a Swarm node.

Gotchas

  • nextcloud_timezone has the same undefined-timezone-variable issue as Pi-hole (see Pi-hole gotchas) — defaults to Etc/UTC rather than Europe/London.
  • AIO's first-run setup wizard is a manual, deploy-time step; not automated by Ansible.