Rootless Podman Quadlet All-in-One Container Setup w/ CODE, Valkey and Envoy Proxy

Hello everyone,
I have created a set of declarative Quadlet definitions for running a Rootless All-In-One setup with Podman 5. Podman 5 now ships with e.g. Fedora 40.


For this setup, I’ve opted to use Valkey instead of Redis, and the powerful and highly-flexible Envoy for a reverse proxy. Collabora CODE is also included.

All containers will run rootlessly within a Podman pod.

The lifecycle.sh script is used for customization on first install and upgrades (it’s the entrypoint for the nextcloud-init and nextcloud-cron containers).
Nextcloud Apps to be installed on first startup and any other config customizations can be specified there.

Last but not least, there’s an Ansible Playbook to install it all.

I’m looking forward to getting feedback on this. Please report any issues you hit, either here or feel free to open an issue on the repo. Thanks!

Check it out at GitHub - LorbusChris/nextcloud-quadlet: Run rootless containerized Nextcloud as systemd services with Podman 5


Podman Quadlets are declarative config files very similar to systemd unit files that serve as input for a systemd generator. At startup (or when running systemctl [--user] daemon-reload) this generator will generate systemd services for the containers/pods/networks from the quadlet files. There is also a podman-auto-update.service to automatically update the images, and to roll them back in case of failure, which allows for a mostly hands-off experience.

For more info on quadlets/podman-systemd, see podman-systemd.unit — Podman documentation