The challenge
What the system needed to solve
Provide a cloud-like experience across desktop, web, and mobile clients while keeping data under private control and recoverable on local infrastructure.
The build
Engineering decisions
Deployed Nextcloud with dedicated background processing, authenticated Valkey cache and file locking, and a CloudNativePG database.
Separated application/database state from user files, placing each on the storage tier that fits its access and recovery pattern.
Added AppFlowy as a complementary collaborative knowledge workspace on the same declarative platform.
Preserved native desktop, mobile, and WebDAV compatibility by routing client traffic directly to application authentication.
Architecture
How the pieces connect
- 1Web, mobile, and WebDAV clients
- 2TLS edge
- 3Nextcloud and AppFlowy
- 4Valkey and PostgreSQL
- 5Replicated state plus bulk file storage
Results
What changed
- Private documents and collaboration tools are available remotely without relying on a consumer storage subscription.
- Background jobs, caching, database health, storage, and public routes are independently observable.
- The design keeps future migrations possible by avoiding data inside disposable containers.
