-
Notifications
You must be signed in to change notification settings - Fork 2
Description
How to use GitHub
- Please use the 👍 reaction to show that you are affected by the same issue.
- Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
- Subscribe to receive notifications on status change and new comments.
Steps to reproduce
- Run HaRP with the official image
ghcr.io/nextcloud/nextcloud-appapi-harp:releasevia Docker Compose behindnextcloud:fpm-alpineand annginx:alpine-slimreverse proxy. - Configure AppAPI + HaRP in Nextcloud (register deploy daemon, set
HP_SHARED_KEY, etc.). - Trigger the deploy daemon “Test deploy” / heartbeat in AppAPI or call the ping endpoint manually:
- From the
webcontainer:curl -H "harp-shared-key: <HP_SHARED_KEY>" \ http://harp-proxy:8780/exapps/app_api/v1.44/_ping - From inside the
harp-proxycontainer:curl -v http://127.0.0.1:8200/v1.44/_ping
- From the
Expected behaviour
The _ping / heartbeat endpoint should return 200 OK and the deploy daemon in AppAPI should show a healthy state.
Actual behaviour
HaRP forwards the request, but the internal HTTP daemon on port 8200 always returns 404 Not Found on the ping endpoint.
Relevant harp-proxy logs:
[2025-12-16T18:59:01+0000] [DEBUG] Incoming request to ExApp: path=/exapps/app_api/v1.44/_ping, headers=...
[2025-12-16T18:59:01+0000] [DEBUG] Request from AppAPI received: /v1.44/_ping
[2025-12-16T18:59:01+0000] [INFO] 127.0.0.1 [...] "GET /v1.44/_ping HTTP/1.1" 404 174 "-" "GuzzleHttp/7"
<134>... "GET /exapps/app_api/v1.44/_ping HTTP/1.1"
Manual tests from inside harp-proxy:
curl -v http://127.0.0.1:8200/v1.44/_ping \# -> HTTP/1.1 404 Not Found
curl -v http://127.0.0.1:8200/app_api/v1.44/_ping \# -> HTTP/1.1 404 Not Found
curl -v http://127.0.0.1:8200/ \# -> HTTP/1.1 404 Not Found
So SPOA + routing work, but the Python HTTP server on 8200 does not expose any of the expected endpoints and responds 404 for every path.
This looks very similar to the currently open issues around AppAPI/HaRP + Nextcloud 32 and Docker API versions (for example #72, #69, #75).
Server configuration
Web server: Nginx (nginx:alpine-slim container in front of nextcloud:fpm-alpine)
Database: PostgreSQL (postgres:alpine)
PHP version: 8.3.28
Nextcloud version: 32.0.3
HaRP image: ghcr.io/nextcloud/nextcloud-appapi-harp:release
AppAPI version: : 32.0.0
Docker version (host):
Client: Docker Engine - Community
Version: 29.1.3
API version: 1.52
Go version: go1.25.5
Git commit: f52814d
Built: Fri Dec 12 14:49:32 2025
OS/Arch: linux/amd64
Context: default
Server: Docker Engine - Community
Engine:
Version: 29.1.3
API version: 1.52 (minimum version 1.44)
Go version: go1.25.5
Git commit: fbf3ed2
Built: Fri Dec 12 14:49:32 2025
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v2.2.0
GitCommit: 1c4457e00facac03ce1d75f7b6777a7a851e5c41
runc:
Version: 1.3.4
GitCommit: v1.3.4-0-gd6d73eb8
docker-init:
Version: 0.19.0
GitCommit: de40ad0
List of activated apps
- activity: 5.0.0-dev.0
- admin_audit: 1.22.0
- app_api: 32.0.0
- bruteforcesettings: 5.0.0-dev.0
- cfg_share_links: 7.0.1
- cloud_federation_api: 1.16.0
- comments: 1.22.0
- dashboard: 7.12.0
- dav: 1.34.2
- federatedfilesharing: 1.22.0
- files: 2.4.0
- files_3dmodelviewer: 0.0.16
- files_downloadlimit: 5.0.0-dev.0
- files_pdfviewer: 5.0.0-dev.0
- files_rightclick: 0.15.1
- files_sharing: 1.24.1
- files_trashbin: 1.22.0
- files_versions: 1.25.0
- firstrunwizard: 5.0.0-dev.0
- logreader: 5.0.0-dev.0
- lookup_server_connector: 1.20.0
- mail: 5.6.4
- nextcloud_announcements: 4.0.0-dev.0
- notifications: 5.0.0-dev.0
- oauth2: 1.20.0
- onlyoffice: 9.11.0
- photos: 5.0.0-dev.1
- privacy: 4.0.0-dev.0
- profile: 1.1.0
- provisioning_api: 1.22.0
- recommendations: 5.0.0-dev.0
- related_resources: 3.0.0-dev.0
- serverinfo: 4.0.0-dev.0
- settings: 1.15.1
- sharebymail: 1.22.0
- support: 4.0.0-dev.0
- survey_client: 4.0.0-dev.0
- text: 6.0.1
- theming: 2.7.0
- twofactor_backupcodes: 1.21.0
- twofactor_nextcloud_notification: 6.0.0-dev.0
- twofactor_totp: 14.0.0
- updatenotification: 1.22.0
- user_status: 1.12.0
- viewer: 5.0.0-dev.0
- weather_status: 1.12.0
- workflowengine: 2.14.0
Disabled:
- circles: 32.0.0 (installed 31.0.0)
- contactsinteraction: 1.13.1 (installed 1.12.0)
- encryption: 2.20.0
- federation: 1.22.0 (installed 1.21.0)
- files_external: 1.24.0 (installed 1.24.0)
- files_reminders: 1.5.0 (installed 1.4.0)
- password_policy: 4.0.0-dev.0 (installed 3.0.0)
- recognize: 10.0.6 (installed 10.0.6)
- suspicious_login: 10.0.0-dev.0
- systemtags: 1.22.0 (installed 1.21.1)
- user_ldap: 1.23.0
- webhook_listeners: 1.3.0 (installed 1.2.0)
Nextcloud configuration
{
"system": {
"memcache.local": "\\OC\\Memcache\\APCu",
"memcache.distributed": "\\OC\\Memcache\\Redis",
"memcache.locking": "\\OC\\Memcache\\Redis",
"redis": {
"host": "***REMOVED SENSITIVE VALUE***",
"port": 6379
},
"apps_paths": [
{
"path": "\/var\/www\/html\/apps",
"url": "\/apps",
"writable": false
},
{
"path": "\/var\/www\/html\/custom_apps",
"url": "\/custom_apps",
"writable": true
}
],
"instanceid": "***REMOVED SENSITIVE VALUE***",
"passwordsalt": "***REMOVED SENSITIVE VALUE***",
"secret": "***REMOVED SENSITIVE VALUE***",
"trusted_domains": [
"***REMOVED SENSITIVE VALUE***",
"192.168.1.111"
],
"trusted_proxies": "***REMOVED SENSITIVE VALUE***",
"forwarded_for_headers": [
"HTTP_CF_CONNECTING_IP"
],
"datadirectory": "***REMOVED SENSITIVE VALUE***",
"dbtype": "pgsql",
"version": "32.0.3.2",
"overwrite.cli.url": "***REMOVED SENSITIVE VALUE***",
"dbname": "***REMOVED SENSITIVE VALUE***",
"dbhost": "***REMOVED SENSITIVE VALUE***",
"dbport": "",
"dbtableprefix": "oc_",
"dbuser": "***REMOVED SENSITIVE VALUE***",
"dbpassword": "***REMOVED SENSITIVE VALUE***",
"installed": true,
"default_phone_region": "FR",
"overwriteprotocol": "https",
"opcache.memory_consumption": "256",
"opcache.interned_strings_buffer": "40",
"opcache.max_accelerated_files": "32530",
"opcache.save_comments": "1",
"opcache.revalidate_freq": "60",
"opcache.jit": "1255",
"opcache.jit_buffer_size": "128M",
"enable_previews": true,
"enabledPreviewProviders": [
"OC\\Preview\\TXT",
"OC\\Preview\\MarkDown",
"OC\\Preview\\OpenDocument",
"OC\\Preview\\PDF",
"OC\\Preview\\MSOffice2003",
"OC\\Preview\\MSOfficeDoc",
"OC\\Preview\\Image",
"OC\\Preview\\Photoshop",
"OC\\Preview\\TIFF",
"OC\\Preview\\Font",
"OC\\Preview\\MP3",
"OC\\Preview\\Movie",
"OC\\Preview\\MKV",
"OC\\Preview\\MP4",
"OC\\Preview\\AVI"
],
"mail_smtpmode": "sendmail",
"mail_sendmailmode": "pipe",
"mail_from_address": "***REMOVED SENSITIVE VALUE***",
"mail_domain": "***REMOVED SENSITIVE VALUE***",
"log_type": "file",
"logfile": "\/log\/nextcloud.log",
"loglevel": 2,
"maintenance": false,
"maintenance_window_start": 1,
"theme": "",
"app_install_overwrite": [
"breezedark",
"openotp_auth",
"cadviewer",
"files_rightclick",
"cfg_share_links"
],
"updater.release.channel": "stable",
"skeletondirectory": ""
}
}
Browser (Not Revelant)
Browser log
Not really applicable – the problem occurs between AppAPI and HaRP internally, not in the browser.