skhub is SKWorld's self-hosted collaboration hub: a hardened, pinned Nextcloud deployment for a sovereign fleet. No third-party collaboration SaaS, no surprise cloud dependency, every setting checked into version control.
skhub is the deployment role (optional/skhub) inside SKStacks, SKWorld's Ansible + Docker Swarm sovereign infrastructure framework. It stands up a self-hosted Nextcloud instance, pinned by SHA-256 digest end to end, so the fleet gets its own files, chat, video calls, and office documents without handing any of it to a collaboration SaaS vendor.
Pinned nextcloud:31.0.14, backed by MariaDB 10.11.19 and Redis 8.10.2-alpine.
ClamAV antivirus on uploads, a dedicated cron service, and notify_push for live, no-poll notifications.
Collaborative whiteboard (backend v2.0.0) and imaginary for fast image preview generation.
Optional real-time collaborative document editing, Word/Excel/PowerPoint-compatible, right in the browser (26.04.5.1.1).
Optional Nextcloud Talk High Performance Backend (aio-talk): Janus WebRTC signaling plus an eturnal STUN/TURN relay, for group chat and video calls.
Shared NFS by default, or point it at an external S3-compatible store, or at the fleet's own in-cluster Garage service (skstor) as a one-line shortcut.
Every image is pinned by digest, never a bare tag, and every setting comes from a per-environment vault file, never hardcoded into the playbook.
skhub is not "Nextcloud with defaults." It is Nextcloud run the way a sovereign fleet actually needs it run, with the rough edges found and fixed under real load, not assumed away.
user_oidc app against the fleet's Authentik instance (sksso), with automatic group mapping, a documented deprovisioning path, and a break-glass local login for recovery. Automation keeps local app passwords, never an SSO identity.With the optional Talk HPB enabled, Nextcloud Talk gets its own TURN/STUN relay (eturnal), so calls work from outside the local network, not just inside it. A TLS-over-443 fallback keeps calls working on networks that block the raw TURN port, and port sizing follows a simple rule of thumb: roughly 2 x N² relay ports for an N-person call outside the LAN.
| Capability | Detail |
|---|---|
| Relay | eturnal STUN/TURN, for calls reaching beyond the local network |
| Fallback | TLS over 443, for networks that block the raw TURN port |
| Federation | Chat, reactions, and calls federate over OCM between two skhub instances, each using its own HPB |
| File sharing | Does not federate through Talk; handled through standard Nextcloud federated shares instead |
skhub is the fleet's "files, chat, video, docs" layer. It is built to sit next to the fleet's own workflow engine (skflow, built on Windmill), the fleet's own SSO (sksso, Authentik), and the fleet's own local-inference gateway (skgateway), rather than standing alone.
A dedicated background-job worker handles webhook delivery for Nextcloud's webhook_listeners app. Without it, a webhook waits for the next 5-minute cron cycle; with it, delivery has been measured at about 4 seconds on a live instance.
That fast delivery is what makes skhub useful as a trigger for the fleet's workflow engine: a file landing in Nextcloud can kick off a workflow almost immediately instead of minutes later.
Nextcloud's built-in Assistant (chat, summarize, rewrite, translate, speech-to-text) runs against the operator's own self-hosted models through skgateway's model aliases. Image generation and cloud TTS are left disabled rather than silently falling back to a cloud default.
The fleet's AI agents, including the assistant agent (Lumina) and the operations agent (Atlas), can use skhub as a shared storage and collaboration surface the same way a human team would, since every client (web, desktop sync, mobile, WebDAV, CalDAV) talks to the same real Nextcloud underneath.
A nightly db-backup sidecar dumps the database on a fixed wall-clock schedule (for example 03:00 in a chosen timezone, DST-correct), rather than just "every N hours from whenever it started," so backups land at a predictable time every night.
skhub deploys through a standard Ansible playbook (deploy_skhub-<env>.yml) run per environment, dev, staging, prod, with every setting coming from a per-environment vault file. New capability is release-gated by the skstack06 lab harness before it is considered released, an evidenced practice with real bugs caught, not an aspirational claim.
skhub holds the files. skwrit is the matter engine that turns taught processes into verified, published paperwork, and publishes its finished documents straight into skhub. Both are part of SKWorld, the sovereign AI ecosystem where you own the whole stack, from silicon to soul.