Every compose.yml.j2 now declares services as '{{ service_name }}:' with
its '{% set %}' knobs on two-space lines above the key, includes at four
spaces and if/for tags aligned to the content they wrap. The layout
renders correctly because stack_host_template enables lstrip_blocks for
compose.yml.j2; indent(4, True) in the container base and '{%+' guards
in whitespace-sensitive scalars keep the shared fragments identical
under both render modes. A new lint test enforces the skeleton.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
OpenCloud
Description
OpenCloud is a sovereign self-hosted file sync, share, and collaboration platform maintained by the Heinlein Group. It is a fork of the OpenCloud Infinite Scale codebase and is published as the opencloudeu/opencloud container image.
Overview
This role deploys OpenCloud using Docker Compose in single-binary mode and exposes it under open.cloud.{{ DOMAIN_PRIMARY }} through the central reverse proxy. It wires the deployment to the shared Keycloak realm via OIDC, sources users and groups from the central svc-db-openldap directory, and runs side by side with web-app-nextcloud so both file platforms can coexist on the same host. For identity wiring details see IAM.md and LDAP.md.
Features
- Sovereign File Sync and Share: Self-host file sync, shares, and collaborative spaces under your own domain.
- Single Sign-On: Users authenticate once via Keycloak and reuse the session across the platform.
- Central User Directory: Users and groups are read from a shared OpenLDAP backend, so accounts stay consistent across apps.
- Auto-Provisioning: New OIDC users are created on first login with username equal to the LDAP
uid, and group claims drive role assignment. - OpenTalk Cross-Launch: Start a video meeting in OpenTalk from a file context without re-authenticating when
web-app-opentalkis deployed alongside. - Coexists with Nextcloud: Runs in parallel with
web-app-nextcloudon a distinct canonical hostname.
Developer Notes
See IAM.md for OIDC discovery and verification commands, and LDAP.md for the directory binding and schema mapping. Open follow-up items are tracked in TODO.md.
Further Resources
Credits
Implemented by Kevin Veen-Birkenbach. Part of the Infinito.Nexus Project and maintained by Kevin Veen-Birkenbach. Licensed under the Infinito.Nexus Community License (Non-Commercial).