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_timezonehas the same undefined-timezone-variable issue as Pi-hole (see Pi-hole gotchas) — defaults toEtc/UTCrather thanEurope/London.- AIO's first-run setup wizard is a manual, deploy-time step; not automated by Ansible.