Harp Nextcloud Jun 2026
Your source code, drafts, assets, and production site remain entirely on hardware you control. There are no third-party trackers, data mining, or vendor lock-ins. System Architecture Overview The setup relies on a simple three-tier local architecture:
For even faster communication (by avoiding Docker’s internal network routing), you can run HaRP with host networking:
HaRP is more than just a performance upgrade; it's a foundational piece of Nextcloud's architecture for the years to come. By adopting HaRP, you are not just solving today's problems; you are future-proofing your Nextcloud deployment.
For container-less target platforms or strict system access scenarios, HaRP can be toggled into a manual tracking configuration. Instead of launching Docker workloads, it serves purely as a targeted traffic router to manually initialized processes executing elsewhere. Step-by-Step Guide: Migrating from Legacy DSP to HaRP
Add the following lines to your virtual host configuration file (before existing configuration): harp nextcloud
HaRP uses a secure tunnel (FRP) between the ExApp and the HaRP container. This means ExApp containers do not need to expose ports to the host or be directly reachable by the Nextcloud server.
HaRP supports flexible deployments—local or on a separate machine—allowing you to offload heavy tasks to stronger hardware.
However, for these apps to perform optimally, efficient and secure communication between the main Nextcloud instance and the ExApp containers is crucial. Enter (Nextcloud AppAPI HaProxy Reverse Proxy), a high-performance reverse proxy system designed to supercharge your Nextcloud deployment.
HaRP's language-agnostic architecture means you can build ExApps in: Your source code, drafts, assets, and production site
HaRP is installed and registered through the AppAPI settings within Nextcloud 32.
The official GitHub repository describes HaRP as a tool that “enables direct communication between clients and ExApps, bypassing the Nextcloud instance to improve performance and reduce the complexity traditionally associated with DockerSocketProxy setups”. In practice, this means that when someone uses an external app – whether it’s a live transcription tool, a chat interface, or a collaborative whiteboard – their traffic no longer has to travel through Nextcloud’s main application layer before reaching the microservice that actually powers the feature.
To achieve this, you will need to use the approach. You would manually start the ExApp container on your remote GPU server, ensuring it's configured to connect back to your central HaRP container. Then, you register this pre-existing app with Nextcloud via the occ command, using the manual_install daemon type. This tells Nextcloud that the app is already running elsewhere and not to try to deploy a local copy.
: End-to-end persistent connections are unlocked for real-time streaming interfaces, such as live AI chat or collaborative engines, without bogging down server threads. By adopting HaRP, you are not just solving
docker run \ -e HP_SHARED_KEY="some_very_secure_password" \ -e NC_INSTANCE_URL="http://nextcloud.local" \ -e HP_EXAPPS_ADDRESS="192.168.2.5:8780" \ -v /var/run/docker.sock:/var/run/docker.sock \ -v `pwd`/certs:/certs \ --name appapi-harp -h appapi-harp \ --restart unless-stopped \ --network host \ -d ghcr.io/nextcloud/nextcloud-appapi-harp:release
This is the headline feature. HaRP's support for WebSockets unlocks a new class of applications for Nextcloud. It allows the server to push updates to the browser instantly, without the client having to constantly ask for new data. This is the foundation of real-time collaboration.
[ Local Machine / Nextcloud Client ] │ ▼ (WebDAV / Native Sync) [ Nextcloud Server (Data Directory) ] │ ▼ (Local File Path Access) [ Harp Web Server (Node.js App) ]