Podman: HaRP obsucrity

The Basics

  • Nextcloud Server version (e.g., 29.x.x):
    • 34.0.2-fpm-alpine
  • Operating system and version (e.g., Ubuntu 24.04):
    • debian 13 cloud vm
  • Web server and version (e.g, Apache 2.4.25):
    • nginx:latest

Summary of the issue you are facing:

I simply want to run Tesseract OCR on another server.

Steps to replicate it (hint: details matter!):

  1. deploy HaRP container

    ExecStart=/usr/bin/podman run 
    --cidfile=%t/%n.ctr-id 
    --cgroups=no-conmon 
    --rm 
    --pod-id-file %t/pod-nextcloud.pod-id 
    --sdnotify=conmon 
    --replace 
    -d 
    --name harp 
    --env HP_SHARED_KEY="<secret>" 
    --env NC_INSTANCE_URL="https://my.secret.domain" 
    --env HP_EXAPPS_ADDRESS="127.0.0.1:8780" 
    -v %t/podman/podman.sock:/var/run/docker.sock:z 
    registry.secret.domain/nextcloud-appapi-harp:release```
    
    
  2. log output

    harp[998433]: [NOTICE]   (77) : Initializing new worker (86)
    harp[998433]: [NOTICE]   (77) : Loading success
    
  3. Configured as HaRP Proxy (Docker)
    connection successful

  4. Three dot menu according to the docs to test deploy.
    => Fail.

Log entries

Nextcloud

Please provide the log entries from your Nextcloud log that are generated during the time of problem (via the Copy raw option from Administration settings->Logging screen or from your nextcloud.log located in your data directory). Feel free to use a pastebin/gist service if necessary.

Aug 09 01:40:22 files podman[998696]: time="2026-08-09T01:40:22Z" level=info msg="/usr/bin/podman filtering at log level info"
Aug 09 01:40:22 files podman[998696]: time="2026-08-09T01:40:22Z" level=info msg="Setting parallel job count to 13"
Aug 09 01:40:22 files podman[998696]: time="2026-08-09T01:40:22Z" level=info msg="Using systemd socket activation to determine API endpoint"
Aug 09 01:40:22 files podman[998696]: time="2026-08-09T01:40:22Z" level=info msg="API service listening on \"/run/user/1001/podman/podman.sock\". URI: \"/run/user/1001/podman/podman.sock\""
Aug 09 01:40:22 files podman[998696]: Trying to pull ghcr.io/nextcloud/test-deploy:release-cpu...
Aug 09 01:40:23 files podman[998696]: @ - - [09/Aug/2026:01:40:22 +0000] "POST /v1.44/images/create?fromImage=ghcr.io%2Fnextcloud%2Ftest-deploy%3Arelease-cpu HTTP/1.1" 200 364 "" "GuzzleHttp/7"
Aug 09 01:40:23 files podman[998696]: time="2026-08-09T01:40:23Z" level=info msg="Request Failed(Not Found): no container with name or ID \"nc_app_test-deploy\" found: no such container"
Aug 09 01:40:23 files podman[998696]: @ - - [09/Aug/2026:01:40:23 +0000] "GET /containers/nc_app_test-deploy/json HTTP/1.1" 404 134 "" "Python/3.12 aiohttp/3.10.9"
Aug 09 01:40:23 files podman[998696]: @ - - [09/Aug/2026:01:40:23 +0000] "GET /volumes/nc_app_test-deploy_data HTTP/1.1" 200 229 "" "Python/3.12 aiohttp/3.10.9"
Aug 09 01:40:23 files podman[998696]: time="2026-08-09T01:40:23Z" level=info msg="Request Failed(Not Found): no such image: ghcr.io/nextcloud/test-deploy:release-cpu: image not known"
Aug 09 01:40:23 files podman[998696]: @ - - [09/Aug/2026:01:40:23 +0000] "POST /containers/create?name=nc_app_test-deploy HTTP/1.1" 404 129 "" "Python/3.12 aiohttp/3.10.9"
Aug 09 01:40:23 files harp[998433]: [2026-08-09T01:40:23+0000] [ERROR] Error creating container 'nc_app_test-deploy' with Docker API (status 404): {"cause":"image not known","message":"no such image: ghcr.io/nextcloud/test-deploy:release-cpu: image not known","response":404}
Aug 09 01:40:23 files harp[998433]:
Aug 09 01:40:23 files app[996450]: 127.0.0.1 -  09/Aug/2026:01:40:22 +0000 "POST /index.php" 500

I do not want to deploy containers on the same instance as my nextcloud. I have other hardware way more capable then my nextcloud instance.

So now what?

The log tells the story: the pull “succeeds” but then create fails with “image not known”, which means Podman’s API accepted the pull request but the image never actually landed in the store the socket is pointing at. Classic rootless Podman gotcha, the pull and the create are hitting different storage or the pull silently no-op’d. Two website things to check: confirm the image really exists with podman images as that same user (1001), and make sure your socket, storage.conf and the service all run under one consistent rootless context. Also, HaRP deploys to the host its socket points at, so “another server” needs that remote Podman socket exposed to HaRP, not the local one. Is the socket local or remote here?

Yeah, should have checked. At the ghcr.io/nextcloud/test-deploy/ registry there is no tag for :release-cpu. So that is a bug in the AppAPI app, I suppose.
So I will have to wait until that’s fixed.

My socket is in the /run-directory; So this is local to the server.
Are you telling me that I need to connect to the Docker Socket port from another server?

The documentation is so ambiguous and hard to read.
I configured a HaRP-host, listening on 8780.
I got a Docker Socket port at 24000.
And I got a FRP port at 8782.
So whom is talking to eachother?
I would appreciate if you would shed some light for me. I do not grasp something but can not pinpoint it.

Anyhow, thank you for your assistance :).